Discussione:
Somma/differenza con una cella del foglio precedente
(troppo vecchio per rispondere)
MarcoN
2014-11-06 10:15:19 UTC
Permalink
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare una formula che faccia riferimento ad una cella del foglio precedente, tipo: =[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
Andrea.9
2014-11-06 18:09:08 UTC
Permalink
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare una formula che faccia riferimento ad una cella del foglio precedente, tipo: =[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
Si potrebbe ad esempio usare il nome della foglio.
Nomina i fogli con numeri progressivi da 1 a 12.
poi usa le funzioni INFO (non documentare sulla guida in linea ma trovi tutto in rete).
verifichi in mome (quindi il numero) del foglio in cui si trova la tua formula quindi fai -1 e con INDIRETTO ricostruisci l'indirizzo che ti serve.
Al momento non posso provare ma se non te la cavi dillo.
ciao.
andrea
MarcoN
2014-11-07 08:13:52 UTC
Permalink
Post by Andrea.9
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare una formula che faccia riferimento ad una cella del foglio precedente, tipo: =[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
Si potrebbe ad esempio usare il nome della foglio.
Nomina i fogli con numeri progressivi da 1 a 12.
poi usa le funzioni INFO (non documentare sulla guida in linea ma trovi tutto in rete).
verifichi in mome (quindi il numero) del foglio in cui si trova la tua formula quindi fai -1 e con INDIRETTO ricostruisci l'indirizzo che ti serve.
Al momento non posso provare ma se non te la cavi dillo.
ciao.
andrea
Mi sembra che paoloard ha suggerito il metodo più semplice ma che non funziona se si cambia il nome del foglio.

Il tuo metodo Andrea invece non l'ho capito perché troppo avanzato per me, però se ho ben capito non avrò più i fogli nominati come gennaio, febbreio, etc ma come numeri, vero?

Grazie
paoloard
2014-11-06 19:04:30 UTC
Permalink
"MarcoN" ha scritto nel messaggio news:7c871dfc-69a4-4c37-bcc3-***@googlegroups.com...

Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei
trovare una formula che faccia riferimento ad una cella del foglio
precedente, tipo: =[cella del foglio precedente] meno [cella del foglio
corrente]. Si può fare?

Immagina di avere il dato nel Foglio1 foglio precedente), nella cella A1.
Nel Foglio2 (foglio corrente) il dato in B1.
Formula: =B1-Foglio1!A1
sempre che io abbia capito.... mah!
paoloard
ale
2014-11-07 09:32:30 UTC
Permalink
Ciao Marco,
forse andrea intendeva una cosa simile:
=INDIRETTO("'"&INDICE(C2:C13;CONFRONTA(DESTRA(CELLA("filename";A1);LUNGHEZZA(CELLA("filename";A1))-RICERCA("]";CELLA("filename";A1)));C2:C13;0)-1)&"'!A1")

dove in quel C2:C13 ci sono scritti i vari mesi, mentre nel finale quel A1 è la cella del foglio precedente (adatta entrambe le cose).
Ottenuto il valore del foglio precedente fai la tua differenza/somma...
ciao
ale
MarcoN
2014-11-07 10:28:23 UTC
Permalink
Post by ale
Ciao Marco,
=INDIRETTO("'"&INDICE(C2:C13;CONFRONTA(DESTRA(CELLA("filename";A1);LUNGHEZZA(CELLA("filename";A1))-RICERCA("]";CELLA("filename";A1)));C2:C13;0)-1)&"'!A1")
dove in quel C2:C13 ci sono scritti i vari mesi, mentre nel finale quel A1 è la cella del foglio precedente (adatta entrambe le cose).
Ottenuto il valore del foglio precedente fai la tua differenza/somma...
ciao
ale
Miseria, che formula... non capisco però l'intervallo C2:C13: i nomi dei mesi sono solo nel nome di ogni foglio ...
ale
2014-11-07 12:48:30 UTC
Permalink
scrivi in quel C2:C13 gennaio, febbraio, marzo, ecc....
in pratica, una parte di quella formula capisce su quale foglio sei, un'altra parte, dopo aver capito su quale foglio sei, in base a quel C2:C13, capisce qual'è il foglio precedente e l'ultima parte della formula con quel A1 capisce quale cella deve prendere.
ciao
ale
ale
2014-11-07 12:50:01 UTC
Permalink
ancora una cosa: i nomi in C2:C13 devono esser uguali ai nomi dei fogli: se i fogli si chiam gen, feb, mar (e non gennaio, febbraio, marzo) li devi scrivere gen, feb...
ciao
ale
MarcoN
2014-11-07 14:50:15 UTC
Permalink
Post by ale
ancora una cosa: i nomi in C2:C13 devono esser uguali ai nomi dei fogli: se i fogli si chiam gen, feb, mar (e non gennaio, febbraio, marzo) li devi scrivere gen, feb...
ciao
ale
Mi sembra interessantissima, lunedì provo. Grazie intanto.
MarcoN
2014-11-07 14:53:33 UTC
Permalink
Post by ale
ancora una cosa: i nomi in C2:C13 devono esser uguali ai nomi dei fogli: se i fogli si chiam gen, feb, mar (e non gennaio, febbraio, marzo) li devi scrivere gen, feb...
ciao
ale
Mi sembra interessantissima, lunedì provo.

Se voglio mettere i nomi dei fogli da considerare in un foglio separato sarà sufficente mettere "foglioX!C2-foglioX!C13"?

Grazie intanto.
Bruno Campanini
2014-11-08 13:35:56 UTC
Permalink
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare
=[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
=INDIRECT(INDEX({"GEN","FEB","MARZO","APR","MAG","GIU",
"LUG","AGO","SET","OTT","NOV","DICEMBRE"},SUM(IF(RIGHT
(CELL("filename"),3)={"GEN","FEB","MAR","APR","MAG",
"GIU","LUG","AGO","SET","OTT","NOV","DIC"},{1,2,3,4,5,
6,7,8,9,10,11,12}))-1) & "!D10")-D10

Puoi chiamare i mesi come vuoi (vedi la sequenza di INDEX),
purché non vengano cambiate le prime tre lettere naturali.

Il numero -1 in "... )-1) & "!D10")-D10" indica
che vuoi riferirti al mese precedente;
puoi anche muoverti in ambo i sensi con +/-3, +/-7, etc.

Bruno
Bruno Campanini
2014-11-08 16:27:42 UTC
Permalink
Post by Bruno Campanini
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei
trovare una formula che faccia riferimento ad una cella del foglio
precedente, tipo: =[cella del foglio precedente] meno [cella del foglio
corrente]. Si può fare?
=INDIRECT(INDEX({"GEN","FEB","MARZO","APR","MAG","GIU",
"LUG","AGO","SET","OTT","NOV","DICEMBRE"},SUM(IF(RIGHT
(CELL("filename"),3)={"GEN","FEB","MAR","APR","MAG",
"GIU","LUG","AGO","SET","OTT","NOV","DIC"},{1,2,3,4,5,
6,7,8,9,10,11,12}))-1) & "!D10")-D10
Puoi chiamare i mesi come vuoi (vedi la sequenza di INDEX),
purché non vengano cambiate le prime tre lettere naturali.
Il numero -1 in "... )-1) & "!D10")-D10" indica
che vuoi riferirti al mese precedente;
puoi anche muoverti in ambo i sensi con +/-3, +/-7, etc.
Ci sarebbe anche questa:
======================================
Public Function ForthAndBack(OffsetSheet As Integer, _
ExternalCell As String)
Dim Mese(1 To 12) As String, i, j, A
A = Array("GEN", "FEB", "MAR", "APR", "MAG", "GIU", _
"LUG", "AGO", "SET", "OTT", "NOV", "DIC")
For Each i In A: j = j + 1: Mese(j) = i: Next
For i = 1 To 12
If Left(ActiveSheet.Name, 3) = Mese(i) Then
For Each j In Sheets
If UCase(Left(j.Name, 3)) = Mese(i + OffsetSheet) Then
ForthAndBack = j.Range(ExternalCell)
Exit Function
End If
Next
End If
Next
End Function
========================================

Bruno
MarcoN
2014-11-10 18:08:29 UTC
Permalink
Accidenti ... grazie Bruno, ma la limitazione dei nomi precisi mi è d'aiuto invece che una limitazione. Solo che non sono sicuro dell'adattamento della formula anche se sembra funzionare:

Le somme progressive sono nella cella AM7 di ogni foglio e i nomi dei mesi da considerare nel foglio "turni attivi C10-C21", dalla vostra altezza vi sembra corretta?

=AM7+(INDIRETTO("'"&INDICE('Turni attivi'!C10:C21;CONFRONTA(DESTRA(CELLA("filename";AM7);LUNGHEZZA(CELLA("filename";AM7))-RICERCA("]";CELLA("filename";AM7)));'Turni attivi'!C10:C21;0)-1)&"'!AM7"))

Grazie a tutti!
Bruno Campanini
2014-11-13 01:31:31 UTC
Permalink
Post by MarcoN
Accidenti ... grazie Bruno, ma la limitazione dei nomi precisi mi è d'aiuto
invece che una limitazione. Solo che non sono sicuro dell'adattamento della
Tradotta nella lingua di Dante:

INDIRETTO(INDICE({"Gennaio","Febbraio","Marzo","Aprile",
"Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre",
"Novembre","Dicembre"};SOMMA(SE(DESTRA(CELLA("nomefile");3)
={"GEN","FEB","MAR","APR","MAG","GIU","LUG","AGO","SET",
"OTT","NOV","DIC"};{1,2,3,4,5,6,7,8,9,10,11,12}))-1) & "!AM7")

La puoi mettere in qualunque mese senza dover far riferimento ai nomi
dei mesi elencati in "Turni attivi": l'importante è che i nomi dei
fogli corrispondano esattamente a quelli indicati in
INDICE({Gennaio, Febbraio... etc}.
E possono essere scritti in qualunque maniera: maiuscoli, minuscoli,
abbreviati, purché le prime tre lettere siano quelle naturali.

Bruno
paoloard
2014-11-13 09:22:48 UTC
Permalink
Post by MarcoN
Accidenti ... grazie Bruno, ma la limitazione dei nomi precisi mi è
d'aiuto invece che una limitazione. Solo che non sono sicuro
Tradotta nella lingua di Dante:

INDIRETTO(INDICE({"Gennaio","Febbraio","Marzo","Aprile",
"Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre",
"Novembre","Dicembre"};SOMMA(SE(DESTRA(CELLA("nomefile");3)
={"GEN","FEB","MAR","APR","MAG","GIU","LUG","AGO","SET",
"OTT","NOV","DIC"};{1,2,3,4,5,6,7,8,9,10,11,12}))-1) & "!AM7")

La puoi mettere in qualunque mese senza dover far riferimento ai nomi
dei mesi elencati in "Turni attivi": l'importante è che i nomi dei
fogli corrispondano esattamente a quelli indicati in
INDICE({Gennaio, Febbraio... etc}.
E possono essere scritti in qualunque maniera: maiuscoli, minuscoli,
abbreviati, purché le prime tre lettere siano quelle naturali.

Bruno


Ciao Bruno, solo una considerazione.
Per rilevare il numero del mese con riferimento al mese in lettere, si
potrebbe abbreviare in questo modo:
per es. metti in A1 il nome del mese, sia abbreviato sia intero sia
maiuscolo sia minuscolo, questa formula:
=MESE(A1&1) ti restituisce il numero del mese,
vedi se puo' servirti per abbreviare la tua formula.
Io non ho seguito tutto il thread e quindi faccio fatica a ricostruirmi
tutta la situazione.
Ciao paoloard
Bruno Campanini
2014-11-13 15:16:06 UTC
Permalink
Post by paoloard
Ciao Bruno, solo una considerazione.
Per rilevare il numero del mese con riferimento al mese in lettere, si
per es. metti in A1 il nome del mese, sia abbreviato sia intero sia maiuscolo
=MESE(A1&1) ti restituisce il numero del mese,
vedi se puo' servirti per abbreviare la tua formula.
Io non ho seguito tutto il thread e quindi faccio fatica a ricostruirmi tutta
la situazione.
Ciao paoloard
Ottima considerazione!

Utilizzando il tuo suggerimento e l'elenco che l'OP ha
già predisposto nel foglio "Turni Attivi" è risultata
una formula molto più breve:

=INDIRECT(INDEX(INDIRECT("'Turni Attivi'!C10:C21"),MONTH($A$1)-1)
&"!D10")

avendo inserito in A! di ogni foglio
una data qualunque di quel mese.

Bruno
MarcoN
2014-11-14 10:32:59 UTC
Permalink
Post by Bruno Campanini
Post by paoloard
Ciao Bruno, solo una considerazione.
Per rilevare il numero del mese con riferimento al mese in lettere, si
per es. metti in A1 il nome del mese, sia abbreviato sia intero sia maiuscolo
=MESE(A1&1) ti restituisce il numero del mese,
vedi se puo' servirti per abbreviare la tua formula.
Io non ho seguito tutto il thread e quindi faccio fatica a ricostruirmi tutta
la situazione.
Ciao paoloard
Ottima considerazione!
Utilizzando il tuo suggerimento e l'elenco che l'OP ha
già predisposto nel foglio "Turni Attivi" è risultata
=INDIRECT(INDEX(INDIRECT("'Turni Attivi'!C10:C21"),MONTH($A$1)-1)
&"!D10")
avendo inserito in A! di ogni foglio
una data qualunque di quel mese.
Bruno
Ho visto anche che tali formule non funzionano con il copia e incolla (ho 4 celle che fanno il medesimo calcolo su cose diverse: ferie, ore, etc). Mi sa che la soluzione più rapida senza complicarsi la vita sia per esempio per AN9 di marzo:

=AM9+Febbraio!AN9

e poi cambiare a mano mese per mese...
Bruno Campanini
2014-11-14 12:50:43 UTC
Permalink
Post by MarcoN
Post by Bruno Campanini
Post by paoloard
Ciao Bruno, solo una considerazione.
Per rilevare il numero del mese con riferimento al mese in lettere, si
per es. metti in A1 il nome del mese, sia abbreviato sia intero sia
=MESE(A1&1) ti restituisce il numero del mese,
vedi se puo' servirti per abbreviare la tua formula.
Io non ho seguito tutto il thread e quindi faccio fatica a ricostruirmi
tutta la situazione.
Ciao paoloard
Ottima considerazione!
Utilizzando il tuo suggerimento e l'elenco che l'OP ha
già predisposto nel foglio "Turni Attivi" è risultata
=INDIRECT(INDEX(INDIRECT("'Turni Attivi'!C10:C21"),MONTH($A$1)-1)
&"!D10")
avendo inserito in A! di ogni foglio
una data qualunque di quel mese.
Bruno
Ho visto anche che tali formule non funzionano con il copia e incolla (ho 4
celle che fanno il medesimo calcolo su cose diverse: ferie, ore, etc).
Tutte le formule mal scritte e/o mal usate funzionano male,
quelle ben scritte e ben usate funzionano bene.
Da sempre!
Post by MarcoN
Mi sa
che la soluzione più rapida senza complicarsi la vita sia per esempio per AN9
=AM9+Febbraio!AN9
e poi cambiare a mano mese per mese...
Hai fatto una scoperta inportante!

Bruno

Bruno Campanini
2014-11-13 12:24:19 UTC
Permalink
Post by Bruno Campanini
Post by MarcoN
Accidenti ... grazie Bruno, ma la limitazione dei nomi precisi mi è d'aiuto
invece che una limitazione. Solo che non sono sicuro dell'adattamento della
INDIRETTO(INDICE({"Gennaio","Febbraio","Marzo","Aprile",
"Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre",
"Novembre","Dicembre"};SOMMA(SE(DESTRA(CELLA("nomefile");3)
={"GEN","FEB","MAR","APR","MAG","GIU","LUG","AGO","SET",
"OTT","NOV","DIC"};{1,2,3,4,5,6,7,8,9,10,11,12}))-1) & "!AM7")
Sorry, così non funziona, ho trovato un buco nero!


Bruno
MarcoN
2014-11-11 11:26:08 UTC
Permalink
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare una formula che faccia riferimento ad una cella del foglio precedente, tipo: =[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
Niente da fare, non riesco a far funzionare la formula la formula di Ale e nemmeno la prima di Bruno, forse perché scritta in inglese. La seconda di Bruno non so nemmeno da dove iniziare :-)
ale
2014-11-11 12:05:44 UTC
Permalink
Post by MarcoN
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare una formula che faccia riferimento ad una cella del foglio precedente, tipo: =[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
Niente da fare, non riesco a far funzionare la formula la formula di Ale e nemmeno la prima di Bruno, forse perché scritta in inglese. La seconda di Bruno non so nemmeno da dove iniziare :-)
prova così...
=AM7+(INDIRETTO("'"&INDICE('Turni attivi'!C10:C21;CONFRONTA(DESTRA(CELLA("filename";A1);LUNGHEZZA(CELLA("filename";A1))-RICERCA("]";CELLA("filename";A1)));'Turni attivi'!C10:C21;0)-1)&"'!AM7"))
in pratica ho cambiato solo in A1 il rif per il foglio...non l'ultimo che è per la cella...
ma non l'ho provata...
vado a pranzo
ciao
ale
MarcoN
2014-11-12 14:31:08 UTC
Permalink
Post by ale
Post by MarcoN
Post by MarcoN
Cerco di spiegarmi: ho una cartella di 12 fogli, uno per mese. Vorrei trovare una formula che faccia riferimento ad una cella del foglio precedente, tipo: =[cella del foglio precedente] meno [cella del foglio corrente]. Si può fare?
Niente da fare, non riesco a far funzionare la formula la formula di Ale e nemmeno la prima di Bruno, forse perché scritta in inglese. La seconda di Bruno non so nemmeno da dove iniziare :-)
prova così...
=AM7+(INDIRETTO("'"&INDICE('Turni attivi'!C10:C21;CONFRONTA(DESTRA(CELLA("filename";A1);LUNGHEZZA(CELLA("filename";A1))-RICERCA("]";CELLA("filename";A1)));'Turni attivi'!C10:C21;0)-1)&"'!AM7"))
in pratica ho cambiato solo in A1 il rif per il foglio...non l'ultimo che è per la cella...
ma non l'ho provata...
vado a pranzo
ciao
ale
No, non va ma mi sa che ci stiamo scervellando per niente, provo a sistemare diversamente con le nozioncine che conosco. Grazie comunque
ale
2014-11-12 16:28:14 UTC
Permalink
ma come no...scusami se insisto.
dunque tu hai 13 fogli: uno si chiama "turni attivi" e gli altri si chiamano gen-feb-mar...(cosa importante: i nomi di questi fogli devono esser uguali ai nomi in C10:C22 del foglio turni attivi).
volendo fare un esempio: ti metti su aprile e in AM7 (di aprile) hai 100, mentre in AM7 (di marzo) hai 40. Il tuo risultato sarà 140.
ora se inserisci questa
=AM7+(INDIRETTO("'"&INDICE('Turni attivi'!C10:C21;CONFRONTA(DESTRA(CELLA("filename";A1);LUNGHEZZA(CELLA("filename";A1))-RICERCA("]";CELLA("filename";A1)));'Turni attivi'!C10:C21;0)-1)&"'!AM7"))
dove vuoi tu (mi raccomando il file deve esser salvato quindi non in un cartel1 qualunque) vedrai che otterrai 140.
quando copi la formula fai attenzione che se la formula ti viene spezzata (per gli "a capo") non ti funziona.
ciao
ale
Loading...