[Risolto] Matrice indice e confronta

Andrea_92

Nuovo utente
14 Novembre 2017
7
0
0
Italia
2007
Miglior risposte
0
#1
Buongiorno a tutti,
sto studiando le matrici di Excel e vorrei utilizzarle abbinandole alla funzione indice e confronta, mi spiego meglio.
Ho un file (che allego alla presente) dove ho 4 colonne:
Colonna A:Nome
Colonna B: Giorno
Colonna C: Valore
Colonna D: Tipo

Quello che vorrei che facesse la matrice è :
-"leggere" il nome nella cella F2 e trovarlo nella colonna A;
- ripetere la stessa operazione per la colonna G2 trovando la corrispondenza nella cella B;
- trovare la scritta "entrata" (cella F1) nella colonna D.
Una volta trovata la corrispondenza dei 3 valori, la formula mi deve restituire nella cella L3 in corrispettivo valore della cella C.

Quello che non riesco a capire e se posso combinare questi tre valori, in quanto i casi che ho studiato si limitavano ad 2 soli valori.

Vi ringrazio in anticipo
 

Allegati

Ultima modifica da un moderatore:

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
3,881
67
48
Latina
Excel 2010
Miglior risposte
55
#2
Buongiorno Andrea
ma che file hai allegato?

Nel file devi inserire i dati anche a mano
di quello che vorredti ottenere.

-"leggere" il nome nella cella F2 e trovarlo nella colonna A;
In cella F2 ??? vuota
 

Andrea_92

Nuovo utente
14 Novembre 2017
7
0
0
Italia
2007
Miglior risposte
0
#3
Scusami ho sbagliato ad allegare il file, TestateSulMuro allego quello corretto.
Si, la colonna F e la colonna J le compilerò io manualmente con dei nomi, le colonne G e K le compilo con i giorni, il terzo parametro da ricercare invece sarà fisso e sarà la cella F2 per la prima tabella e la J2 per la seconda
 

Allegati

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
2,521
164
63
41
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
Miglior risposte
99
#4
Ciao, in H3 digita e trascina in basso:

=INDICE($A:$D;CONFRONTA(1;(F3=$A:$A)*(G3=$B:$B)*($D2=$F$1);0);3)

formula matrice da confermare con ctrl+maiusc+invio

Ti lascio come esercizio la formula in L3 _43_

(P.S: il valore in colonna G deve diventare '02, l'equivalente della colonna B, altrimenti non funziona ovviamente)
 

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
3,881
67
48
Latina
Excel 2010
Miglior risposte
55
#5
ciao
altra alternativa puoi usare in H3:

=SE.ERRORE(INDICE($C$2:$C$13;CONFRONTA(F3&G3;INDICE($A$2:$A$13&$B$2:$B$13;0);0));"")

fermo restando che come detto da King_43_
la data in G3 formato testo come in colonna B.
Per la colonna L adattala tu.
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
2,521
164
63
41
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
Miglior risposte
99
#7
Ormai uso solo colonne intere ;-) tanto al primo match si ferma... sinceramente non ho mai notato grosse differenze nelle prestazioni, e mi tolgo il pensiero di dover aggiornare la formula ogni volta che aggiungo una riga :;):

EDIT: quello che ho detto vale per le formule non matriciali. Essendo una matriciale, hai ragione tu al 100%
 
Ultima modifica da un moderatore:
30 Maggio 2015
5,286
57
48
50
Milano, Italy
office 365/2016
Miglior risposte
18
#8
Ciao ragazzi
Nello spirito della condivisione, propongo anche la mia alternativa che elimina lo stato matriciale e risolve anche il problema dei numeri formattati a testo
Attenzione però bisogna inserire il terzo criterio che è l'entrata/uscita (vedi in rosso)

=CERCA(2;1/((A2:A13=F3)*(B2:B13=TESTO(G3;"gg"))*
(D2:D13=F1));C2:C13)

Un salutocappello_saluta

17​
 

A

B

C

D

E

F

G

H

[TD="bgcolor: #888888"]

[/TD]
[TD="bgcolor: #002060"]

[/TD]
[TD="bgcolor: #002060"]

[/TD]
[TD="bgcolor: #002060"]

[/TD]
[TD="bgcolor: #002060"]

[/TD]

 

Entrata

  

[TD="bgcolor: #888888"]

[/TD]

Francesco​

01​

15​

entrata​

 

Nome

giorno

Valore

[TD="bgcolor: #888888"]

[/TD]

Marco​

01​

17​

entrata​

 

Marco​

1​

[TD="bgcolor: #FFFF00"]

[/TD]

[TD="bgcolor: #888888"]

[/TD]

francesco​

01​

5​

uscita​

    

[TD="bgcolor: #888888"]

[/TD]

marco​

01​

2​

uscita​

    

[TD="bgcolor: #888888"]

[/TD]

andrea​

01​

6​

entrata​

    

[TD="bgcolor: #888888"]

[/TD]

andrea​

01​

14​

uscita​

    

[TD="bgcolor: #888888"]

[/TD]

Francesco​

02​

32​

entrata​

    

[TD="bgcolor: #888888"]

[/TD]

Marco​

02​

14​

entrata​

    

[TD="bgcolor: #888888"]

[/TD]

francesco0​

02​

18​

uscita​

    

[TD="bgcolor: #888888"]

[/TD]

marco​

02​

96​

uscita​

    

[TD="bgcolor: #888888"]

[/TD]

andrea​

02​

38​

entrata​

    

[TD="bgcolor: #888888"]

[/TD]

andrea​

02​

20​

uscita​

    




 

Andrea_92

Nuovo utente
14 Novembre 2017
7
0
0
Italia
2007
Miglior risposte
0
#9
Grazie a tutti veramente! Finalmente ho capito il funzionamento delle matrici (almeno in questo caso xD) e ho scoperto anche la possibilità di risolvere il problema senza l'utilizzo di quest'ultime!.
Un solo chiarimento: Nell'ultima formula scritta =CERCA(2;1/((A2:A13=F3)*(B2:B13=TESTO(G3;"gg"))*(D2:D13=F1));C2:C13) - cosa rappresenta quel "gg""?
 

Pitagora

Utente assiduo
Expert
12 Luglio 2015
1,184
30
48
Milano
WIN , 2013 2016
Miglior risposte
15
#10
Come alternativa in base al file post 3

H3=SOMMA.PIÙ.SE($C$2:$C$13;$D$2:$D$13;F1;A2:A13;F3;B2:B13;G3)

L3=SOMMA.PIÙ.SE($C$2:$C$13;$D$2:$D$13;J1;A2:A13;J3;B2:B13;K3)
 

Gianfranco55

Utente assiduo
5 Novembre 2015
3,581
84
48
63
Valdagno
excel 365
Miglior risposte
46
#11
ciao
già che ci siamo

probabile che Andrea sia una persona attiva
e che nelle stessa giornata abbia più uscite o più entrate
opterei pertanto con

entrate
Codice:
=MATR.SOMMA.PRODOTTO(($A$2:$A$13=$F3)*($B$2:$B$13=TESTO($G3;"gg"))*($D$2:$D$13=$F$1);$C$2:$C$13)
uscite

Codice:
=MATR.SOMMA.PRODOTTO(($A$2:$A$13=$J3)*($B$2:$B$13=TESTO($K3;"gg"))*($D$2:$D$13=$J$1);$C$2:$C$13)
che è la stessa di Pitagora_43_

ma fa più figo , vero GesMuio2
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!