Risolto Data a cui si verifica una condizione

NormaJean

Nuovo utente
15 Dicembre 2017
10
1
italia
2015
0
Buongiorno a tutti,
in un foglio ho come riga di intestazione una serie di date che vanno di 6 mesi in 6 mesi e l'avanzamento lavori in percentuale (frazionata, non progressiva).
Mi interessa riportare in un altro foglio di lavoro la data entro cui la somma delle percentuali sia 100% ma non mi viene in mente nessun modo per crearla.
Potrei usare delle scorciatoie come trasformare le percentuali in progressive e poi usare il cerca orizzontale ma vorrei capire se c'è un modo più diretto.
Grazie mille a chi mi vorrà aiutare
 

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
7.297
345
Latina
Excel 2010
638
Ciao
per capre anche noi...abbiamo bisogno di un file
indicando a mano il risultato atteso
 

NormaJean

Nuovo utente
15 Dicembre 2017
10
1
italia
2015
0
Ciao
per capre anche noi...abbiamo bisogno di un file
indicando a mano il risultato atteso
ciao, scusate avete ragione.
Ecco il file, quello che vorrei riuscire a fare è che la formula mi restituisse la data in cui la somma di ogni riga arriva al 100%, ad esempio per la riga sal 1 dovrebbe restituire dic-24 e cosi via.
spero di essermi spiegato
grazie mille
 

Allegati

NormaJean

Nuovo utente
15 Dicembre 2017
10
1
italia
2015
0
ciao

se la struttura è questa
=SE.ERRORE(CERCA(2;1/($C6:$T6<>"");$C$4:$T$4);"")
ti ringrazio è esattamente quello che mi serviva.
Prendo spunto per studiare la funzione errore che non conosco, e se hai tempo e voglia ti chiederei, come mai nelle sintassi $C6:$T6<>"" non si usa la formula "somma"?
<>"" cosa significa??

grazie ancora
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
28.275
1.845
66
Napoli
2019 Pro Plus
770
Visto che l'avevo scritta (e per compiacere l'amico Gianfranco55 @Gianfranco55 Muoio_muoio) propongo pure una UDF da inserire in un modulo standard

Visual Basic:
Function Trovadata(rng As Range)
Dim cel As Range
Dim somma As Double
For Each cel In rng
    somma = somma + cel.Value
    If somma = 1 Then
        Trovadata = Cells(4, cel.Column)
    Exit For
    End If
Next cel
End Function
e sul foglio, relativamente al sal1, si può scrivere

=Trovadata(C6:T6)

e verrà restituita la data del 31-dic-24
 
  • Like
Reactions: NormaJean

NormaJean

Nuovo utente
15 Dicembre 2017
10
1
italia
2015
0
Visto che l'avevo scritta (e per compiacere l'amico Gianfranco55 @Gianfranco55 Muoio_muoio) propongo pure una UDF da inserire in un modulo standard

Visual Basic:
Function Trovadata(rng As Range)
Dim cel As Range
Dim somma As Double
For Each cel In rng
    somma = somma + cel.Value
    If somma = 1 Then
        Trovadata = Cells(4, cel.Column)
    Exit For
    End If
Next cel
End Function
e sul foglio, relativamente al sal1, si può scrivere

=Trovadata(C6:T6)

e verrà restituita la data del 31-dic-24
Grazie mille, ma un pò troppo difficile per le mie capacità attuali!!!
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
28.275
1.845
66
Napoli
2019 Pro Plus
770
Ora la soluzione con formule ce l'hai ma comunque non è difficile

Premi Alt+F11
Dal menù Inserisci scegli Modulo
Nella finestra a destra copi il codice che ho scritto
Torna al foglio e in una cella scrivi la formula come ti ho detto.
 
  • Like
Reactions: NormaJean

Gianfranco55

Utente senior
5 Novembre 2015
7.517
345
65
Valdagno
excel 365
577
ciao
Al me le studio le tue funzioni eh!

spiegazione della formula ( a parole mie)

=SE.ERRORE(CERCA(2;1/($C6:$T6<>"");$C$4:$T$4);"")

il CERCA se non trova il risultato ti riporta l'ultimo valore.
se cerco il 2 su 1/….....
non lo troverà mai
perciò mi darà l'ultimo valore che trova.
<>"" vuol dire diverso da vuoto

in pratica
cerca 2
dove?
1/$C6:$T6 diverso da vuoto
e dammi il risultato corrispondente di $C$4:$T$4
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!