[Risolto] Matrice indice e confronta

Andrea_92

Nuovo utente
14 Novembre 2017
7
0
0
Italia
2007
Best answers
0
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 di un moderatore:

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
4.338
444
83
Latina
Excel 2010
Best answers
141
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
Best answers
0
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
3.151
349
83
42
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
Best answers
192
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 Saluto_saluto

(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
4.338
444
83
Latina
Excel 2010
Best answers
141
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 KingSaluto_saluto
la data in G3 formato testo come in colonna B.
Per la colonna L adattala tu.
 

klingklang

Ciappinaro VBA_Expert
Expert
20 Ottobre 2017
3.151
349
83
42
San Giovanni in Persiceto (BO)
www.excelswissknife.com
2016, 365
Best answers
192
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 di un moderatore:

Gerardo Zuccalà

Utente senior
30 Maggio 2015
5.394
101
63
50
Milano, Italy
office 365/2016
Best answers
32
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

[TABLE="class: head"]
[TR="bgcolor: #888888"]

A

B

C

D

E

F

G

H

[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
1
[/TD]
[TD="bgcolor: #002060"]
nome
[/TD]
[TD="bgcolor: #002060"]
giorno
[/TD]
[TD="bgcolor: #002060"]
valore
[/TD]
[TD="bgcolor: #002060"]
tipo
[/TD]

Entrata


[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
2
[/TD]
Francesco​

01​

15​

entrata​


Nome
giorno
Valore
[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
3
[/TD]
Marco​

01​

17​

entrata​


Marco​

1​

[TD="bgcolor: #FFFF00"]
17​
[/TD]
[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
4
[/TD]
francesco​

01​

5​

uscita​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
5
[/TD]
marco​

01​

2​

uscita​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
6
[/TD]
andrea​

01​

6​

entrata​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
7
[/TD]
andrea​

01​

14​

uscita​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
8
[/TD]
Francesco​

02​

32​

entrata​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
9
[/TD]
Marco​

02​

14​

entrata​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
10
[/TD]
francesco0​

02​

18​

uscita​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
11
[/TD]
marco​

02​

96​

uscita​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
12
[/TD]
andrea​

02​

38​

entrata​





[/TR]
[TR="bgcolor: #FFFFFF"]
[TD="bgcolor: #888888"]
13
[/TD]
andrea​

02​

20​

uscita​





[/TR]
[/TABLE]



 

Andrea_92

Nuovo utente
14 Novembre 2017
7
0
0
Italia
2007
Best answers
0
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.338
75
48
Milano
Office 365
Best answers
44
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
4.077
219
63
64
Valdagno
excel 365
Best answers
117
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 PitagoraSaluto_saluto

ma fa più figo , vero GesMuio2
 

Sostieni ForumExcel

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