Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Spiegazione formula

  1. #1
    niccoflo non è in linea Novello
    Post
    44
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve ragazzi,

    avrei bisogno di qualche spiegazione su alcune formule di Excel; in una precedente discussione ho avuto il problema seguente: partire da una serie di dati così impilati:
    a
    b

    c


    d



    e
    f

    e arrivare, nella colonna adiacente, tramite FORMULA (e non tramite macro) ad un output di questo genere:
    a
    b
    c
    d
    e
    f

    I risultati che mi sono da voi pervenuti, molto gentilmente, sono stati 2:

    Il primo è il seguente:


    =INDICE($A$1:$A$20;PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20)-MIN(RIF.RIGA($A$1:$A$20))+1);RIF.RIGA(A1)))

    ed ha funzionato con successo.

    Il secondo è il seguente:

    =INDIRETTO(INDIRIZZO(PICCOLO((SE($A$1:$A$14<>"";RI F.RIGA($A$1:$A$14);RIF.RIGA()+RIGHE($A$1:$A$14))); RIF.RIGA(A1));RIF.COLONNA($A$1:$A$14);4))


    ed ha funzionato con altrettanto successo.

    Volevo che qualcuno paziente mi spiegasse le formule, in quanto non riesco proprio a capire come fanno a funzionare: ad esempio, ho provato a scomporre la prima formula nei vari 'pezzettini' che la compongono, ed il risultato finale è stato un #VALUE# oppure un #NUM#. Vorrei capire come mai risulta importante usare una formula 'matrice' e che effetto ha per una formula matrice il 'blocco' (tramite $) delle formule all'interno. Ed anche l'importanza della funzione SMALL, cioè in questo esempio, cosa si ritrova dentro la funzione SMALL? Come fa a funzionare?
    Insomma, ringrazio chiunque del supporto.

    N
    Ultima modifica di niccoflo; 15-11-2013 17:52  Motivo: Ho mutuato le formule in italiano per una maggiore comprensione

  2. #2
    ricky53 non è in linea Scribacchino
    Post
    1,023
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao,
    parti subito alla grande ...
    Non sempre si può spezzare una formula .. però qualcosa si può ottenere.
    Io non ho la versione in inglese quindi posso aiutarti poco.

    Hai letto la guida delle varie funzioni?

    Inizia da "SMALL" e fai anche delle prove di utilizzo
    poi vai avanti con "INDIRECT" e fai la stessa cosa ... poi "INDEX" ecc.

    Prendendo dimestichezza con le funzioni poi arriverai a capire cosa producono.
    ℹ️ Leggi di più su ricky53 ...

  3. #3
    niccoflo non è in linea Novello
    Post
    44
    Like Inviati  
    0
    Like Ricevuti  
    0
    Anche io ho excel in inglese (ho dimestichezza con entrambi, sia italiano che inglese)...comunque si, come ho già scritto ho provato a spezzare tutte le formule, e alla fine (non so come mai) non mi torna il risultato finale...forse perchè sbaglio con le formule 'ROW' che le faccio diventare matrici invece magari al loro interno non lo sono...boh non ho idea, è per questo che avevo bisogno di un po' di supporto informatico..vorrei capirci qualcosa di più

  4. #4
    niccoflo non è in linea Novello
    Post
    44
    Like Inviati  
    0
    Like Ricevuti  
    0
    Scusami, ho mal interpretato una cosa che mi hai scritto, le formule originali in italiano sono:

    =INDICE($A$1:$A$20;PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20)-MIN(RIF.RIGA($A$1:$A$20))+1);RIF.RIGA(A1)))

    e

    =INDIRETTO(INDIRIZZO(PICCOLO((SE($A$1:$A$14<>"";RI F.RIGA($A$1:$A$14);RIF.RIGA()+RIGHE($A$1:$A$14))); RIF.RIGA(A1));RIF.COLONNA($A$1:$A$14);4))

  5. #5
    Canapone non è in linea Scolaretto
    Post
    127
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao,

    hai capito perchè devono essere confermate - una volta copiate- con il control+maiusc+invio?

  6. #6
    niccoflo non è in linea Novello
    Post
    44
    Like Inviati  
    0
    Like Ricevuti  
    0
    Si, perchè sono formule 'matrice', però tutte le altre cose che ho scritto sopra non mi sono chiare.
    Ad esempio, quando vado a ricomporre la formula, devo fare altrettante matrici oppure la matrice devo farla solo alla formula finale? Non mi riesce fare la ricomposizione ...e oltretutto, leggendo il mio messaggio sopra, avrei proprio bisogno di un chiarimento nel dettaglio della singola formula!!!

  7. #7
    ninai non è in linea Scolaretto
    Post
    50
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao
    una delle due proposte l'ho fatta io (nell'altro forum) ed ancora si attende riscontro e/o chiarimenti, insieme ad altri utenti.
    Comunque, sono formule un tantino ostiche (almeno per me).
    il "cuore" sta nel PICCOLO(), ambedue cercano il prossimo successivo numero di riga non vuota.

    PICCOLO((SE($A$1:$A$14<>"";RIF.RIGA($A$1:$A$14);RI F.RIGA()+RIGHE($A$1:$A$14)));RIF.RIGA(A1))

    Lo spezzone RIF.RIGA()+RIGHE($A$1:$A$14)
    restituisce un numero di riga che quando il valore è vuoto è fuori range (16,17,18,19, ecc.) , questi valori alti, sostituiscono le righe vuote, pertanto i successivi piccoli (1° 2° 3° ecc. ) saranno le righe con valori non vuoti.
    nell'esempio si creera tipo : =PICCOLO(({1.17.17.4.5.6.17.17.17.10.11.17.13.17}) ;RIF.RIGA(A2)) che restituisce 4. Questo 4 sarà o la quarta riga di indice o la quarta riga di indirizzo (dentro indiretto).
    Comunque è difficile da spiegare (io l'ho appena capita)

    EDIT ho cercato di rendere più chiara l'esposizione (forse)
    Ultima modifica di ninai; 15-11-2013 18:32 
    ℹ️ Leggi di più su ninai ...

  8. #8
    niccoflo non è in linea Novello
    Post
    44
    Like Inviati  
    0
    Like Ricevuti  
    0
    Questa spiegazione è quello che mi ci voleva, dopo me la studio con calma, qualunque cosa che tu vuoi aggiungere, aggiungila, anzi mi fa piacere perchè, nonostante tu pensi di essere stato incomprensibile, già mi hai illuminato ad una prima lettura

  9. #9
    Canapone non è in linea Scolaretto
    Post
    127
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao, questa formula si presta bene

    =INDICE($A$1:$A$20;PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20)-MIN(RIF.RIGA($A$1:$A$20))+1);RIF.RIGA(A1)))

    puoi scriverla anche così

    =INDICE($A$1:$A$20;PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20));RIGHE($A$1:$A1)))

    --------------------------------------
    Due segmenti


    1) dove vado a cercare le celle non vuote INDICE($A$1:$A$20;

    2) quali posizioni di A1:A20 voglio progressivamente estrarre

    PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20)-MIN(RIF.RIGA($A$1:$A$20))+1);RIF.RIGA(A1)))

    oppure

    PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20));RIGHE($A$1:$A1))

    ------------------------------------------------------------------------------------------------------------
    Se scrivessi al posto della seconda parte della formula 1

    =INDICE($A$1:$A$20;1)

    otterresti il contenuto di A1


    =INDICE($A$1:$A$20;13)

    otterresti il contenuto di A13

    20 possibiltà di scelta, da 1 a 20, di queste posizioni ci intessano solo quelle relative alle celle non vuote.

    Le 20 posizioni sono prodotte da RIF.RIGA($A$1:$A$20)

    Solo confermando la formula con il control+maiusc+invio, la formula può fare una scelta fra i numeri da 1 a 20 .

    {1;2;.....20}

    RIF.RIGA(Z$1:Z$20) produce esattamente la stessa serie di numeri da 1 a 20

    RIF.RIGA(A$2:Z$21)-1 produce esattamente la stessa serie

    Il SE fa una selezione fra i venti numeri

    nel tuo esempio rimangono buone la posizione 1,2,4,8 ... le posizioni non vuote

    Entra in gioco PICCOLO che sceglie la più piccola fra queste posizioni; il RIF.RIGA(A1) (oppure RIGHE(A$1:A1)) finale serve a questo.

    E'/sono dei contatori, comodi perche trascinando la formula in basso producono 1-2-3-4...fai una prova.

    Quindi Piccolo sceglie la seconda posizione valida e poi la terza.

    Potresti scrivere la prima formula

    =INDICE($A$1:$A$20;PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20));1)

    la seconda:

    =INDICE($A$1:$A$20;PICCOLO(SE(VAL.VUOTO($A$1:$A$20 );"";RIF.RIGA($A$1:$A$20));2)

    e così via...

    E' abbastanza chiaro sin qua?

    Saluto NINAI che vedo collegato: sono lentissimo a scrivere
    Ultima modifica di Canapone; 15-11-2013 18:59 

  10. #10
    ninai non è in linea Scolaretto
    Post
    50
    Like Inviati  
    0
    Like Ricevuti  
    0
    La formula (semplificata) e la spiegazione di Canapone (ciao) mi piacciono decisamente di più delle mie
    ℹ️ Leggi di più su ninai ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Spiegazione su query sql
    Da freddy60 nel forum Visual Basic .Net
    Risposte: 30
    Ultimo Post: 05-12-2020, 22:52
  2. Spiegazione query
    Da federico p nel forum Microsoft Word
    Risposte: 16
    Ultimo Post: 15-02-2010, 16:47
  3. Risposte: 4
    Ultimo Post: 17-11-2006, 12:21
  4. Spiegazione enabled
    Da lorepc88 nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 27-04-2006, 16:32
  5. spiegazione sui Cicli for
    Da Smith nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 26-12-2005, 10:24