Excel Forum Per condividere esperienze su Microsoft Excel

aiuto per formula complessa cerca vert con più condizioni

  • Messaggi
  • OFFLINE
    cristianominelli
    Post: 1
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 10:47
    Ciao a tutti,
    è la prima volta che scrivo dopo che ho scoperto questo meraviglioso forum.

    Ho bisogno una mano da esperto perchè mi trovo a dover fare un'operazione molto complicata.
    cerco di spiegarmi:
    lavoro in una società di noleggio di varie attrezzature, ho un file excel per il listino noleggio strutturato su più fogli, a secondo dell'attrezzatura, e su più colonne a seconda della durata del noleggio.
    Da sistema ho fatto un estrazione per numero oggetto (il nostro articolo) che mi evidenzia "la vita" dell'oggetto rapportata al contratto di noleggio.
    io devo calcolare il rendimento della tariffa del contratto a confronto del listino, quindi dovrei andare a dire, in base alla categoria dell'oggetto, quale foglio o riga del listino prendere, e una volta presa la riga corretta, quale colonna di tariffa selezionare in riferimento a quanti giorni è durato il contratto di noleggio.

    spero di essermi più o meno spiegato,
    qualcuno è in grado di darmi una mano??

    grazie infinite
    Cristiano
  • OFFLINE
    federico460
    Post: 2.129
    Registrato il: 10/10/2013
    Città: VICENZA
    Età: 69
    Utente Veteran
    365
    00 10/02/2021 11:11
    ciao
    senza un file esempio
    con la struttura da esaminare
    è difficile risponderti
  • OFFLINE
    cristianominelli
    Post: 1
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 11:19
    Giusto...
    allego un file di esempio

    la colonna A evidenziata in giallo è quella dell'oggetto o articolo che deve essere abbinata al suo listino,
    la colonna K è la durata di riferimento che deve andare a rapportarsi sulle colonne del listino
    nel secondo foglio una pagina di esempio di listino,

    per esempio l'oggetto 0570 della colonna A dovrebbe far riferimento alla riga 4 del listino

    Spero sia un pò più chiaro, chiedo scusa per le imprecisioni

    grazie
  • OFFLINE
    dodo47
    Post: 3.067
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 10/02/2021 12:54
    ciao
    sei poco chiaro

    cosa lega il codice 0570 alla riga 4 del listino?

    Qual è il risultato che vorresti? dove? come ci si arriva?

    saluti




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 2
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 15:06
    provo a spiegare meglio...

    il codice 0570 deve fare riferimento alla riga 4 del listino, al momento non c'è nulla che li lega, si potrebbe inserire un codice nuovo per esempio

    il risultato che vorrei ottenere è che visualizzi in una cella della riga presa dal codice 0570 il valore di listino di riferimento (riga 4 in questo esempio del secondo foglio) in base alla durata in giorni del contratto di noleggio che è preso dalla seconda colonna in giallo.

    con quel dato che mi tira fuori faccio io poi dei report sui contratti

    so che è abbastanza complesso..
    spero meno di prima..

    grazie
  • OFFLINE
    dodo47
    Post: 3.068
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 10/02/2021 16:20
    nel caso delle righe da 50 a 58 vorresti ottenere 112?




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 3
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 16:46
    non 112 ma 120, la riga sotto, però il concetto è esattamente quello!
  • OFFLINE
    dodo47
    Post: 3.069
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 10/02/2021 16:59
    perchè 120 visto che in col K c'è 15 ???




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 4
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 17:08
    perdonami giusto, erano 15 gg non 9...si corretto deve dare 112
  • OFFLINE
    dodo47
    Post: 3.070
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 10/02/2021 17:11
    bene
    a questo punto devi solo dire con quale criterio si sceglie la riga 4 del listino

    Soprattutto mi è sembrato di capire che hai diversi listini quindi ci deve essere qualcosa che lega il codice di colonna A ad un determinato listino e ad una determinata riga

    ma queste cose le devi dire tu


    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 5
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 17:21
    ecco questa è la parte un pò più complessa,
    il listino è strutturato su diversi fogli e con categorie anche differenti tra loro su uno stesso foglio
    la mia idea potrebbe essere di abbinare un codice alfanumerico all'oggetto (il famoso 0570) e riportare il codice sulla riga del listino (la lettera A che vedi nella prima colonna del listino) e poi io potrei riportare il listino in solo testo con i codici che mi servono su un unico foglio per comodità

    non so se è un'idea corretta però...
  • OFFLINE
    dodo47
    Post: 3.071
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 10/02/2021 17:34
    non ti so rispondere così

    prova a fare un esempio con pochi dati e più listini aggiungendo questo codice alfanumerico

    Io ti dico solo che, a parte il foglio dove andare a prendere il dato, ci serve sto benedetto codice univoco

    ti preannuncio inoltre che se poi si deve arrivare a quel famoso 112, oltre quanto detto, nei fogli listini sia la riga dove prendere il valore di GG Nol. Periodo, sia la colonna dove contriollare il codice, devono avere medesima collocazione.

    Per farla breve, per esempio, in col A di tutti i listini deve esserci il cod. univoco e in riga 2 di tutti i listini deve esserci il tuo da...a....(ovviamente non in quella forma, ma di questo ne parleremo).

    saluti

    edit: come stai messo a conoscenza di vba ?? <<<<<<<<




    [Modificato da dodo47 10/02/2021 17:35]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 6
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 10/02/2021 18:12
    Ciao
    provo a riallegare un altro file, ho tirato via alcune righe, aggiunto un paio di fogli di listino, e i famosi codici,

    non guardare abbinamento ad oggetto e categoria perchè l'ho fatto a caso... :)
    così potrebbe andare?

    potrei sempre come dicevo riportare tutto il listino su un unico foglio se fosse necessario

    grazie mille

    con vba a conoscenza non sto messo bene, sono totalmente autodidatta a livello informatico e fino ad oggi facendo cose relativamente smeplici sono sempre riuscito a cavarmela tra pivot, formule e tabelle, in questo caso era veramente troppo dura da solo...
  • OFFLINE
    dodo47
    Post: 3.072
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 10/02/2021 18:25
    In linea di massima si (a parte il codice che non c'è come hai detto)

    comunque "Purtroppo" non puoi fare un unico listino che sarebbe la cosa più semplice e facile, in quanto mi sono accorto che i valori DA....A... non sono tutti gli stessi nei vari listi

    e questo rende più elaborata la cosa perchè dobbiamo individuare oltre il prodotto e il periodo di noleggio, anche il foglio dove cercare e qui c'è appunto il problema: il cod. 05070 cui per esempio ha dato come valore di codice univoco ABCD, in quale listino (foglio) lo vado a pescare?

    Quindi ci vuole un altro legame.

    Ci aggiorniamo a domani

    ciao




    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 7
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 11/02/2021 09:10
    ok...
    ma il codice che to ho inserito io ora (A1,A2,A3 ETC...) non va bene?

    La situazione è sempre più complessa,
    di che altro codice hai bisogno? come faccio a inserirlo?

    ti ringrazio davvero tanto
  • OFFLINE
    dodo47
    Post: 3.074
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 11/02/2021 11:11
    Si, scusa non me ne ero accorto

    Ho normalizzato il tuo documento apportando le seguenti modifiche indispensabili.

    PREMESSA: tutti i fogli listino devono avere, nell'ambito dello ste4sso foglio, gli stessi range di periodo noleggio.

    Tali valori devono essere in riga 1 di tutti i fogli.
    Noterai che detti valori sono riportati nel seguente modo:
    - per tutti i periodi da....a.... ho riportato il valore più basso (es. periodo da 4 a 10 riporto 4 nella stessa colonna di riga 1.
    - per il periodo "oltre" ho riportato il numero immediatamente superiore all'ultimo limite del periodo precedente. Nell'esempio di prima se dopo da 3 a 4 hai "Oltre", nella colonna "Oltre" ho riportato 5. Questo serve per l'utilizzo del confronta nell'utima parte della formuula.

    Come detto la colonna A di ciscun periodo ha il famoso codice univoco.

    Per quanto riguarda il listino (foglio) dal quale attingere i dati, nel foglio principale ho dovuto aggiungere la col. C dove per ogni articolo ho riportato il listino (nome del foglio) da cui prelevare i valori.

    Questo è quanto.

    La formula adottata è la seguente:
    =INDICE(INDIRETTO("'"&C3&"'! $A$3:$H$16");CONFRONTA(B3;INDIRETTO("'"&C3&"'!$A$3:$A$16");0);CONFRONTA(N3;INDIRETTO("'"&C3&"'!$A$1:$H$1";1)))

    inserita nella col. D da trascinare in basso.

    saluti

    NB: tieni presente che la formula è volatile e pertanto viene ricalcolata ad ogni variazione che tu apporti nel documento, anche se tale variazione non interessa i range coinvolti dalla formula.
    Te lo dico perchè se hai migliaia di articoli la cosa si fa pesante.




    [Modificato da dodo47 11/02/2021 11:27]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 8
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 11/02/2021 11:20
    è semplicemente fantastico,
    quindi io posso usare il mio listino senza problemi, basta che oltre al codice univoco aggiungo su ogni oggetto il nome del foglio di riferimento e riporto la formula così come da te indicata...

    giusto?

    è veramente fantastico!!

    non so davvero come ringraziarti,
    e oltre a questo mi hai aperto un mondo nuovo... :)

  • OFFLINE
    dodo47
    Post: 3.075
    Registrato il: 06/04/2013
    Utente Master
    2010
    00 11/02/2021 11:26
    si certo,

    mi sono dimenticato di dirti di "ampliare" il range a3:h16 in quanto non so quanti articoli hai per ciascun listino e di portare il range a1:h1 fino alla colonna massima dove hai i periodi

    Potresti ad esempio fare a3:z1000 e a1:z1 ovviamente rispettando gli indirizzi assoluti ($)...

    Come avrai notato, proprio a causa di questo, nelle righe da 13 a 16 ci sono degli ND# nonostante i codici siano presenti nel relativo listino

    Infatti se modifichi così la formula, i darti te li ritrovi:

    =INDICE(INDIRETTO("'"&C3&"'! $A$3:$z$1000");CONFRONTA(B3;INDIRETTO("'"&C3&"'!$A$3:$A$1000");0);CONFRONTA(N3;INDIRETTO("'"&C3&"'!$A$1:$z$1";1)))


    saluti




    [Modificato da dodo47 11/02/2021 11:34]
    Domenico
    Win 10 - Excel 2016
  • OFFLINE
    cristianominelli
    Post: 9
    Registrato il: 11/07/2020
    Età: 42
    Utente Junior
    microsoft 365 versione 2021
    00 11/02/2021 11:48
    perfetto!
    inserite le modifiche e funziona alla grande!

    grazie ancora davvero!