Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

formula excel

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

formula excel

Postdi swarovsky » 05/10/07 14:03

Ciao a tutti,ho difficoltà a trovare la soluzione alla seguente questione:con la seguente formula =SE(C4+D4<2,5;"under";"over") definisco l'esito di un evento,ma purtroppo non conosco la formula che mi permette nella tabella "ritardi" di azzerare o incrementare il ritardo dell'evento.Mi spiego meglio,se il risultato di una partita di calcio è 2-1,in base alla formula sopra scritta il risultato è "over" ammettiamo che nella tabella ritardi "over" sia inserito il valore 5 e nella tabella dei ritardi "under" sia inserito il valore 0,qual'e la formula che mi azzera 5 e incrementa di 1 il valore 0? grazie infinite a chi può aiutarmi,ciao.
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Sponsor
 

Postdi Anthony47 » 05/10/07 23:59

Scusa, non ho capito quale e' il probema; ne' aiuta la formula misteriosa.

Se non ti arrivano altri suggerimenti, prova a descrivere diversamente cosa vorresti fare.

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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 06/10/07 12:08

Ciao Anthony47 e grazie per avermi risposto,cerco di chiarire:se nelle celle d4 e c4 inserisco rispettivamente 3 e 1 la formula risponde over nella cella e4, se invece scrivo 1 e 0 la formula risponde under sempre nella cella e4,devo collegare il risultato della cella e4 alle celle G4 e H4 che contengono dei valori che indicano ritardo over e ritardo under,se per esempio la cella G4 indica 7 e la cella H4 indica 0 e inseriamo nella celle D4 e C4 i valori 3 e 2 ,la formula risponde over che mi deve azzerare la cella G4 e incrementare a 1 la cella H4.Spero di essere stato compreso,t'invito a mettere in pratica quanto ho scritto,ti ringrazio della cortesia prestata alla mia questione grazie e ciao Mauro.
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 07/10/07 00:30

Ancora qualche domanda:
1) nel tuo foglio hai 1 sola partita e 1 solo risultato (quella su riga 4), o hai un elenco di partite, una riga dopo l' altra, ognuna col suo risultato, e da questi risultati vuoi calcolare il ritardo di cui parli?
2) assodato che la formula restituisce Over sia col risultato 3-1 che 1-3 (come pure risponde Under sia con 2-0 che 0-2), quale e' in realta' la logica della formula?

La risposta alla 1 condiziona quale soluzione adottare, al momento quindi non posso darti nessun suggerimento.

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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 07/10/07 10:22

Ciao Anthony47 rispondo in ordine alle tue domande:1)ho un elenco di partite, una riga dopo l' altra, ognuna col suo risultato, e da questi risultati vorrei calcolare il ritardo corrispondente,o eventuale azzeramento del ritardo stesso.
2)La logica della formula è quella che in base ai risultati delle varie partite di calcio,il corrispondente incremento di un ritardo che può essere under oppure over,dà la possbilità di prevedere con buon margine di successo,l'evento contrario.Questi eventi sono oggetto di studi statistici e conseguenti sistemi di previsione,ciao grazie per l'attenzione,Mauro.
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 07/10/07 19:50

Quindi da E4 in giu' hai la formula che ti restituisce over/under.

Per calcolare in G4 il ritardo di over usi la formula
Codice: Seleziona tutto
=SE(E4="";"";(RIF.RIGA()-CERCA(2;1/($E$1:E3="over");RIF.RIGA($E$1:E3))-1*(E4="over"))*(E4<>"over"))

E per calcolare in H4 il ritardo di under usi la formula
Codice: Seleziona tutto
=SE(E4="";"";(RIF.RIGA()-CERCA(2;1/($E$1:E3="under");RIF.RIGA($E$1:E3))-1*(E4="under"))*(E4<>"under"))

Poi copi G4:H4 e incolli nelle celle sottostanti, per le righe che vuoi.

Fai sapere se fa quello che ti aspetti.
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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 08/10/07 12:27

Ciao Antony47,ho copiato e incollato nelle cella G4 e H4 le rispettive formule che mi hai scritto,ma il foglio di calcolo risponde così:"Dati mancanti. #N/D o ND() sono stati immessi al posto dei dati"
Nota bene #N/D è quello che visualizzo nelle celle ritardi UNDER e OVER quando inserisco il risultato della partita nelle celle C4 e D4.
Comunque non sò se è un mio errore perchè non ho inserito nessun valore numerico iniziale nelle celle G4 e H4,se inserisco un numero chiaramente mi cancella la formula,tra l'altro ho provato a cambiare nelle formula che mi hai inviato E3 con E4,ma funziona parzialmente e in ogni caso non và bene,grazie per l'attenzione,ciao Mauro.
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 08/10/07 21:12

Ecco quello che mi viene calcolato dalle formule che ti ho dato, dopo aver inserito un tot di risultati, dalla riga 4 in giu':
Codice: Seleziona tutto
      Col C  Col D  Col E  Col F  Col G  Col H
        Risultati               
Riga-4   2   0   under      #N/D   #N/D
Riga-5   2   1   over      #N/D   1
Riga-6   2   2   over      0   2
Riga-7   3   0   over      0   3
Riga-8   3   1   over      0   4
Riga-9   3   5   over      0   5
Riga-10   3   6   over      0   6
Riga-11   3   7   over      0   7
Riga-12   0   0   under      1   0
Riga-13   0   1   under      2   0
Riga-14   0   2   under      3   0
Riga-15   0   3   over      0   1
Riga-16   1   0   under      1   0
Riga-17   1   1   under      2   0
Riga-18   1   2   over      0   1
Riga-19   1   3   over      0   2
Riga-20   1   4   over      0   3
Riga-21   1   3   over      0   4


In testa compaiono degli N/D fintanto che non ci sono un tot di risultati idonei a calcolare il ritardo per ognuno dei due valori.

Ma intanto ho semplificato alquanto le due formule:
- G3 e H3 devono essere vuote o contenere 0
- In G4 usi la formula
Codice: Seleziona tutto
=SE(E4="";"";SE(E4="over";0;G3+1))

- In H4 invece
Codice: Seleziona tutto
=SE(E4="";"";SE(E4="under";0;H3+1))


Quello che ottieni e' come sopra ma privo degli N/D:
Codice: Seleziona tutto
      Col C  Col D  Col E  Col F  Col G  Col H
        Risultati               
Riga-4   2   0   under      1   0
Riga-5   2   1   over      0   1
Riga-6   2   2   over      0   2
Riga-7   3   0   over      0   3
Riga-8   3   1   over      0   4
Riga-9   3   5   over      0   5
Riga-10   3   6   over      0   6
Riga-11   3   7   over      0   7
Riga-12   0   0   under      1   0
Riga-13   0   1   under      2   0
Riga-14   0   2   under      3   0
Riga-15   0   3   over      0   1
Riga-16   1   0   under      1   0
Riga-17   1   1   under      2   0
Riga-18   1   2   over      0   1
Riga-19   1   3   over      0   2
Riga-20   1   4   over      0   3
Riga-21   1   3   over      0   4


Cosi' va meglio? 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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 09/10/07 18:10

Ciao Anthony47,grazie per la risposta,la formula funziona,purtroppo solo dopo averla vista funzionare mi sono reso conto di aver formulato la mia richiesta in modo errato.La richiesta è questa:la formula mi deve dare il ritardo di UNDER o OVER per ogni squadra,in conseguenza ai risultati partita dopo partita,ovvero SQUADRA X-SQUADRA Y- 2-1 è OVER, nelle celle dei ritardi della SQUADRA X ci sono i valori 3 per il ritardo OVER e ovviamente 0 per il ritardo UNDER, con il risultato sopra descritto si deve azzerare il ritardo OVER e incrementare a 1 il ritardo UNDER,e così per tutte le altre squadre che disputano il campionato.Ho provato a modificare la tua formula per ottenere il risultato giusto,ma le mie conoscenze su formule e macro sono allo stadio iniziale o quasi.Se puoi ancora aiutarmi te ne sarò grato,comunque ti ringrazio per la tua disponibilità mostrata finora,ciao Mauro.
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 09/10/07 23:02

Prima di fare un altro tentativo, mi fai vedere l’ immagine dei tuoi dati? Copi da excel, incolli su notepad; copi da notepad e incolli sul forum; marchi come “Codice”. Fai in modo che si possano distinguere bene le colonne…

Ciao, ti aspetto.
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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 10/10/07 13:34

Ciao Anthony47,grazie per avermi risposto,ho provato in molti modi il copia incolla che mi chiesto di fare,ma il risultato è illeggibile,per cui mi scuso con te e gli utenti del forum,ma in alternativa ho caricato i file sul seguente server: http://www.webalice.it/swarovsky.adsl/ dove puoi scaricarli e verificare,grazie e ciao Mauro.
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 12/10/07 18:30

Allora io farei cosi'..
-inserisco una colonna accanto all' elenco squadre, quindi in posizione G, dove riporto il valore di Under/Over corispondente. Qui vado a occhio, cioe' se Atalanta-Udinese U/O calcolato e' "Under", assumo che il simbolo da riportare sia Under per Atalanta e Over per Udinese, e per questo metto in G3, accanto alla prima squadra
Codice: Seleziona tutto
=SE(VAL.ERRORE(CERCA.VERT(F4;A:E;5;0));SE(CERCA.VERT(F4;B:E;4;0)="under";"over";"under");CERCA.VERT(F4;A:E;5;0))

-copio questa formula sulle celle sottostanti, per tutte le squadre in elenco
In posizione N e O calcolo il "prossimo ritardo", sulla base del ritardo attuale e del risultato attuale. per questo:
-metti una intestazione a piacere in N3 e O3 (es Next Rit Over e Next Rit Under)
-lasci libero N1, sara' usato dalla macro.
-in N4 metti la formula
Codice: Seleziona tutto
=SE(G4="over";0;H4+1)

-e in O4
Codice: Seleziona tutto
=SE(G4="under";0;I4+1)

-copi N4:O4 e incolli nelle righe sottostanti, per tutte le squadre in elenco.

Altra modifica:
In A2 scrivi l' intestazione "Giornata -->", e in B2 scriverai la giornata a cui i risultati sono riferiti.

Poi registri una macro mentre:
-selezioni le celle N4:O23, copi (Contr-c), selezioni H4, incolli speciale/valore, tasto Esc
-termini la registrazione.

Apri il vba editor (con Alt-F11), apri il Modulo1 dove troverai il codice generato dalla registrazione.
In testa, dopo la riga del titolo, inserisci queste due istruzioni:

Codice: Seleziona tutto
If Range("B2").value = Range("N1").value then exit sub
Range("N1").value = Range("B2").value


In questo modo la macro memorizza (in N1) l' ultima giornata elaborata, e se la giornata non e' cambiata la macro non viene rieseguita; e' una piccola protezione contro gli errori involontari.

Infine associa la macro a un pulsante: crea il pulsante (trovi questa forma nella barra degli strumenti "Moduli"), nella fase della creazione ti verra' chiesto a quale macro vuoi associarlo.

In questo modo:
-inserisci i risultati
-inserisci la "giornata"
-attivi col pulsante la macro, e i nuovi ritardi sono incollati nell colonne H:I

Ovviamente la prima volta che parti scriverai a mano i ritardi nelle colonne H:I

Ultima cosa:
se ti da' fastidio vedere i dati delle col N:O dopo che la macro ha copiato i risultati applica una formattazione condizionale: Seleziona N4:O23, Formato /Formattazione condizionale; scegli "La formula è" e come formula scrivi
Codice: Seleziona tutto
=$B$2=$N$1
; premi Formato, tab Carattere, seleziona Colore=bianco; completi con Ok, Ok.
In questo modo se B2=N1 tutti i Prossimi Ritardi sono visualizzati in bianco, quindi non visibili.

Basta cosi!
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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 15/10/07 17:41

Ciao Anthony47,grazie ancora per il tuo aiuto,ho eseguito i codici che mi hai scritto,e la risposta è giusta ma parzialmente,allora dopo molti tentativi e rilleggendo la tua ultima risposta penso di aver trovato l'inghippo:".....Qui vado a occhio, cioe' se Atalanta-Udinese U/O calcolato e' "Under", assumo che il simbolo da riportare sia Under per Atalanta e Over per Udinese...." No non è così,e mi scuso con te per aver trascurato questo,si definisce Under quando la somma del risultato di una partita di calcio è inferiore a 2.5 e Over se invece è superiore a 2.5 tutto qui.Mi auguro che tu voglia continuare al fine di formulare il codice funzionale,in ogni caso grazie per il tuo impegno,ciao Mauro.
P.S.Ho caricato il foglio di lavoro ripulito da altre macro su questo server,se ti può essere utile,ciao.
http://www.webalice.it/swarovsky.adsl/
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 16/10/07 00:20

Hai capito che e’ errata la formula che assegna Over/Under alle singole squadre (col. G), perche’ assegna alla seconda squadra il valore opposto a quello calcolato in col E; devi pertanto modificare la formula data, eliminando il secondo SE e lasciando il risultato reso dalla funzione CERCA.VERT(F4;B:E;4;0).

Se serve ulteriore aiuto, siamo qua. 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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 17/10/07 19:00

Ciao Anthony47,purtroppo l'indicazione che mi hai dato mi restituisce sempre errore,nonostante i miei molteplici tentativi. Se puoi ti chiedo cortesemente di essere più dettagliato nell'indicarmi la giusta correzione da apportare alla formula,ancora grazie ciao.Mauro
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze

Postdi Anthony47 » 18/10/07 00:11

In G4
Codice: Seleziona tutto
=SE(VAL.ERRORE(CERCA.VERT(F4,A:E,5,0)),CERCA.VERT(F4,B:E,4,0),CERCA.VERT(F4,A:E,5,0))

Poi copi in basso.

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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 18/10/07 00:13

Immagino che come separatore di campi hai il "punto-e-virgola", quindi:
=SE(VAL.ERRORE(CERCA.VERT(F4;A:E;5;0));CERCA.VERT(F4;B:E;4;0);CERCA.VERT(F4;A:E;5;0))

Ri-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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi swarovsky » 18/10/07 15:59

Ciao Anthony47,tutto bene adesso adatto la formula ad altri eventi,grazie.Mauro
swarovsky
Newbie
 
Post: 9
Iscritto il: 17/05/07 17:00
Località: Firenze


Torna a Applicazioni Office Windows


Topic correlati a "formula excel":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti

cron