Contare testo maiuscolo e minuscolo
Hai un problema con Excel? 
Contare testo maiuscolo e minuscolo
di Klayman (utente non iscritto) data: 05/04/2015 20:35:03
Devo contare esattamente quante stringhe di testo esatte ci sono in un intervallo di celle.
Ad esempio ho una colonna con:
Ddim
DG
dG
GdG
g
DG
DdimdG
Gim
Vorrei contare ad esempio "dG": il risultato dev'essere: 1, quindi case sensitive e che non conti pezzi di stringhe.
Aiuto!!!!
di isy data: 05/04/2015 20:56:16
Un argomento complesso, ho allegato un esempio dalla rete mediante formule
File: string-exist-in-multiple-cellsv2.xlsx
Mah..
di Klayman (utente non iscritto) data: 05/04/2015 21:30:56
Mamma mia non ci capisco nulla.
A me serviva il semplice calcolo di un valore esatto, proprio quello, case sensitive. Possibile non ci sia una via semplice?
di isy data: 05/04/2015 21:37:18
Hi, Klayman prova ad inserire i tuoi dati nella tabella.
Allega se hai difficoltà un file di prova con la struttura che utilizzi
Aiuto
di Klayman (utente non iscritto) data: 05/04/2015 21:52:07
Ho allegato un file Esempio in cui devo contare le celle in un elenco. Grazie a chi mi aiuterà.
di scossa data: 06/04/2015 00:04:04
=MATR.SOMMA.PRODOTTO(--(IDENTICO(A2;B3:B26)))
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di Lucas87 data: 06/04/2015 10:00:51
Ciao
Se ti dovesse interessare un macro da collegare ad un pulsante sul foglio
Range("d2").ClearContents 'cancella il conteggio
Range("e2:e" & Rows.Count).ClearContents 'cancella i risultati
'cerca nella colonna A quello che c'è scritto in D1 considerando maiuscole e minuscole
Set fin = Columns(1).Find(What:=Range("d1"), LookAt:=xlPart, MatchCase:=True)
If Not fin Is Nothing Then
firstaddress = fin.Address
'ripete l'operazione cercando il risultato successivo
Do
cont = cont + 1 'conta
Cells(cont + 1, 5) = fin 'riporta i risultati
Set fin = Columns(1).FindNext(fin) 'cerca il risultato successivo
Loop While Not fin Is Nothing And firstaddress <> fin.Address 'quando torna al primo risultato si ferma
End If
Range("d2") = cont 'scrive il conteggio
|
di Vecchio Frac data: 06/04/2015 11:53:35
Un piccolo contributo alternativo.
Potrebbe funzionare anche come UDF.
Option Explicit
Function count_of(r As Range, fnd As String) As Integer
'conta le occorrenze di "fnd" nel range "r"
'la function può essere usata anche nel fogli di lavoro come UDF
'come formula: =count_of(A1:A10;C2)
'come funzione: somma = count_of(Range("A1:A10"), "dG")
Dim re As Object, match As Variant
Dim text As String
Set re = CreateObject("VBScript.RegExp")
re.Pattern = "#" & fnd
re.IgnoreCase = False
re.Global = True
text = Join(Application.Transpose(r), "#")
If re.Test(text) Then count_of = re.Execute(text).Count
End Function |
di scossa data: 06/04/2015 12:54:48
@V.F.: se provi la tua UDF con fnd="Da" ti restituisce 3, anziché 1.
Questo perché hai dimenticato di "chiudere" la stringa text con "#"
text = Join(Application.Transpose(r), "#") & "#"
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di Vecchio Frac data: 06/04/2015 12:59:05
+1
Grazie Scossa.
di scossa data: 06/04/2015 13:07:19
Visto che ci sono, propongo la solita variante VBA della formula che ho proposto lato celle.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Function conta_di(ByRef r As Range, fnd As String) As Long
conta_di = Evaluate("SUMPRODUCT(--(EXACT(""" & fnd & """," & r.Address & ")))")
End Function
|
Grazie
di Klayman (utente non iscritto) data: 06/04/2015 14:57:37
GRAZIE! Spettacolare!!!!!! Grazie a scossa e a tutti gli altri! PS: Possibile che non possano mettere una funzione semplice per una necessità secondo me molto frequente!!!
di scossa data: 06/04/2015 17:35:57
cit. X: "Possibile che non possano mettere una funzione semplice per una necessità secondo me molto frequente"
Non mi sembra una mancanza "pesante", visto che combinando due funzioni native, come nella formula che ti ho suggerito, ottieni il risultato voluto.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Vuoi Approfondire?