Condividi:        

[Excel] consiglio migliore soluzione x confronto dati

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] consiglio migliore soluzione x confronto dati

Postdi MIRKOLEONE » 15/03/09 16:01

Salve a tutti, sto imparando un po' alla volta ad usare le formule di excel, soprattutto dalla guida e leggendo qua e là le
soluzioni riportate da altri.

Ho cercato la risposta alla mia domanda in questo forum, ma non l'ho trovata, o più probabilmente, se presente, non l'ho compresa.

Certamente la risposta è per voi banale, comunque il mio quesito è il seguente:

PROBLEMA:

1-ho una riga in una tabella di excell di 6 caselle che possono avere come risultato al loro interno "1" oppure "0";

2-ho una riga in un'altra tabella che possono avere anche queste come risultato 1 o 0;

3-devo confrontare le 6 casella della prima tabella con le 6 della 2^ tabella, in modo che se corrispondano mi diano come risultato il valore 1 oppure 0 se non corrispondono.


io ho trovato prima questa soluzione:


SOLUZIONE "A"

=SE(U2<>PUNT.ORIZ.!$B$66;"0";SE(V2<>PUNT.ORIZ.!$C$66;"0";SE(W2<>PUNT.ORIZ.!$D$66;"0";SE(X2<>PUNT.ORIZ.!$E$66;"0";SE(Y2<>PUNT.ORIZ.!$F$66;"0";SE(Z2<>PUNT.ORIZ.!$G$66;"0";"1"))))))


poi ho visto che potevo ottenere lo stesso risultato con questa soluzione che mi sembra più semplice:


SOLUZIONE "B":

=SE(E(U2=PUNT.ORIZ.!$B$66;V2=PUNT.ORIZ.!$C$66;W2=PUNT.ORIZ.!$D$66;X2=PUNT.ORIZ.!$E$66;Y2=PUNT.ORIZ.!$F$66;Z2=PUNT.ORIZ.!$G$66);"1";"0")


Quello che desidererei fare, sarebbe la possibilità di eseguire un confronto immettendo un intervallo di celle anzichè una cella per volta, tipo così:


=SE(U2:Z2=PUNT.ORIZ.!$B$66:$G$66;"1";"0")


ho provato ad immettere questa formula, premendo INVIO, o CTRL+MAIUSC+INVIO per farlo in forma di matrice

{=SE(U2:Z2=PUNT.ORIZ.!$B$66:$G$66;"1";"0")}


Di primo acchito sembrerebbe funzionare, perché restituisce 1 o 0, ma di fatto mi sembra che il confronto non lo esegua su tutta la

sequenza di numeri, ma solo tra le prime due caselle della sequenza, quindi se abbiamo


caselle da U2 a Z2 111000 caselle da B66 a G66 111000 risultato 1 (corretto)

caselle da U2 a Z2 011000 caselle da B66 a G66 111000 risultato 0 (corretto)

caselle da U2 a Z2 101000 caselle da B66 a G66 111000 risultato 1 (NON corretto)


DOMANDE:

Dov'è che sbaglio?

Qual'è dunque la corretta formulazione per il confronto di intervallo di celle?

Esiste una soluzione più seplice di quelle da me trovare?



Vi ringrazio anticipatamente per le risposte, che vi chiedo essere di semplice comprensione, non essendo io un esperto, e di non utilizzare la MACRO che non so usare. Grazie Mirko.
MIRKOLEONE
Newbie
 
Post: 3
Iscritto il: 15/03/09 15:40

Sponsor
 

Re: [Excel] consiglio migliore soluzione x confronto dati

Postdi pietrol » 15/03/09 19:04

Ciao MIRKOLEONE
ti consiglio di utilizzare la seguente formula:
=SE(MATR.SOMMA.PRODOTTO(--($U$8:$Z$8=PUNT.ORIZ.!$B$66:$G$66))=6;1;0)

ciao
pietrol
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34

Re: [Excel] consiglio migliore soluzione x confronto dati

Postdi MIRKOLEONE » 16/03/09 12:49

Ciao Pietrol, e grazie per la cortese risposta,

in effetti, non so esattamente come, ma la cosa sembra funzionare :)

...o meglio:

ho provato in un foglio nuovo di excel a mettere in sei caselle di una riga 111000 e altrettanto in altre sei caselle, e la formula che mi hai postato funziona... tuttavia quando ho provato ad applicarla sul foglio di excel che sto elaborando, le conse non funzionavano più... :eeh:

...ho quindi provato a sperimentare per capire il perchè... :?:

...nel foglio che ho approntato solo per provare la tua formula, ho provato a dare il comando CASUALE.TRA(0;1), nella prima serie di caselle, ed ho notato che in questo caso, anche se le due serie andavano a coincidere, il risultato della formula non era 1, bensì rimaneva 0. (???) :?:

...dunque a questo punto è probabile che io non capisca il perché, in quanto non conosco bene le funzionalità di questa formula. :(


Ti chiedo quindi gentilmente di darmi alcune delucidazioni in merito, così ne capirò qualcosa in più e magari troverò la soluzione al problema.


:?: PER QUANTO RIGUARDA LA FORMULA IN GENERALE.
Ho guardato nella guida di excel e la formula
MATR.SOMMA.PRODOTTO sembrerebbe fatta solo per moltiplicare e poi sommare tra loro una serie di dati, quindi nulla a che vedere con un confronto di dati.... tuttavia, andando a cercare in rete, ho trovato una spiegazione e mi sembra di capire, che, nel momento in cui moltiplica tra loro i dati, fa un confronto con una risultanza VERO/FALSO.

:?: PER QUANTO RIGUARDA LA FORMULA DA TE POSTATA
In particolare, guaRdando la formula da te postata,non comprendo il significato dei due segni meno tre le due parentesi (--( quale funzione hanno?


:?: Per quanto riguarda il numero sei =6, immagino si riferisca al numero di elementi che compongono le due serie da confrontare, quindi se le serie fossero state di quattro caselle il numero sarebbe stato 4...?


:!: PS=nel mio foglio di excel in cerità i valori delle caselle non sono 1 o 0, bensì 1 o "casella vuota, ma questo non va ad inficiare la funzionalità della formula da te postata: nel foglio ad hoc costruito per provarla, funzionava benissimo sia con serie tipo 101001 che sostituendo lo zero con la casella vuota.


Chiedo scusa se la mia domanda è così particolareggiata, tuttavia il mio interesse non è solo quello di avere una formula che mi risolva un problema, ma anche, se possibile, capire come funziona, così da imparare qualcosa in più... ;)



Grazie per l'attenzione Mirko.
MIRKOLEONE
Newbie
 
Post: 3
Iscritto il: 15/03/09 15:40

Re: [Excel] consiglio migliore soluzione x confronto dati

Postdi MIRKOLEONE » 16/03/09 15:46

:idea: ...ho trovato una ulteriore soluzione che, rispetto alla mia prima iniziale, risulta molto più semplice:



=SE((U2=$B$65)*(V2=PUNT.ORIZ.!$C$65)*(W2=PUNT.ORIZ.!$D$65)*(X2=PUNT.ORIZ.!$E$65)*(Y2=PUNT.ORIZ.!$F$65)*(Z2=PUNT.ORIZ.!$G$65);"1";"0")


in questa formula per eseguire il confronto di cella con cella delle due serie di sei, ho utilizzato il comando AND, che mi ha permesso di non dover ripetere il SE ogni volta :) (il comando AND è rappresentato dall'asterisco)

:!: Perché la formula funzioni però, bisogna inserirla come "matriciale" perciò una volta scritta occorre editare nuovamente (è sufficiente portare il cursore nella barra delle formule) e premere la combinazione di tasti CTRL + SHIFT + INVIO.


...capisco che per molti di voi questa sia una considerazione banale, però per i principianti come me risulta importante precisare queste cose.

risulta evidente che in questo modo la formula è semplificata di molto rispetto alla iniziale: :D

=SE(U2<>PUNT.ORIZ.!$B$66;"0";SE('3 cons oriz e vert'!V2<>PUNT.ORIZ.!$C$66;"0";SE('3 cons oriz e vert'!W2<>PUNT.ORIZ.!$D$66;"0";SE('3 cons oriz e vert'!X2<>PUNT.ORIZ.!$E$66;"0";SE('3 cons oriz e vert'!Y2<>PUNT.ORIZ.!$F$66;"0";SE('3 cons oriz e vert'!Z2<>PUNT.ORIZ.!$G$66;"0";"1"))))))


Comunque, ancora non sono giunto ad utilizzare la formulazione più semplice di tutte, che sembrerebbe essere la:

=SE(MATR.SOMMA.PRODOTTO(--($U$8:$Z$8=PUNT.ORIZ.!$B$66:$G$66))=6;1;0)

proposta da Pietrol, la quale eseguirebbe il confronto di tutta la serie in un sol colpo, anziché cella per cella.... :o


....rimango quindi in attesa delle risposte di qualche gentile esperto :roll:
MIRKOLEONE
Newbie
 
Post: 3
Iscritto il: 15/03/09 15:40

Re: [Excel] consiglio migliore soluzione x confronto dati

Postdi Tribuno » 16/03/09 16:08

Ciao,

la formula di pietrol è sostanzialmente giusta, forse sono da modificare gli intervalli

pietrol
=SE(MATR.SOMMA.PRODOTTO(--($U$8:$Z$8=PUNT.ORIZ.!$B$66:$G$66))=6;1;0)

corretta
=SE(MATR.SOMMA.PRODOTTO(--($U$2:$Z$2=PUNT.ORIZ.!$B$66:$G$66))=6;1;0)

visto un esempio di un tuo precedente post.

I due segni meno -- trasformano i valori booleani VERO e FALSO rispettivamente in 1 e 0, permettendo poi di fare la somma numerica. Infatti se tutte le corrispondenze son =VERO, in pratica abbiamo sei VERO, quindi sei valori 1 che sommati danno 6; se la somma =6 allora la sequenza corrisponde, se è diversa da 6 allora la sequenza è diversa.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: [Excel] consiglio migliore soluzione x confronto dati

Postdi Anthony47 » 16/03/09 16:08

La tua nuova formula corrisponde alla Soluzione B del primo post.

Quale e' la difficolta' a implementare la formula di pietrol?

Volendo potresti semplificare anche in
Codice: Seleziona tutto
=se(SOMMA(--(U2:Z2=PUNT.ORIZ.!$B$65:PUNT.ORIZ.!$G$65))=6;1;0)

da confermare con Contr-Maiusc-Enter.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] consiglio migliore soluzione x confronto dati

Postdi pietrol » 16/03/09 17:40

Ciao a MIRKOLEONE e a tutti gli altri
rispondo all'unica domanda che ancora è rimasta inevasa:
...nel foglio che ho approntato solo per provare la tua formula, ho provato a dare il comando CASUALE.TRA(0;1), nella prima serie di caselle, ed ho notato che in questo caso, anche se le due serie andavano a coincidere, il risultato della formula non era 1, bensì rimaneva 0. (???)

ho Excel2000 che non prevede ancora la funzione CAUSALE.TRA(X;Y) ma se questa funziona come CAUSALE() restituisce numeri NON interi, cosa che puoi verificare aumentando i decimali nelle celle. Da qui forse il risultato inaspettato della formula.
Per rimediare potresti usare per esempio =ARROTONDA(CAUSALE.TRA(X;Y);0)

ciao
pietrol
P.S. Grazie a Tribuno per la correzione: ho usato un range sbagliato per scrivere la formula rispetto alle tue indicazioni.
il lupo ululà, il castello ululì
pietrol
Utente Senior
 
Post: 270
Iscritto il: 07/01/09 14:34


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] consiglio migliore soluzione x confronto dati":


Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti