Condividi:        

[excel]aiuto....condizione per conta.se

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]aiuto....condizione per conta.se

Postdi pepp_giusep » 17/05/09 17:32

ciao ragazzi,mi servirebbe una mano...da 1 settimana che sclero.Vorrei determinare la distanza tra due celle in un intervallo,le due celle hanno lo stesso valore,cioè : ho un intervallo (a1:a300) formato da soli 2 valori (vero,falso),premettendo che all'interno dell'intervallo c'è più di 1 "vero",vorrei calcolare la distanza che c'è tra il primo "vero" e il secondo,tra il secondo e il terzo...e così via......
vi ringrazio...buona giornata e buona domenica
pepp_giusep
Newbie
 
Post: 2
Iscritto il: 17/05/09 17:13

Sponsor
 

Re: [excel]aiuto....condizione per conta.se

Postdi Anthony47 » 17/05/09 18:54

Ciao pepp_giusep e benvenuto nel forum.
In B1 metti la formula
Codice: Seleziona tutto
=CONTA.SE($A$1:A1;VERO)
che poi copi verso il basso fino a B300.
In C1 e sottostanti ti fai una serie 1, 2, 3, 4 etc (fino al numero max di "vero" che pensi di trovare).
In D1 metti la formula
Codice: Seleziona tutto
=CONFRONTA(C1+1;$B1:$B$300;0)-CONFRONTA(C1;$B$1:$B$300;0)
che poi copi verso il basso.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19213
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [excel]aiuto....condizione per conta.se

Postdi pepp_giusep » 17/05/09 19:15

Anthony47 sei un grande.....grazie mille.....buona serata
pepp_giusep
Newbie
 
Post: 2
Iscritto il: 17/05/09 17:13

Re: [excel]aiuto....condizione per conta.se

Postdi alaves12 » 26/05/09 11:59

Ciao, ho letto questo topic e potrebbe servirmi, solo che non riesco a capire dove sbaglio. Vi mando un mio file creato. Io ho una colonna con la data e una colanna con il nome dei mie colleghi che paga il caffè la mattina. Riesc a determinare le distanze tra i caffè pagati da Paolo per esempio ? e chi ha la sequenza più lunga? Ad esempio Paolo ha pagato tre volte di fila mentre Luca al massimo ha pagato due volte di fila.

http://rapidshare.com/files/237377294/C ... p.txt.html

Grazie

Alaves12
alaves12
Utente Junior
 
Post: 21
Iscritto il: 09/04/09 11:20

Re: [excel]aiuto....condizione per conta.se

Postdi ricky53 » 26/05/09 12:08

Ciao,
spero che l'esempio dei caffè tu lo abbia fatto solo per far capire la tua esigenza !!!!!!

Al momento non posso scaricare il tuo file.
Provo questa sera.
Mi farò sentire.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [excel]aiuto....condizione per conta.se

Postdi Flash30005 » 26/05/09 15:21

Ho preferito fare una macro che inseriari su un modulo e ti compilerà il foglio1 con mote informazioni su chi non paga i caffé :)
Codice: Seleziona tutto
Sub Conta()
 Worksheets("Foglio1").Select
     Range("M1").Select
    ActiveCell.FormulaR1C1 = "Paolo"
    Range("N1").Select
    ActiveCell.FormulaR1C1 = "Maurizio"
    Range("O1").Select
    ActiveCell.FormulaR1C1 = "Mauro"
    Range("P1").Select
    ActiveCell.FormulaR1C1 = "Kikko"
    Range("Q1").Select
    ActiveCell.FormulaR1C1 = "Marco"
    Range("R1").Select
    ActiveCell.FormulaR1C1 = "Carletto"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "Freq"
    Range("L3").Select
    ActiveCell.FormulaR1C1 = "MaxRit"
    Range("L4").Select
    ActiveCell.FormulaR1C1 = "RitAtt"
    Range("L5").Select
    ActiveCell.FormulaR1C1 = "FreqCont"
    Range("L6").Select

UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For N = 13 To 18
Freq = 0
MR = 0
MRS = 0
FreqCont = 0
FreqC = 0
For I = 2 To UR
If Worksheets("Foglio1").Cells(1, N).Value <> Worksheets("Foglio1").Cells(I, 1).Value Then FreqCont = 0
    MR = MR + 1
    If Worksheets("Foglio1").Cells(1, N).Value = Worksheets("Foglio1").Cells(I, 1).Value Then
        If MR > MRS Then MRS = MR
        FreqCont = FreqCont + 1
        If FreqCont > FreqC Then FreqC = FreqCont
        MR = 0
        Freq = Freq + 1
    End If
Next
Worksheets("Foglio1").Cells(2, N).Value = Freq
Worksheets("Foglio1").Cells(3, N).Value = MRS
Worksheets("Foglio1").Cells(5, N).Value = FreqC
Next
For N = 13 To 18
Freq = 0
MR = 0
MRS = 0
FreqCont = 0
For I = UR To 2 Step -1
MR = MR + 1
If Worksheets("Foglio1").Cells(1, N).Value = Worksheets("Foglio1").Cells(I, 1).Value Then
MRA = MR
GoTo esci
End If
Next
esci:
Worksheets("Foglio1").Cells(4, N).Value = MRA - 1
Next
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]aiuto....condizione per conta.se

Postdi Anthony47 » 27/05/09 01:41

Se invece preferisci farlo senza macro:
Fai cominciare i tuoi dati da riga 2
In I2 metti la formula
Codice: Seleziona tutto
=SE(H2=H1;I1+1;1)
che poi copi verso il basso
In riga 1 metti delle intestazioni, es Nome in H1 e Conta su I1
Selezioni le colonne H e I e prepari una tabella pivot:
-Menu /Dati /Rapporto tabella pivot;
-Avanti, Avanti, Layout
-trascini Nome sul campo RIGA e CONTA su campo DATI; accertati che visualizzi "Max di CONTA", se no: doppioclick su cosa visualizza, scegli Max dall' elenco che ti presenta, Ok, Ok
-premi Fine
Ti preparera' in un nuovo foglio il riepilogo per ogni nominativo presente in elenco.

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

Re: [excel]aiuto....condizione per conta.se

Postdi alaves12 » 28/05/09 11:06

Ho qualche problema con la tabella pivot, devo fare un po' di prove ancora. Per quanto riguarda la macro di Flush305 funziona, ma devo ancora capire un paio di cosette.

Per il momento grazie


Alaves12
alaves12
Utente Junior
 
Post: 21
Iscritto il: 09/04/09 11:20

Re: [excel]aiuto....condizione per conta.se

Postdi Flash30005 » 28/05/09 13:18

Sperando proprio che la macro non ti occorra per sapere chi "scrocca" i caffé ma per un numero magari più elevato di utenti o codici, ho modificato il programma al fine di creare, automaticamente, la testata delle colonne per ogni utente (o codice) inseriti nella colonna A (in pratica ho modificato solo la prima parte della macro)
Codice: Seleziona tutto
Sub Conta()
Dim W As Worksheet
Dim codice As String
Dim i As Integer
Dim Trovato As Boolean
    Set W = Sheets("Foglio1")
 Worksheets("Foglio1").Select
 UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
     For N = 2 To UR
        codice = Cells(N, 1).Value
        i = 13
        Trovato = False
        While W.Cells(1, i).Value <> "" And Not Trovato
            If W.Cells(1, i).Value = codice Then
                Trovato = True
            End If
            i = i + 1
        Wend
        If Not Trovato Then
            W.Cells(1, i).Value = codice
        End If
    Next
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "Freq"
    Range("L3").Select
    ActiveCell.FormulaR1C1 = "MaxRit"
    Range("L4").Select
    ActiveCell.FormulaR1C1 = "RitAtt"
    Range("L5").Select
    ActiveCell.FormulaR1C1 = "FreqCont"
    Range("L6").Select
UC = Worksheets("Foglio1").Range("IV1").End(xlToLeft).Column
For N = 13 To 18
Freq = 0
MR = 0
MRS = 0
FreqCont = 0
FreqC = 0
For i = 2 To UR
If Worksheets("Foglio1").Cells(1, N).Value <> Worksheets("Foglio1").Cells(i, 1).Value Then FreqCont = 0
    MR = MR + 1
    If Worksheets("Foglio1").Cells(1, N).Value = Worksheets("Foglio1").Cells(i, 1).Value Then
        If MR > MRS Then MRS = MR
        FreqCont = FreqCont + 1
        If FreqCont > FreqC Then FreqC = FreqCont
        MR = 0
        Freq = Freq + 1
    End If
Next
Worksheets("Foglio1").Cells(2, N).Value = Freq
Worksheets("Foglio1").Cells(3, N).Value = MRS
Worksheets("Foglio1").Cells(5, N).Value = FreqC
Next
For N = 13 To 18
Freq = 0
MR = 0
MRS = 0
FreqCont = 0
For i = UR To 2 Step -1
MR = MR + 1
If Worksheets("Foglio1").Cells(1, N).Value = Worksheets("Foglio1").Cells(i, 1).Value Then
MRA = MR
GoTo esci
End If
Next
esci:
Worksheets("Foglio1").Cells(4, N).Value = MRA - 1
Next
End Sub


però impara a usare Pivot, perché Pivot è sempre Pivot! ;)
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-


Torna a Applicazioni Office Windows


Topic correlati a "[excel]aiuto....condizione per conta.se":


Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti