Condividi:        

[Excel] conteggio della prima occorrenza dopo un dato valore

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 della prima occorrenza dopo un dato valore

Postdi okcoral » 09/02/14 00:19

Ciao a tutti
Dopo un bel po' di tempo eccomi qui con una domanda
che al momento non ha ancora trovato una risposta:

ho una colonna in A:A dove sono presenti numeri positivi ( segno +) e numeri negativi (segno -)
I numeri si ripetono, hanno una progressione regolare dove la cella sottostante ha sempre un numero
che è minore o maggiore del precedente di una unità.
In questa colonna vi sono tra gli altri 3 valori importanti per me , essi sono lo 0 , -5 , e il 5.
Sto cercando con una formula appropriata di conteggiare il numero 5 (positivo o negativo) ma solo dopo l'apparizione
dello 0.
Ogni volta che compare in una cella qualsiasi della colonna A:A lo 0 ,la formula dovrebbe conteggiare il successivo -5 o 5
progressivamente senza conteggiare i -5 o 5 successivi fino al presentarsi di un nuovo 0.
In pratica mi conta soltanto il primo -5 o 5 successivo ad ogni 0.


Posso allegare foglio excel con ulteriori spiegazioni


Molte grazie
Windows 7 Office 2013
okcoral
Utente Junior
 
Post: 36
Iscritto il: 26/12/11 00:30
Località: Ivrea

Sponsor
 

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi Flash30005 » 09/02/14 01:47

Non so come si possa fare con un formula ma una macro come questa dovresti risolvere il quesito
(dico dovresti perché non ho il tuo file)

Codice: Seleziona tutto
Sub Occorr()
UR = Range("A" & Rows.Count).End(xlUp).Row
Columns("B").ClearContents
Riga1 = 0
Riga2 = 0
For RR = 1 To UR
    If Range("A" & RR).Value = 0 Then
        Riga1 = RR
        Riga2 = 0
    Else
        If Riga1 > 0 And (Range("A" & RR).Value = 5 Or Range("A" & RR).Value = -5) Then
        Riga2 = RR
       Range("B" & RR).Value = Riga2 - Riga1
        Riga1 = 0
        End If
    End If
Next RR
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi Anthony47 » 09/02/14 02:02

La macro di Flash (vedi sopra) conta il ritardo tra lo "0" e ogni "primo" +/-5 successivo.
Se invece vuoi calcolare quante volte dopo uno "0" si presenta un +/-5 prima dell' eventuale "0" successivo, allora in riga 1 di una colonna libera, supponiamo cella C1, metti la formula
Codice: Seleziona tutto
=SE(CONTA.SE(A$1:A1;0)>0;SE(E(ASS(A1)=5;(CONTA.SE((INDIRETTO("A"&MAX(SE(A$1:A1=0;RIF.RIGA(A$1:A1);""))&":A"&RIF.RIGA()));5)+CONTA.SE((INDIRETTO("A"&MAX(SE(A$1:A1=0;RIF.RIGA(A$1:A1);""))&":A"&RIF.RIGA()));-5))=1);1;0);0)
Da confermare con Contr-Maiusc-Enter, non il solo Enter.
Copia poi C1 verso il basso per la lunghezza massima del tuo elenco
Infine calcoli il valore cercato con la formula
Codice: Seleziona tutto
=SOMMA(C:C)


Fai sapere se tra le opzioni trovi la risposta; altrimenti dovresti spiegare meglio che cosa significa "conteggiare il successivo -5 o 5".
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi okcoral » 09/02/14 02:16

Intanto grazie
sorpreso dalla rapidità delle risposte.

allego un foglio excel cosi è più chiaro

cerco di conteggiare solo tutti i primi -5 e +5 dopo uno 0
nel foglio sono presenti altri numeri
ogni tanto abbiamo uno dei tre (0, 5 , -5) quando appare lo 0 e alla prima o alle celle successive appare uno dei due 5(+-),
conteggiare solo quello e non quelli eventualmente presenti prima di un nuovo 0 , e cosi via.


http://www.filedropper.com/progettoper-550
Windows 7 Office 2013
okcoral
Utente Junior
 
Post: 36
Iscritto il: 26/12/11 00:30
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi Anthony47 » 09/02/14 02:23

Hai provato la formula?
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi okcoral » 09/02/14 02:32

Complimenti Anthony47

centrato il bersaglio in pieno :)

grazie la tua formula è perfetta

grande servizio il vostro

grazie anche a Flash30005
Windows 7 Office 2013
okcoral
Utente Junior
 
Post: 36
Iscritto il: 26/12/11 00:30
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi Flash30005 » 09/02/14 19:52

Beh ormai, alla luce delle specifiche, avevo modificato la macro e la posto
Codice: Seleziona tutto
Sub Occorr2()
UR = Range("A" & Rows.Count).End(xlUp).Row
Columns("B").ClearContents
Riga1 = 0
Contatore = 0
For RR = 1 To UR
    If Range("A" & RR).Value = 0 Then
        Riga1 = RR
    Else
        If Riga1 > 0 And (Range("A" & RR).Value = 5 Or Range("A" & RR).Value = -5) Then
        Contatore = Contatore + 1
        Range("B" & RR).Value = Contatore
        Riga1 = 0
        End If
    End If
Next RR
End Sub


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi okcoral » 09/02/14 20:49

si ottima anche la tua macro Flash30005

mentre invece nella formula di Anthony47 se voglio cambiare i tre riferimenti precedenti 0 , 5 , -5 con rispettivamente
per lo 0 ; 5 o -5 per il 5 ; 10 per il -5; -10 dove metto mano ?

Sono parametri che posso cambiare nel tempo : per il 5 o-5 con 10 o -10 ok per lo 0 è diverso perché assume due valori invece di uno
grazie
Windows 7 Office 2013
okcoral
Utente Junior
 
Post: 36
Iscritto il: 26/12/11 00:30
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi Anthony47 » 10/02/14 01:32

Nella formula ci sono tre "5", che vanno modificati secondo il valore da cercare; puoi anche mettere il valore in una cella e usare l' indirizzo della cella nella formula; es se scrivi il valore positivo da cercare in F1 la formula diventa
Codice: Seleziona tutto
=SE(CONTA.SE(A$1:A1;0)>0;SE(E(ASS(A1)=$F$1;(CONTA.SE((INDIRETTO("A"&MAX(SE(A$1:A1=0;RIF.RIGA(A$1:A1);""))&":A"&RIF.RIGA()));$F$1)+CONTA.SE((INDIRETTO("A"&MAX(SE(A$1:A1=0;RIF.RIGA(A$1:A1);""))&":A"&RIF.RIGA()));-$F$1))=1);1;0);0)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi okcoral » 10/02/14 11:32

Si più versatile con l'indirizzo in F1
sempre se teniamo come riferimento primario lo 0

ma se il riferimento cambia e lo 0 diventa arbitrariamente 5 o -5 e quindi come nella precedente formula al presentarsi dello 0,( in questo caso 5 o -5), viene conteggiato solo la prima occorrenza in F1 dopo ogni -5 o 5 che prima erano 0.

come fare ? possiamo creare altri indirizzi come F1?

grazie
Windows 7 Office 2013
okcoral
Utente Junior
 
Post: 36
Iscritto il: 26/12/11 00:30
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi Anthony47 » 10/02/14 13:52

Se il valore di inizio sequenza e' in G1 (e il valore da cercare e' in F1), allora la formula per C1 diventa:
Codice: Seleziona tutto
=SE(CONTA.SE(A$1:A1;$G$1)>0;SE(E(ASS(A1)=$F$1;(CONTA.SE((INDIRETTO("A"&MAX(SE(A$1:A1=$G$1;RIF.RIGA(A$1:A1);""))&":A"&RIF.RIGA()));$F$1)+($F$1<>0)*CONTA.SE((INDIRETTO("A"&MAX(SE(A$1:A1=$G$1;RIF.RIGA(A$1:A1);""))&":A"&RIF.RIGA()));-$F$1))=1);1;0);0)


Sono accettati, in G1, anche numeri negativi.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] conteggio della prima occorrenza dopo un dato va

Postdi okcoral » 10/02/14 14:17

ottimo
ciao
Windows 7 Office 2013
okcoral
Utente Junior
 
Post: 36
Iscritto il: 26/12/11 00:30
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] conteggio della prima occorrenza dopo un dato valore":

BTp Valore
Autore: MarioLombardi
Forum: Forum off-topic
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 40 ospiti