|
Login
Ricercare dati in condizioni non ottimali
(8 VOTITALY_VOTES, VOTITALY_AVERAGE: 4.63 VOTITALY_OUTOF)
Tips and Tricks - Formule

Alcuni programmi permettono di estrarre i dati in modo molto poco friendly.

 

Chi lavora nel farmaceutico, per esempio, conosce bene la struttura del programma Dataview dove anziché avere, per esempio, le colonne Nome Prodotto e Regione abbiamo un'unica colonna con una struttura simile alla segente:

Prodotto 1

  Regione 1

  Regione 2

  Regione 3

Prodotto 2

  Regione 1

  Regione 2

  Regione x

 

tip151In questa situazione, cercare la performance del prodotto 3 nella regione 4 diventa molto arduo. Il consiglio è agire sulla struttura del database, ma vediamo come usare le formule di Excel per risolvere questo problema.

 

La funzioni SCARTO e CONFRONTA sono fondamentali per questo scopo (per maggiori informazioni si veda qui e qui). La strategia da usare in questo caso è individuare il range che si trova tra Prodotto 3 e Prodotto 4 e, all'interno di questo range, cercare dove si trova Regione 4. Naturalmente diamo per scontato che i dati siano ordinati in senso crescente: diversamente la formula non funzionerebbe.

 

Per esempio CONFRONTA("Prodotto 3"; A:A; 0) ci restituisce un numero che rappresenta la riga in cui si trova Prodotto 3 nella colonna A.

 

Per individuare il range che si trova tra Prodotto 3 e Prodotto 4, ipotizzando che la colonna sia la A, useremo questa formula:

=SCARTO(A1; CONFRONTA("Prodotto 3"; A:A; 0) - 1; 0; CONFRONTA("Prodotto 4"; A:A; 0) - CONFRONTA("Prodotto 3"; A:A; 0); 1)

 

A questo punto potremo usare questo range all'interno di una funzione CERCA.VERT o SOMMA.SE. Nel caso di CERCA.VERT l'ultimo argomento di SCARTO (larghezza) va modificato in modo da includere tutte le colonne.

 

Per esempio, se la colonna dove si trova il dato è la B con CERCA.VERT avremo:

=CERCA.VERT("*Regione 4"; SCARTO(A1; CONFRONTA("Prodotto 3"; A:A; 0) - 1; 0; CONFRONTA("Prodotto 4"; A:A; 0) - CONFRONTA("Prodotto 3"; A:A; 0), 2); 2; FALSO)

 

L'asterisco prima di "Regione 4" permette di ignorare gli spazi vuoti prima della parola.

 

Se invece usiamo SOMMA.SE dovremo ricreare il range per il terzo argomento:

=SOMMA.SE(SCARTO(A1; CONFRONTA("Prodotto 3"; A:A; 0) - 1; 0; CONFRONTA("Prodotto 4"; A:A; 0) - CONFRONTA("Prodotto 3"; A:A; 0); 1); "Regione 4"; SCARTO(B1; CONFRONTA("Prodotto 3"; A:A; 0) - 1; 0; CONFRONTA("Prodotto 4"; A:A; 0) - CONFRONTA("Prodotto 3"; A:A; 0); 1))