> Ciao a tutti!
> Ho sentito parlare di questo tipo di formula, ma non so né cosa significhi,
> né a che cosa serva e quali tipi di operazioni si possano eseguire con essa.
> Qualcuno mi può spiegare?
-----------------------------------------------------------------------
From: "fernando cinquegrani" <f.cinq...@prodomosua.it>
Subject: Re: forma matriciale-?????
Date: Sun, 9 Mar 2003 02:31:54 +0100
Message-ID: <uW6wFvd5...@TK2MSFTNGP09.phx.gbl>
Newsgroups: microsoft.public.it.office.excel
"Liko" <lykoANTI...@inwind.it> ha scritto nel messaggio
news:VUsaa.189018$YG2.5...@twister1.libero.it...
> Scusate,ogni tanto leggo di una funzione o formula (scusate se sbaglio) in
> forma matriciale,la quale si attiva non con il semplice tasto invio ma con
> la combinazione di tasti CTRL+MAIUSC+INVIO.
> Mi potete spiegare, a grandi linee, cosè? e quando sia necessario
> applicarla?
le formule matriciali permettono operazioni ordinate
su vettori o matrici fornendo come risultato dei vettori
o matrici.
supponiamo di avere in a1:c3
x 3 2
y 4 1
z 5 4
se in d1 scriviamo =b1*c1 e copiamo
avremo
x 3 2 6
y 4 1 4
z 5 4 20
la formula matriciale ci consente di
scrivere direttamente in d1:d3
=(b1:b3)*(c1:c3) [cntl+maiusc+invio]
ottenendo lo stesso risultato.
un risultato che possimo utilizzare anche se non
trascritto sul foglio di lavoro:
=indice((b1:b3)*(c1:c3);2) [cntl+maiusc+invio]
ci dirà 4 perchè al secondo posto del vettore
risultato c'è 4.
l'utilizzo più frequente delle formule matriciali è con
la funzione somma().
la funzione matr.somma.prodotto consente di
sommare i valori (riportati in d1:d3) con riferimento
alle colonne b e c:
=matr.somma.prodotto(b1:b3;c1:c3)...30
lo stesso risultato l'avremmo ottenuto con la
formula matriciale
=somma((b1:b3)*(c1:c3)) [cntl+maiusc+invio]...30.
ma la funzione matr.somma.prodotto opera su
matrici solo con questa operazione, mentre con
le formule matriciali le possibilità di operazioni
sono (quasi) infinite. così:
=somma((b1:b3)*(c1:c3)*(a1:a3="x") [cntl+maiusc+invio]
ci darà 6 perchè la somma del prodotto ordinato dei vettori
3/4/5 (b1:b3), 2/1/4 (c1:c3) e 1/0/0 ossia il vettore risultante
delle operazioni a1="x" (vero o 1)/ a2="x" (falso o 0)/ a3 ="x" (falso o
0)
è appunto 6.
=somma((a1:a3="y")*(b1:b3=4)*(c1:c3)) [contl+maiusc+invio]
ci darà 1 perchè la somma dei prodotti ordinati 0/1/0 (a1:a3="y"),
0/1/0 (b1:b3) e 2/1/4 (c1:c3) è appunto 1.
possiamo leggere quest'ultima formula come un
somma.se(), solo che questa si limita a una condizione
(es: somma.se(a1:a3;"y";c1:c3)) mentre con le formule
matriciali non vi sono (quasi) limiti. questo è il motivo
per cui le formule matriciali sono spesso considerate
nelle funzioni di aggregazione.
non credo di essere stato particolarmente chiaro
(ma è una risposta sul newsgroup, non altro):
guarda sul web alle voci array formulas, cse [cntl+shift+enter]
per saperne di più.
tra i frequentatori del newsgroup c'era un collezionista di
formule matriciali: mi aspetto da lui qualche pagina
ben fatta.
.f
http://www.prodomosua.it
-----------------------------------------------------------------------
Puoi anche vedere
http://www.microsoft.com/italy/office/previous/2000/esperti/array/
http://www.microsoft.com/italy/office/previous/2000/esperti/gestione_matrici/
http://www.microsoftexceltraining.com/Excel/Arrays.htm
http://www.cpearson.com/excel/array.htm
http://www.cpearson.com/excel/excelF.htm
http://www.winplanet.com/winplanet/tips/4045/1/
http://www.emailoffice.com/excel/arrays-bobumlas.html
--
Tiziano Marmiroli
Microsoft MVP - Office
Piergiorgio
Piergiorgio
Il campo delle matrici è un pò particolare, delicato e vasto.
Tanto per farti avere un primo approccio (ma molto elementarmente per il
momento), diciamo che una matrice è una tabella (di numeri, per il momento).
Una matrice, quindi, può avere più righe e più colonne (aqnche una sola
colonna o riga).
Quando una formula interessa una matrice può essere necessario (non sempre)
che Excel prima esamini tutti gli elementi della matrice e poi faccia
particolari calcoli. Quando si concretizza questa circostanza, allora la
formula (che interessa in maniera particolare tutta la matrice) si suol dire
che è *formula matriciale*
Le formule matriciali (tutte) hanno la particolarità di richiedere una
precisa operazione per essere inserite (non molto difficile): Una volta
digitata la formula matriciale, mentre il cursore è ancorra nella barra
della formula, devi attivare contemporaneamente 3 tasti: Ctrl+Maiusc+Invio
(SOLTANTO così si inserisce una formula matriciale). Excel te lo evidenzia
con due simboli posti al primissomo ed ultimissimo posto nella barra della
formula: LE PARENTESI GRAFFE.
Per il momento basta. Rischieresti si fare una bella insalata.
Esempio? ti faccio costruire la classica tavola pitagorica.
in A1 e B1 inserisci i numeri 1 e 2
seleziona A1:B1 e trascina il quadratino in basso fino a J1 (troverai la
serie da 1 a 10 sviluppata)
in A2 inserisci il numero 2
seleziona A1:A2 e trascina il quadratino in basso fino a A10
seleziona B2:J10 (cioè, l'area vuota)
nella barra della formula introduci questa formula:
=MATR.PRODOTTO(A2:A10;B1:J1)
con il cursore ancora nella barra della formula, attiva contemporaneamente
Ctrl+Maiusc+Invio
e dimmi cosa succede.
Se riprovi senza il tasto Maiusc (solo Ctrl+Invio) Excel, se parlasse, ti
direbbe:
*Ohe!! mi fai impazzire con tutti questi riferimenti circolari!!*
Questa è una formula matriciale!
enzo
Saluti.
"Tiziano Marmiroli" <t.mar...@mvps.org> ha scritto nel messaggio
news:frv0sv87kr4d49aib...@4ax.com...
Piergiorgio