formula di exceò



  • formula di exceò
    di luca (utente non iscritto) data: 14/12/2015 16:51:12

    si hai ragione funzione... mi ero perso un paio di punteggiature

    comunque la mia esigenza è quella di mettere assieme tutto quello che segue:
    =
    SE(E(F12=0,8;F14=1,5;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C8*F10*F16/1000;
    SE(E(F12=0,8;F14=2,5;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C9*F10*F16/1000;
    SE(E(F12=0,8;F14=4;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C10*F10*F16/1000;
    SE(E(F12=0,8;F14=6;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C11*F10*F16/1000;
    SE(E(F12=0,8;F14=10;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C12*F10*F16/1000;
    SE(E(F12=0,8;F14=16;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C13*F10*F16/1000;
    SE(E(F12=0,8;F14=25;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C14*F10*F16/1000;
    SE(E(F12=0,8;F14=35;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C15*F10*F16/1000;
    SE(E(F12=0,8;F14=50;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C16*F10*F16/1000;
    SE(E(F12=0,8;F14=70;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C17*F10*F16/1000;
    SE(E(F12=0,8;F14=95;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C18*F10*F16/1000;
    SE(E(F12=0,8;F14=120;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C19*F10*F16/1000;
    SE(E(F12=0,8;F14=150;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C20*F10*F16/1000;
    SE(E(F12=0,8;F14=185;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C21*F10*F16/1000;
    SE(E(F12=0,8;F14=240;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!C22*F10*F16/1000;
    SE(E(F12=0,9;F14=1,5;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D8*F10*F16/1000;
    SE(E(F12=0,9;F14=2,5;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D9*F10*F16/1000;
    SE(E(F12=0,9;F14=4;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D10*F10*F16/1000;
    SE(E(F12=0,9;F14=6;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D11*F10*F16/1000;
    SE(E(F12=0,9;F14=10;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D12*F10*F16/1000;
    SE(E(F12=0,9;F14=16;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D13*F10*F16/1000;
    SE(E(F12=0,9;F14=25;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D14*F10*F16/1000;
    SE(E(F12=0,9;F14=35;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D15*F10*F16/1000;
    SE(E(F12=0,9;F14=50;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D16*F10*F16/1000;
    SE(E(F12=0,9;F14=70;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D17*F10*F16/1000;
    SE(E(F12=0,9;F14=95;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D18*F10*F16/1000;
    SE(E(F12=0,9;F14=120;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D19*F10*F16/1000;
    SE(E(F12=0,9;F14=150;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D20*F10*F16/1000;
    SE(E(F12=0,9F14=185;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D21*F10*F16/1000;
    SE(E(F12=0,8;F14=240;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!D22*F10*F16/1000;
    SE(E(F12=1;F14=1,5;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E8*F10*F16/1000;
    SE(E(F12=1;F14=2,5;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E9*F10*F16/1000;
    SE(E(F12=1;F14=4;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E10*F10*F16/1000;
    SE(E(F12=1;F14=6;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E11*F10*F16/1000;
    SE(E(F12=1;F14=10;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E12*F10*F16/1000;
    SE(E(F12=1;F14=16;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E13*F10*F16/1000;
    SE(E(F12=1;F14=25;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E14*F10*F16/1000;
    SE(E(F12=1;F14=35;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E15*F10*F16/1000;
    SE(E(F12=1;F14=50;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E16*F10*F16/1000;
    SE(E(F12=1;F14=70;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E17*F10*F16/1000;
    SE(E(F12=1;F14=95;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E18*F10*F16/1000;
    SE(E(F12=1;F14=120;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E19*F10*F16/1000;
    SE(E(F12=1;F14=150;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E20*F10*F16/1000;
    SE(E(F12=1;F14=185;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E21*F10*F16/1000;
    SE(E(F12=1;F14=240;F18="PVC";F20="UNIPOLARE MONOFASE");PVC!E22*F10*F16/1000;

    "attenzione"))))))))))))))))))))))))))))))))))))))))))))))))))))) le parentesi le conto alla fine


    questo è 1/8 di quello che mi serve, nel senso che è una formula parziale alla quale ne devo aggiungere altre 7 (totale 8) cambiando i ovviamente riferimenti delle celle

    spero di essere stato chiaro....hai una idea migliore o più pratica ??
    grazie




  • di ninai data: 14/12/2015 17:06:38

    ciao
    è proprio l'approccio che è errato. devi usare delle funzioni di ricerca al posto dei SE(), che ti estrapolano i dati dalla tabella, che presumo hai o dovresti predisporre.
    Se alleghi un file di esempio con quello che vorresti ottenere, credo che con poche righe di istruzioni ce la faremo.



  • luca
    di luca (utente non iscritto) data: 15/12/2015 10:41:17

    ti ho allegato il file che sto lavorando

    la funzionalità che ricerco, immagino, tu l'abbia capita
    eventualmente mi serve l'inizio poi vedo di completarla da me

    grazie



  • di Luca73 data: 15/12/2015 10:41:37

    Ciao Luca
    Come vedi anche Ninai (che saluto) ti ha risposto come ti avevo risposto io nella precedente discussione.
    Se mandi un file rendi la vita più semplice a chi ti cerca di aiutare.
    Concordo con Ninai che con così tante condizioni l'approccio dei se è sbagliato te la caveresti molto più facilmente con una tabellina dei coefficienti moltiplicativi e l'uso di funzioni di ricerca.

    Ciao
    Luca





  • di Luca73 data: 15/12/2015 14:15:37

    Ciao
    Con il file ho provato a buttare giù una formuletta
    io avrei pensato a: =SE.ERRORE(((SE(F18="PVC";INDICE(PVC!C8:N22;CONFRONTA(calcolo!F14;PVC!$B$8:$B$22;0);CONFRONTA(F20;PVC!C5:N5;0)+CONFRONTA(F12;PVC!C6:E6;0)-1);INDICE(gomma_HEPR!C8:N22;CONFRONTA(calcolo!F14;gomma_HEPR!$B$8:$B$22;0);CONFRONTA(F20;gomma_HEPR!C5:N5;0)+CONFRONTA(F12;gomma_HEPR!C6:E6;0)-1)))^(-1))^(-1)*F10*F16/1000;"ATTENZIONE")

    La formula si basa su un SE che scegli su quale foglio lavorare.
    Selezionato il foglio la formula tramite INDICE seleziona quale valore considerare. La riga viene selezinata con un CONFRONTA tra la prima colonna e la cella F14 mentre la colonna viene selezionata con la somma del CONFRONTA tra la prima riga e la cella F20 (tipo di cavo) sommato a CONFRONTA tra seconda riga e F12 (Fattore di potenza).

    Tale formula funziona se viene mantenuta la struttura attuale

    Attenzione ai nomi dei cavi che DEVONO essere uguali tra l'elenco di base della convalida dati (I23-I26) e le definizioni nella prima riga delle tabelle (io coniglio una formula e così ho modificato il fle)

    Per far Comparire la parola attenzione ho usato un SE.ERRORE. Per Far tornare un errore quando il valore non esiste in tabella (e la formula invece mi restituisce 0) ho invertito il numero (ovvero 1/numero) due volte in modo che se il numero vale 0 allora mi dà errore altrimenti mi dà il numero stesso. L'inversione l'ho fatta elevando a -1

    Spero sia tutto corretto e la spiegazione esauriente.

    In allegato il file con la mia proposta in F29

    Ciao
    Luca







  • di ninai data: 15/12/2015 15:03:10

    Luca
    complimenti per la capacità ( e la pazienza) nell'interpretazione della formula con i se().



    Per quanto riguarda l'abbinamento INDICE(confronta(.....)), credo che sia il più idoneo



  • di Luca73 data: 15/12/2015 15:20:21

    Ciao Ninai
    non ho interpretato tutti e SE ma sono andato parzialmente ad intuito guardando alcuni casi e le strutture di formule e tabelle.
    Ciao
    Luca




  • luca
    di luca (utente non iscritto) data: 15/12/2015 15:57:27

    me-ra-vi-glia..... funziona alla grande (almeno dai primi controlli a campione fatti)
    non ci sarei mai arrivato nemmeno tra mille anni

    grazieeee

    posso approffittare e chiedere una informazione legata ad Excel (o forse no, non lo so)??

    io ho vari costruttori che mi propongono materiali tra loro similari
    (ad esempio tubazioni, che sostanzialmente sono identici tranne che per articolo e fornitore ovviamente)
    vorrei poter creare un cross reference tra prodotti

    cioè l'articolo A del produttore 1 lo ritengo equivalente all'artricolo B del costruttore 2 e via di questo passo.

    una volta creata questa base, vorrei trovare, digitando in una cella una opportuna chiave di ricerca , tutti gli articoli dei vari produttori che corrispondono ad una condizione ricerca

    ad esempio cerco una tubazione del diametro di 20mm e mi trovo tutti gli articoli dei costruttori che hanno la tubazione da 20mm inserita nel data base

    non so se sono stato chiaro.

    si riesce a fare una cosa di questo genere con Excel oppure mi devo arrampicare su access o altra cosa ??


    grazie ancora









  • di ninai data: 15/12/2015 16:12:53

    ciao
    approfittando del lavoro di luca, propongo un'altra alternativa:
    =SE.ERRORE(INDIRETTO(INDIRIZZO(CONFRONTA(F14;PVC!B8:B22;0)+7;CONFRONTA(F20;PVC!C5:N5;0)+CONFRONTA(F12;PVC!C6:E6;0)+1;4;1;F18))^(-1)^(-1)*F10*F16/1000;"attenzione")

    per semplificare le cose i fogli li ho denominati PVC e GOMMA, ovviamente in F18 , si sceglie tra i due nomi



  • di Luca73 data: 16/12/2015 08:58:26

    Ciao luca riguardo alla seconda tua richiesta dipende come vuoi cercare i dati
    Se per esempio volessi cercare solo per una descrizione comune (e non per codifica fornitore allora sarebbe piuttosto semplice altrimenti potrebbe complicarsi.

    Se vuoi cercare solo per la codifica comune allora potresti crearti una tabella in cui in prima colonna metti la descrizione e nelle colonne successive i codici specifici dei vari fornitori e poi cercihi in prima colonna e con un CERCA.VERT ti fai dare le varie codifiche....

    Se mandi un esempio riusciamo ad aiutarti meglio.
    Ciao
    Luca