› Excel e gli applicativi Microsoft Office › come confrontare 6 campi e restituire un valore o una stringa
-
AutoreArticoli
-
Buonasera a tutti,
vorrei che qualcuno mi desse una mano per un controllo sul carburante, seguendo queste semplice logica:
- caso 1° solo rifornimento di gasolio = ok;
- caso 2° solo rifornimento di gasolio self = ok;
- caso 3° rifornimento di gasolio e benzina = ko
- caso 4° rifornimento di Gpl e Metano = ko.
Ovviamente ci sono tutte le possibili combinazioni, ho provato con =se(E( ma non ci sono riuscito e nemmeno con una formattazione condizionale con colori diversi (vedi file di esempio).
Allegati:
You must be logged in to view attached files.ciao
ti riallego il tuo file con le varie formule inserite in Controllo
ciao
Allegati:
You must be logged in to view attached files.Ti ringrazio,
ma non è proprio corretta la soluzione; perché valori superiori ad 1 danno KO, ma nel caso che avesse fatto gasolio servito e gasolio self sarebbe corretto e non KO! un altro esempio se fa solo benzina ok, ma se si tratta di una benzina bi-fuel può fare benzina e gasolio/Metano e darebbe comunque un falso negativo.
Probabilmente sono da rivedere le condizioni iniziali che hai imposto.
Forse è da chiarire la tua osservazione "Ovviamente ci sono tutte le possibili combinazioni".
Si potrebbe precompilare una tavola separata con tutte le possibili combinazioni e prememorizzare il risultato desiderato.Inoltre, oltre a quello che ha detto Francesco, secondo me bisognerebbe sapere anche quel dato mezzo che tipo di alimentazione ha.
Si è giusta la Vs. osservazione, ma per motivi di privacy non posso rendere pubbliche le targhe anche perché sono 300 mezzi, io ho già una tabella con targa è alimentazione; ma con un cerca verticale non mi funziona.
Buonasera vecchio frac,
la soluzione della matrice mi sarebbe comoda; tieni presente che in un mese arrivo pure a 3000 transazioni!
per motivi di privacy non posso rendere pubbliche le targhe
Chiaro! Aldo giustamente suggerisce di conoscere il tipo di alimentazione per verificare l'eventuale scelta non corretta durante l'immissione. Ci informi che l'hai già ma che la formula non funziona; direi che è strano (hai provato la combinazione INDICE e CONFRONTA? secondo me è molto meglio di qualunque CERCA.VERT).
la soluzione della matrice mi sarebbe comoda
Magari è una soluzione ridondante e con qualche formula ben piazzata si risolve... era la prima cosa che mi è venuta in mente 🙂
Ho tolto il "Risolto" alla discussione 🙂
Nel tuo file, il codice colore è significativo? Cioè, "gasolio servito e/o gasolio self" è ok, "SsPb servito e/o SsPb self" è ok, "GPL" è ok, ma "gasolio e/o GPL" è ko?
edit perchè guardando il file ti chiedo: a riga 6 e riga 9 ci sono due vetture (EE e HH) con la stessa scelta (gasolio Self e GPL) ma in una il controllo è ok, nell'altra il controllo è ko. Si tratta di un errore? Se non è un errore, in base a cosa il risultato sarebbe corretto?
Probabilmente ogni veicolo ha una caratteristica diversa per cui può supportare alimentazioni diverse. Quindi è in base al veicolo che va fatto il ragionamento, e non se un tipo di alimentazione è compatibile con un'altra. Questo ragionamento mi porta a suggerire che è nella tavola di definizione dei veicoli che devi prevedere quali sono le alimentazioni consentite (veicolo per veicolo). Si può raggiungere un risultato soddisfacente attribuendo un numero che sia potenza di due ad ogni alimentazione (gasolio = 2^0 = 1, gasolio self = 2^1 = 2, GPL = 2^2 = 4, eccetera).
Nella tavola dei veicoli quindi imposti una colonna "alimentazioni consentite" che per ogni veicolo attribuisca un numero corrispondente alle scelte possibile (solo gasolio = 1, gasolio + gasolio self = 3, gasolio + GPL = 5, eccetera). In questo modo nella tabella di controllo puoi marcare con 1 la cella corrispondente e verrà calcolata la semplice somma finale delle varie scelte (devono corrispondere le colonne dell'alimentazione con le relative colonne assegnate alle potenze del due).
Se la somma coincide con quella ammessa per il veicolo, l'esito del controllo è ok, altrimenti è ko.
Buonasera Vecchio frac ti allego una matrice che ho costruito per facilitare il ragionamento logico-deduttivo.
Allegati:
You must be logged in to view attached files.Allora lasciando perdere il mio ragionamento di poco fa, in base al file della matrice, la tabella di riferimento potrebbe essere questa:

(Se non ho sbagliato a piazzare uni e zeri 🙂 )
Vecchio Frac,
ma quale formula di comparazione o controllo devo utilizzare; tieni presente che in un giorno potrebbe fare due rifornimenti,
in allegato un file di esempio.
Allegati:
You must be logged in to view attached files.ciao mflauto
che versione hai di excel
Ah ok... allora torna in auge la mia proposta di assegnare un valore potenza di due alle diverse alimentazioni e controllare con una semplice somma le alimentazioni compatibili.
Ho anche già realizzato il file di esempio ma mi sono inceppato perchè non trovo il modo di avere un Or fra due valori... come diavolo si traduce in formula il banale OR booleano?
if (a OR b) = b then ...Se risolvo questo, grazie a qualche Mago formulaio, poi allego il file di esempio (certo potrei costruire una function volatile ma dovresti attivare le macro... e allora farei tutto in VBA senza utilizzare le formule) 🙂
Visto che devo chiudere allego il mio file anche se è monco... manca solo quest'ultima parte e forse Gianfranco ci può aiutare 🙂
Allegati:
You must be logged in to view attached files.ciao
gasolio +gps o metano .................mai visto perciò KO
benzina + gps o metano ...............ho dei dubbi sul metano ma direi OK
formula basica
=SE(CONTA.SE($C3:$H3;">"&0);SE(O(E(SOMMA($C3;$D3;$G3;$H3)>0;SOMMA($E3:$F3)=0);E(SOMMA($F4:$G4>0;SOMMA($C3;$D3;$G3;$H3)=0)));"OK";"KO");"")
NB
il conta.se() serve a non fare il calcolo se non ci sono rifornimenti

Ok, vada per la macro, la inserisco nel mio file di controllo carte carburanti 🙂 così non perdi tempo però dovrei darti il template, aspetta che l'allego e grazie.
Allegati:
You must be logged in to view attached files.controlla la mia formula
Ti allego la mia soluzione.
Per provare ho aggiunto un foglio dove ho dato per convenzione delle sigle ad ogni targa per identificare il tipo di alimentazione, eventualmente nella stesura finale dobbiamo andare a leggere nel tuo file dove hai le caratteristiche di ogni mezzo e le sigle associate.
Ad ogni inserimento di rifornimento il programma controlla in base alla targa se il carburante e' o meno compatibile con il mezzo e scrve OK con fondo verde o KO con sfondo rosso.
Allegati:
You must be logged in to view attached files.Buongiorno Aldo,
hai usato una macro di VBA e ti sono grato, nel foglio n. 2 non capisco le lettere utilizzate per classificare l'alimentazione nè tantomeno la logica, B suppongo per Benzina, D per Diesel M per Metano e il GPL non è presente? Infatti se seleziono GPL e Benzina o Metano e benzina ricevo il "KO", mentre dovrebbe essere "OK" alimentazione bi-fuel!
Buongiorno a te,
scusa non ho messao la legenda:
D = Gasolio
B = Benzina
D+G = Bifuel Gasolio + GPL
D+M = Bifuel Gasolio + Metano
D+B = Bifuel Gasolio + Benzina (L'ho previsto ma non mi sembra che esista)
B+G = Bifuel Benzina + GPL
B+M = Bifuel Benzina + Metano
B+D = Bifuel Benzina + Gasolio (Stesso di D+B l'ho previsto solo per mettere tutti i casi)
Ma come ho detto sono sigle che ho messo io per fare le prove, se la soluzione ti puo' andar bene si sostituiscono con quelle che hai nel tuo file degli automezzi.
Per quanto riguarda i due casi che non funzionavano mi era riamsto un copia/incolla da correggere, sistemato, adesso mi sembra funzioni tutto.
La logica e' che in base all'alimentazione gli faccio controllare che venga inserito il rifornimento solo nella cella relativa al/ai carburante/i appropriato/i.
Allegato il file corretto.
Allegati:
You must be logged in to view attached files. -
AutoreArticoli
