| | Post: 1 | Registrato il: 16/01/2017
| Città: MILANO | Età: 34 | Utente Junior | 2010 | | OFFLINE | |
|
16/01/2017 18:53 | |
Buona sera.
sono nuovo del furum, saluto e ringrazio tutti anticipatamente.
Io ho il seguente problema, ho 3 fogli, dove vi sono riportati su ogni foglio, gli stessi prodotti con i rispettivi prezzi (di tre aziende differenti). A me servirebbe che su un quarto foglio per ogni riga mi venga riportato il prezzo più basso dei tre fogli precedenti...
Per effettuare questa operazione ho utilizzato la formula =MIN().
Infatti, così facendo per ogni prodotto mi viene trascritto il prezzo più basso.
E più o meno me la sono cavata, ma adesso a me servirebbe che sulla cella di fianco mi esca da che foglio arriva il prezzo più piccolo (oppure che mi si copi una cella dei 3 fogli dove è scritto il nome dell'azienda)...
Spero di essere stato chiaro ed aver scritto bene...
Ringrazio ancora tutti e porgendovi una buona serata attendo pazientemente una cortese risposta..
Grazie
Luca |
|
| | Post: 2.593 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
16/01/2017 18:58 | |
Ciao Luca
Sarebbe utile se allegassi un file di esempio (con struttura uguale all'originale) spiegazioni e risultato desiderato inserito manualmente.
Alfredo |
| | Post: 1 | Registrato il: 16/01/2017
| Città: MILANO | Età: 34 | Utente Junior | 2010 | | OFFLINE | |
|
17/01/2017 08:16 | |
Ciao...immaginavo che la mia spiegazione non fosse chiarissima ... in allegato file con esempio... Grazie mille!! ciao!
Luca |
| | Post: 2.599 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
17/01/2017 10:13 | |
Ho visto il file ora ci penso un attimo e ci risentiamo.
Alfredo |
| | Post: 2 | Registrato il: 16/01/2017
| Città: MILANO | Età: 34 | Utente Junior | 2010 | | OFFLINE | |
|
17/01/2017 10:53 | |
Grazie mille...
Luca |
| | Post: 2.601 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
17/01/2017 14:07 | |
Ciao Luca
Devo doverosamente premettere che le soluzioni che ti propongo non sono farina del mio sacco ma il merito è da attribuire ad amici di altro forum.
Io le ho solo adattate al tuo caso.
1^ Soluzione con formule
Sul foglio "Finale" in C1:C3 metti i nomi dei tre fogli.
Nelle celle I8:I10 metti le seguenti formule matriciali (da confermare con CTRL+SHIFT+INVIO)
vb =INDICE($C1:$C3;CONFRONTA(MIN(NUM(INDIRETTO("'"&C1:C3&"'!e5")));NUM(INDIRETTO("'"&C1:C3&"'!e5"));0))
vb =INDICE($C1:$C3;CONFRONTA(MIN(NUM(INDIRETTO("'"&C1:C3&"'!e6")));NUM(INDIRETTO("'"&C1:C3&"'!e6"));0))
vb =INDICE($C1:$C3;CONFRONTA(MIN(NUM(INDIRETTO("'"&C1:C3&"'!e7")));NUM(INDIRETTO("'"&C1:C3&"'!e7"));0))
2^ Soluzione con VBA
Inserisci questa function in un modulo standard
vb Function NomeFoglioDaMinimi(ParamArray celle() As Variant) As Variant
Dim ciclo
NomeFoglioDaMinimi = celle(0).Parent.Name
For ciclo = 0 To UBound(celle) - 1
If celle(ciclo) > celle(ciclo + 1) Then
NomeFoglioDaMinimi = celle(ciclo + 1).Parent.Name
End If
Next
End Function
e sul foglio di lavoro in I8:I10 scrivi
vb =NomeFoglioDaMinimi(Ditta1!E5;Ditta2!E5;Ditta3!E5)
vb =NomeFoglioDaMinimi(Ditta1!E6;Ditta2!E6;Ditta3!E6)
vb =NomeFoglioDaMinimi(Ditta1!E7;Ditta2!E7;Ditta3!E8)
Ti allego il file
Alfredo |
| | Post: 2.603 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Veteran | Excel 365 | | OFFLINE |
|
17/01/2017 14:18 | |
Altra soluzione (sempre non mia) potrebbe essere questa avendo sempre i nomi dei fogli in C1:C3
vb =CERCA(1;0/FREQUENZA(-99^99;Ditta1:Ditta3!E5);$C$1:$C$3)
Mi sembra la più semplice da adottare.
Ovviamente i nomi dei fogli puoi metterli dove vuoi cambiando ovviamente i riferimenti nella formula.
Alfredo |
| | Post: 32 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Junior | 2016 | | ONLINE |
|
17/01/2017 16:39 | |
Ciao
in base al tuo file di esempio costruisci una tabellina
da L1 a N1 del foglio"finali" metti i nomi dei fogli da O2 a O4 metti i nomi dei fogli
in L2 da trascinare fino a N2 e poi in basso fino a riga 4
=SE(VAL.NON.DISP(CERCA.VERT($E8;INDIRETTO(L$1&"!$E$5:$E$7");1;0));"";CERCA.VERT($E8;INDIRETTO(L$1&"!$E$5:$E$7");1;0))
in I8 datrascinare fino a I 10
=INDICE($L$2:$O$4;CONFRONTA(E8;$L2:$O2;0);4) da trascinare fino a I10
le colonne L-M-N-O le nascondi [Modificato da DANILOFIORINI 17/01/2017 16:42] |
|
|