Risultati da 1 a 9 di 9

Discussione: Valore Max (Esiste funzione Se matriciale?)



  1. #1
    L'avatar di mrk14
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Roma
    Età
    28
    Messaggi
    1
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Valore Max (Esiste funzione Se matriciale?)

    Ciao a tutti,

    ho un problema. Devo individuare il valore max soddisfatte due condizioni.
    Mi spiego

    Ho un database con 3 colonne
    - nella prima elenco clienti (anche ripetuti)
    - nella seconda anno stipulazione contratto (va dal 2012 al 2015)
    - nella terza l'importo contratto

    Nella 4 colonna mi servirebbe associare l'importo più alto che quel cliente ha in quell'anno.

    In allegato il file Excel

    Grazie in anticipo

  2. #2
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao Mirko
    grazie per la domnada!
    non ti conviene creare una lista unica dei clienti (Clienti non duplicati) e poi associare ad ogni cliente il valore massimo?

  3. #3
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao Mirko
    in attesa della tua risposta, mi sono un po divertito a creare una formula
    Però prima di fare le formule ho cambiato un po il prospetto per una logica più comprensible


    Ad ogni modo potrai notare che prima di tutto ho creato una lista unica "dinamica"
    In A14 copia incolla questa formula ( attenzione questa formula per essere attivata devi fare CTRL+SHIFT+ENTER) e trascina la formula in basso

    =SE.ERRORE(INDICE($A$2:$A$10;PICCOLO(SE(FREQUENZA(CONFRONTA($A$2:$A$10;$A$2:$A$10;0);RIF.RIGA($A$2:$A$10)-RIF.RIGA($A$2)+1);RIF.RIGA($A$2:$A$10)-RIF.RIGA($A$2)+1);RIGHE($A$1:A1)));"")

    in B14 ho fatto una formula che mi restituisce il valore massimo del cliente:
    copia incolla questa formula ( attenzione questa formula per essere attivata devi fare CTRL+SHIFT+ENTER) e trascina la formula in basso

    =MAX(SE($A$2:$A$10=A14;$C$2:$C$10))


    in C14 ho fatto una formula che mi restituisce l'anno in cui il cliente ha fatto l'incasso migliore
    copia incolla questa formula ( attenzione questa formula per essere attivata devi fare CTRL+SHIFT+ENTER) e trascina la formula in basso

    =INDICE($B$2:$B$10;CONFRONTA(1;($A$2:$A$10=A14)*($C$2:$C$10=B14)))
    fammi sapere!


    A
    B
    C
    1
    Cliente
    Anno contratto
    Importo
    2
    Alfa
    2012
    € 10,00
    3
    Alfa
    2012
    € 15,00
    4
    Alfa
    2013
    € 18,00
    5
    Alfa
    2013
    € 15,00
    6
    Beta
    2014
    € 14,00
    7
    Gamma
    2014
    € 14,00
    8
    Beta
    2015
    € 17,00
    9
    Gamma
    2015
    € 18,00
    10
    Beta
    2015
    € 25,00
    11
    12
    13
    Cliente
    Importo Max
    Anno contratto
    14
    Alfa
    € 18,00
    2015
    15
    Beta
    € 25,00
    2015
    16
    Gamma
    € 18,00
    2015

    PS. ovviamente ci potrebbero essere altre soluzioni, vediamo se c'è qualcuno cosi generoso da fare altre formue??
    :43:
    Ultima modifica fatta da:Gerardo Zuccalà; 04/08/15 alle 19:53

  4. #4
    L'avatar di Pitagora
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Milano
    Età
    54
    Messaggi
    782
    Versione Office
    WIN , 2013 2016
    Likes ricevuti
    319
    Likes dati
    1

    funzione matriciale max

    Buona Sera a tutti


    Se del db interessa calcolare il valore max dei clienti ho aggiunto due convalide per cliente e anno

    Una formattazione condizionale per avere un riscontro visivo del valore massimo nel db e nel caso il max fosse zero ( nessun dato per la combinazione cliente

    anno).il db scompare per segnalare questa condizione



    Saluti
    Window 8.1 Excel 2013/2016

  5. #5
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da Pitagora Visualizza Messaggio
    Buona Sera a tutti


    Se del db interessa calcolare il valore max dei clienti ho aggiunto due convalide per cliente e anno

    Una formattazione condizionale per avere un riscontro visivo del valore massimo nel db e nel caso il max fosse zero ( nessun dato per la combinazione cliente

    anno).il db scompare per segnalare questa condizione



    Saluti
    Un approccio e una logica diversa dalla mia soluzione, adesso bisogna sentire mirko cosa ne pensa!

  6. #6
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1689
    Versione Office
    2010 PC
    Likes ricevuti
    899
    Likes dati
    185
    ciao
    in base al file di MRK14, in D2:
    =MAX(INDICE(($A$2:$A$10=A2)*($B$2:$B$10=B2)*$C$2:$C$10;))
    e ricopi in basso

  7. #7
    L'avatar di Andrea
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Levico Terme
    Età
    60
    Messaggi
    31
    Versione Office
    2013
    Likes ricevuti
    4
    Likes dati
    9
    Citazione Originariamente Scritto da ninai Visualizza Messaggio
    ***
    Ciao ninai
    la formula che hai messo te =MAX(INDICE(($A$2:$A$10=A2)*($B$2:$B$10=B2)*$C$2:$C$10;))
    e questa {
    =MAX(($A$2:$A$10=A3)*($B$2:$B$10=B3)*$C$2:$C$10)} ottengono lo stesso risultato. Ma secondo te,
    in un foglio che contiene 4000 o più formule quale delle due ricalcola più velocemente ? O i tempi sono medesimi ?

    Ho fatto una prova e su un file con 10000 records la seconda è più veloce di 4 secondi. Vabbè questo dipenderà anche dalla potenza del pc immagino.
    Comunque secondo te se questa differenza che ho riscontrato esiste, da cosa dipende ?
    Ultima modifica fatta da:Canapone; 10/02/17 alle 11:19

  8. #8
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1689
    Versione Office
    2010 PC
    Likes ricevuti
    899
    Likes dati
    185
    Ciao
    sulla differenza, tecnicamente no ti so rispondere, comunque basta fare dei test come hai già fatto tu. Io uso spesso indice(...), per evitare di dire la filastrocca del confermare come matriciale, bla bla bla ..... che spesso, malgrado lo dica, non lo fanno lo stesso. :176:

  9. #9
    L'avatar di Jos
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino, Piemonte
    Messaggi
    84
    Versione Office
    2013 PC
    Likes ricevuti
    90
    Likes dati
    5
    Citazione Originariamente Scritto da Andrea Visualizza Messaggio
    Ciao ninai
    la formula che hai messo te =MAX(INDICE(($A$2:$A$10=A2)*($B$2:$B$10=B2)*$C$2:$C$10;))
    e questa {
    =MAX(($A$2:$A$10=A3)*($B$2:$B$10=B3)*$C$2:$C$10)} ottengono lo stesso risultato. Ma secondo te,
    in un foglio che contiene 4000 o più formule quale delle due ricalcola più velocemente ? O i tempi sono medesimi ?

    Ho fatto una prova e su un file con 10000 records la seconda è più veloce di 4 secondi. Vabbè questo dipenderà anche dalla potenza del pc immagino.
    Comunque secondo te se questa differenza che ho riscontrato esiste, da cosa dipende ?

    Sì. Non è molto noto, ma il vantaggio di utilizzare INDICE in questo modo per aggirare la necessità di confermare come matriciale è compensato dal fatto che tali costruzioni sono molto meno efficiente rispetto alla versione equivalente matriciale.

    Conosco alcune persone che sono così ossessionate da evitare la matriciale che a volte inseriscono fino a 2 o 3 funzioni INDICE aggiuntive a tal fine, non rendendosi conto che in questo Excel deve lavorare molto di più.

    Saluti
    Advanced Excel Techniques: http://excelxor.com/

Discussioni Simili

  1. [Risolto] esiste una funzione/espressione che restituisce ERRORE per 2 celle diverse?
    Di nemoclipru nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 05/03/17, 20:17
  2. [Risolto] Nascondere contenuto di una cella in funzione del valore valore di un'altra cella
    Di Emax80 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 05/12/16, 16:54
  3. Esiste una funzione sostitutiva di PIU.SE?
    Di dandyrama nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 19/07/16, 18:19
  4. Problema con formula matriciale
    Di Raffaele_53 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 01/07/16, 17:58
  5. Risposte: 7
    Ultimo Messaggio: 22/06/16, 16:17

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •