Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel - Conteggio valori uguali contigui

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel - Conteggio valori uguali contigui

Postdi c1452 » 23/02/12 17:49

Salve ragazzi avrei bisogno del vostro aiuto non sono molto pratico di excel
Ho una riga con circa 20 valori che sono sempre "V", "P", "S" nell'intervallo B2:U2
Vorrei calcolare in una cella a mia scelta il valore massimo in cui "V" si ripete consecutivamente

se mi limito a =(CONTA.SE(B2:U2;"v")) mi restituirà la somma delle ripetizioni di "V"
io invece voglio il numero max di ripetizioni nell'intervallo B2:U2 anche se ci dovessero essere + ripetizioni
c1452
Newbie
 
Post: 2
Iscritto il: 23/02/12 17:43

Sponsor
 

Re: Excel - Conteggio valori uguali contigui

Postdi Anthony47 » 23/02/12 22:58

Per questo la cosa piu' semplice e' una funzione ad hoc:
-da Excel, Alt-F11 per aprire l' editor delle macro
-Menu /Inserisci /Modulo
-Copia il seguente codice e incollalo nel frame di dx
Codice: Seleziona tutto
Function Contig(ByRef Myaddr As Range, ByVal myVal As String) As Integer
For Each cell In Myaddr
    If cell.Value = myVal Then
        ccnt = ccnt + 1
    Else
        If ccnt > Contig Then Contig = ccnt
        ccnt = 0
    End If
Next cell
End Function

Poi torni su Excel e userai una formula del tipo
Codice: Seleziona tutto
=contig(B2:U2;"V")

Ovviamente puoi cambiare il range o il valore da cercare; il valore e' "case sensitive", cioe' fa differenza tra maiuscolo e minuscolo.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel - Conteggio valori uguali contigui

Postdi Karistotele » 24/02/12 15:09

Ciao Anthony, ciao alla new entry c145
essendo io più pratico di formule che di VBA, a me viene in mente la funzione frequenza, però vorrei capire come inserire in “forma matriciale” la tua UDF (molto semplice anche per me) per non ripetere tre volte la stessa operazione (in questo caso), ma ... se un range prevedesse 10, 15, eccetera valori unici? Come ovviare?

Sai, approfitto …. e ti ringrazio se vorrai delucidarmi in merito.

Intanto visto che il nostro amico dichiara di essere un po’ digiuno di Excel io proporrei appunto una formula non molto impegnativa.

Inserire in A3 la lettera V, in A4 la lettera P e in A5 la lettera S.Oppure in altro ordine.

Digitare in B3

Codice: Seleziona tutto
=MAX(FREQUENZA(SE($B$2:$U$2=A3;RIGHE($B$2:$U$2));SE($B$2:$U$2<>A3;RIGHE($B$2:$U$2))


Gradito riscontro, intanto la provo.
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA

Re: Excel - Conteggio valori uguali contigui

Postdi c1452 » 24/02/12 21:27

Ho provato ad inserire la funzione di Antony, perfetta grazie a tutti. Funziona proprio come volevo...grazie
c1452
Newbie
 
Post: 2
Iscritto il: 23/02/12 17:43

Re: Excel - Conteggio valori uguali contigui

Postdi Karistotele » 24/02/12 23:42

c1452 ha scritto:Ho provato ad inserire la funzione di Antony, perfetta grazie a tutti. Funziona proprio come volevo...grazie


... e chi ha detto che non funziona?
Anche la formula funziona. Hai liberamente scelto e sono compartecipe della tua soddisfazione.

"Non importa che il gatto sia bianco o nero, l'importante è che prenda il topo"

Per quanto mi riguarda approfittavo dell'occasione per chiedere ad Anthony una precisazione su possibili variazioni, solo a fini "didattici". per generalizzare la function

Ciao e alla prossima.
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA

Re: Excel - Conteggio valori uguali contigui

Postdi Anthony47 » 25/02/12 02:14

La formula di K e la mia udf restituiscono valori diversi; la udf conta il max dei valori adiacenti uguali, la formula e' l' equivalente di un Conta.Se.

Per k: quella Udf non e' utilizzabile in una formula a matrice, perche' restituisce un valore stringa mentre (per cominciare) la formula matrice richiede un array.
Questa e' abbastanza vicina:
Codice: Seleziona tutto
Function ContigArr(ByRef MyTarg As Range, ByRef myVals As Range) As Variant
Dim myArr(), myMax As Integer
ReDim myArr(myVals.Count - 1)
For I = 1 To myVals.Count
myVal = myVals.Range("A1").Offset(I - 1, 0).Value
myMax = 0
For Each Cell In MyTarg
aab = Cell.Value
    If Cell.Value = myVal Then
        ccnt = ccnt + 1
    Else
        If ccnt > myMax Then myMax = ccnt
        ccnt = 0
    End If
Next Cell
myArr(I - 1) = myMax
Next I
ContigArr = myArr()
End Function

Richiede che i parametri siano passati come Riferimento, non come valori, e restituisce un array "Orizzontale" con gli N risultati; puoi quindi applicarla su un range di N "colonne" per avere gli N risultati, oppure puoi "pescare" tra i risultati; ad esempio il valore piu' grande lo trovi con, ad esempio,
Codice: Seleziona tutto
=GRANDE(contigarr(A2:O2;A3:A5);1)
Se vuoi rappresentare i dati in verticale dovrai usare MATR.TRASPOSTA, ad esempio
Codice: Seleziona tutto
=MATR.TRASPOSTA(contigarr(A2:O2;A3:A5))
Userai Contr-Maiusc-Enter quando vuoi applicare la formula su piu' celle, negli altri casi non e' necessario.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel - Conteggio valori uguali contigui

Postdi Karistotele » 25/02/12 12:29

Karistotele siccome ha cambiato pusher ha scritto:Anche la formula funziona


Scritta velocemente su un pezzo di carta. Si può togliere anche il MAX ed essa diventa un semplice CONTA.SE, inserendola naturalmente come matriciale.

La UDF di Anthony è eccellente in funzione del tuo preciso quesito e ringrazio Anthony, come sempre generoso, per avermi fornito le delucidazioni che avevo chiesto.

Ciao.

P.S. Sto lavorando duro per attrezzarmi per il prossimo errore.
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA


Torna a Applicazioni Office Windows


Topic correlati a "Excel - Conteggio valori uguali contigui":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti