formula di exceò
Hai un problema con Excel? 
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
Vuoi Approfondire?