| | Post: 136 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
13/05/2024 11:10 | |
Buongiorno, avrei bisogno di una mano per risolvere il seguente problema.
Uso i riferimenti del file che allego: Nel 'Foglio1' ho una tabella in cui trascrivo, per ogni nominativo ore di docenza ed eventuale codocenza. Nel 'Foglio2' voglio riportare, ogni volta che inserisco un nominativo nella cella B2, in D2 il numero di ore di docenza e in F2 il numero di ore di codocenza relative allo stesso nominativo (ogni nominativo riporta questo valore subito nella cella sottostante). In D2 ho inserito la formula =CERCA.VERT(B2;Foglio1!A1:B20;2;FALSO). Che formula posso usare in F2 per ricavare la codocenza del nominativo in B2? Grazie Excel 2007 e 2010 |
|
| | Post: 3.390 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | ONLINE |
|
13/05/2024 12:38 | |
ciao
per la formula ho usato il 2007 così non avrai problemi
B2 da tirare in basso
=SE(VAL.ERRORE(INDICE(Foglio1!$A$1:$A$1000;PICCOLO(SE((Foglio1!$A$1:$A$1000<>"codocenza")*(Foglio1!$A$1:$A$1000<>"");RIF.RIGA($A$1:$A$1000));RIF.RIGA(A1))));"";INDICE(Foglio1!$A$1:$A$1000;PICCOLO(SE((Foglio1!$A$1:$A$1000<>"codocenza")*(Foglio1!$A$1:$A$1000<>"");RIF.RIGA($A$1:$A$1000));RIF.RIGA(A1))))
D2
=SE(B2<>"";MATR.SOMMA.PRODOTTO((Foglio1!$A$1:$A$1000=$B2)*Foglio1!$B$1:$B$1000);"")
F2
=SE($B2<>"";MATR.SOMMA.PRODOTTO((Foglio1!$A$1:$A$1000=$B2)*Foglio1!$B$2:$B$1001);"")
se vuoi usare indice confronta al posto di cerca verticale ti puoi spostare di una riga in basso
F2
=INDICE(Foglio1!$B$1:$B$1000;CONFRONTA($B2;Foglio1!$A$1:$A$1000;0)+1)
|
| | Post: 136 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
13/05/2024 13:32 | |
Perfetto Fede! Userò INDICE. Grazie🙏 Excel 2007 e 2010 |
| | Post: 137 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
13/05/2024 13:46 | |
Fede, posso chiederti ancora un aiuto, se puoi?
Se volessi che nella tua formula
=INDICE(Foglio1!$B$1:$B$1000;CONFRONTA($B2;Foglio1!$A$1:$A$1000;0)+1)
il riferimento al foglio1! fosse il nome del mese e che ogni volta la formula andasse a leggere nel foglio con il nome del mese in corso. Per chiarezza: fermo restando il Foglio2, esistono altri dodici fogli che hanno il nome di ogni mese. Vorrei che la formula si adattasse al mese in corso. Tieni presente che nel foglio2 esiste un campo con la formula =OGGI(). Forse si potrebbe prelevare da lì il nome del foglio da cui leggere i dati?...
Grazie di tutto Excel 2007 e 2010 |
| | Post: 3.391 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | ONLINE |
|
13/05/2024 15:11 | |
Ciao
in B1
=MAIUSC(TESTO(MESE(OGGI())*29;"MMMM"))
in F2
=INDICE(INDIRETTO($B$1&"!$B$1:$B$1000");CONFRONTA($B2;INDIRETTO($B$1&"!$A$1:$A$1000");0)+1)
nome foglio io ho usato il maiuscolo ma puoi scriverlo minuscolo e levare dalla formula MAIUSC
[Modificato da federico460 13/05/2024 15:13] |
| | Post: 138 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
13/05/2024 17:36 | |
Grazie ai tuoi consigli ho anche applicato la formula alla casella D2 (semplicemente eliminando "+1" in fondo alla formula. Ma vorrei chiederti un'ultima cosa.
Stavo cercando di applicare le tue formule per prelevare un altro dato presente sempre nel foglio[ mese] ma in colonna I. Ho, quindi, inserito in D3 la formula:
=INDICE(INDIRETTO($B$1&"!$F$1':$F$20");CONFRONTA($B2;INDIRETTO($B$1&"!$A$1:$A$20");0))
ma, come vedi, mi dà errore. Dove sbaglio?
P.S.: ho eliminato il foglio1 che, in realtà, non esiste, ma assume di volta in volta il nome [ mese]. Allego il nuovo file di esempio
Excel 2007 e 2010 |
| | Post: 3.392 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | ONLINE |
|
13/05/2024 19:02 | |
ciao
hai allegato lo stesso file di prima
non vedo le formule nuove e il dato in B1
ma se devi prelevare in colonna I devi cambiare l'indice
=INDICE(INDIRETTO($B$1&"!$I$1':$I$20");CONFRONTA($B2;INDIRETTO($B$1&"!$A$1:$A$20");0)) [Modificato da federico460 13/05/2024 19:04] |
| | Post: 139 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
13/05/2024 19:14 | |
Scusa Fede, rimando l'allegato, perchè così la formula dà sempre errore. Excel 2007 e 2010 |
| | Post: 3.393 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Master | 365 | | ONLINE |
|
13/05/2024 19:27 | |
ciao
guarda che funziona
=SE(B2<>"";INDICE(INDIRETTO($B$1&"!$F$1:$F$1000");CONFRONTA($B2;INDIRETTO($B$1&"!$A$1:$A$1000");0));"")
ma una volta messa in D2 la devi trascinare in basso
trovato l'errore è una virgoletta
nel primo indiretto
=INDICE(INDIRETTO($B$1&"! $F$1':$F$20");CONFRONTA($B2;INDIRETTO($B$1&"!$A$1:$A$20");0)) [Modificato da federico460 13/05/2024 19:34] |
| | Post: 140 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
13/05/2024 19:56 | |
😱... è vero! Grazie moltissime Fede.
Purtroppo non posso dirti "a buon rendere" perchè, come vedi, sono piuttosto 'sprovveduto'!
Di nuovo grazie tante! Excel 2007 e 2010 |
|
|