Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

istruzione somma indiretto

46 views
Skip to first unread message

Francesco

unread,
Oct 26, 2007, 6:06:37 AM10/26/07
to
per effettuare la somma delle celle che vanno dalla riga 15 alla riga N-1
(dove in N č contenuto il risultato) eseguo questa istruzione:
=somma(indiretto("r15c:r[-1]c";falso)) mettendo appunto questa formula nella
cella posizionata nella riga N

ora devo aggiungere questa altra condizione:
nella colonna J dalla riga 15 alla N-1 ho delle date.
Deve considerare in questa somma solo le righe per le quali vale la
condizione "mese della data inserita nella cella"="mese di oggi"

Faccio un esempio:
N=20
quindi ho 20-15+1=6 righe piene
se considero
J15=22/10/2007
J16=29/11/2007
J17=23/10/2007
J18=23/10/2007
J19=10/11/2007
J20=23/10/2007

allora il valore della formula deve essere uguale a:
supponendo di considerare la cella A21, allora A21=A15+A17+A18+A20 perchč,
oggi essendo 26/10/2007, i valori di J16 e J19 non devono essere considerati
infatti hanno il campo mese diverso rispetto a quello odierno.

Spero si possa fare senza l'ausilio di una macro


Francesco


ivano

unread,
Oct 26, 2007, 7:42:47 AM10/26/07
to

"Francesco" <fra.mastrop...@tiscali.it> ha scritto nel messaggio
news:P_iUi.2615$%L6....@tornado.fastwebnet.it...

> per effettuare la somma delle celle che vanno dalla riga 15 alla riga N-1
> (dove in N è contenuto il risultato) eseguo questa istruzione:

> =somma(indiretto("r15c:r[-1]c";falso)) mettendo appunto questa formula
> nella cella posizionata nella riga N
>
> ora devo aggiungere questa altra condizione:
> nella colonna J dalla riga 15 alla N-1 ho delle date.
> Deve considerare in questa somma solo le righe per le quali vale la
> condizione "mese della data inserita nella cella"="mese di oggi"
>
> Faccio un esempio:
> N=20
> quindi ho 20-15+1=6 righe piene
> se considero
> J15=22/10/2007
> J16=29/11/2007
> J17=23/10/2007
> J18=23/10/2007
> J19=10/11/2007
> J20=23/10/2007
>
> allora il valore della formula deve essere uguale a:
> supponendo di considerare la cella A21, allora A21=A15+A17+A18+A20 perchè,
> oggi essendo 26/10/2007, i valori di J16 e J19 non devono essere
> considerati infatti hanno il campo mese diverso rispetto a quello odierno.
>
> Spero si possa fare senza l'ausilio di una macro
>
>
Ciao,
con qualcosa del genere:
=matr.somma.prodotto(indiretto("r15c:r[-1]c";falso);--(mese(indiretto("r15c10:r[-1]c10";falso))<>mese(oggi())))

..se non funziona...dopo ricreo l'esempio.
ivano


Francesco

unread,
Oct 26, 2007, 9:45:44 AM10/26/07
to
ho notato che la tua istruzione funzionava nel modo inverso cioè considerava
le righe solo se il mese era diverso.
Ho provato quindi a sostituire il segno di diverso <> con il segno di = e
ora funziona!!
=matr.somma.prodotto(indiretto("r15c:r[-1]c";falso);--(mese(indiretto("r15c10:r[-1]c10";falso))=mese(oggi())))
E' davvero sbalorditivo:-)

Ora stavo cercando di capire cosa fa la tua "magica" istruzione:
- r15c:r[-1]c considera la colonna c (colonna in cui è messa l'istruzione) e
la riga che va dalla 15 alla -1 (rispetto alla riga in cui è messa
l'istruzione)
- r15c10:r[-1]c10 considera invece la colonna 10 (la J) e la riga che va
dalla 15 alla -1 rispetto alla riga considerata
- l'istruzione indiretto con il falso tra parentesi invece non so cosa fa
(ho letto la guida sulla istruzione Indiretto ma non parla di tale
situazione)
- non so cosa significano i -- (forse è una matrice trasporta, non so)
- matr.somma.prodotto invece è la somma dei prodotti dei singoli elementi
della matrice
- =mese(oggi()) è il mese di oggi ma non capisco come utilizzi tale
istruzione all'interno della struttura matrice.

Sarei felice se mi dessi delle delucidazioni a riguardo.

Francesco

ivano

unread,
Oct 26, 2007, 10:04:30 AM10/26/07
to

"Francesco" <fra.mastrop...@tiscali.it> ha scritto nel messaggio
news:ecmUi.3017$%L6....@tornado.fastwebnet.it...

> ho notato che la tua istruzione funzionava nel modo inverso cioè
> considerava le righe solo se il mese era diverso.
> Ho provato quindi a sostituire il segno di diverso <> con il segno di = e
> ora funziona!!
> =matr.somma.prodotto(indiretto("r15c:r[-1]c";falso);--(mese(indiretto("r15c10:r[-1]c10";falso))=mese(oggi())))
> E' davvero sbalorditivo:-)
>
> Ora stavo cercando di capire cosa fa la tua "magica" istruzione:
> - r15c:r[-1]c considera la colonna c (colonna in cui è messa l'istruzione)
> e la riga che va dalla 15 alla -1 (rispetto alla riga in cui è messa
> l'istruzione)

No! considera la STESSA colonna ove è inserita la formula e potrebbe essere
la A, la AZ, la H...

> - r15c10:r[-1]c10 considera invece la colonna 10 (la J) e la riga che va
> dalla 15 alla -1 rispetto alla riga considerata

Si.

> - l'istruzione indiretto con il falso tra parentesi invece non so cosa fa
> (ho letto la guida sulla istruzione Indiretto ma non parla di tale
> situazione)

L'hai proposta tu quella formula lì! :-)
l'argomento FALSO indica che il riferimento che stai utilizzando NON è l'A1,
infatti stai scrivendo riferimenti in R1C1

> - non so cosa significano i -- (forse è una matrice trasporta, non so)

i due trattini non sono altro che la sottrazione di una sottrazione :-) e
servono a convertire i valori logici VERO/FALSO in 1/0


> - matr.somma.prodotto invece è la somma dei prodotti dei singoli elementi
> della matrice

infatti.

> - =mese(oggi()) è il mese di oggi ma non capisco come utilizzi tale
> istruzione all'interno della struttura matrice.

Per ogni elemento della matrice calcolo il MESE e ne verifico la
corrispondenza con quello attuale
Es: A1:A6 delle date: =MESE(A1:A6) restituirà una matrice dei mesi delle
date:
{1\2\3\4\5\6}
se li confronto col mese attuale =MESE(A1:A6)=MESE(OGGI())
otterei:
{FALSO\FALSO\FALSO\FALSO\FALSO\FALSO}
se faccio:
=--(MESE(A1:A6)=MESE(OGGI()))
ottengo:
{0\0\0\0\0\0}

Francesco

unread,
Oct 26, 2007, 11:12:38 AM10/26/07
to
Vediamo se ho capito.

Nel mio esempio:


N=20
quindi ho 20-15+1=6 righe piene
se considero
J15=22/10/2007
J16=29/11/2007
J17=23/10/2007
J18=23/10/2007
J19=10/11/2007
J20=23/10/2007

con oggi 26/10/2007

e con
A15=1000
A16=2000
A17=3000
A18=4000
A19=5000
A20=6000

otterrei alla fine 2 matrici; una sui valori delle celle A15:A20 e l'altra
sulla rispondenza delle date contenute in J15:J20 con quella del mese di
oggi;
rispettivamente
[1000\2000\3000\4000\5000\6000]
e
[1\0\1\1\0\1]
che moltiplicate membro a membro darebbero:
1000*1+2000*0+3000*1+4000*1+5000*0+6000*1=14000 che č proprio ciň che
volevo.

Un'altra domanda:
queste matrici sono di tipo matrice riga (1*n) oppure matrice colonna (m*1)?
Io direi matrice colonna perchč gli elementi considerati sono posti su una
colonna oppunto perchč consideri A16:A20 e J16:J20 (forse mi sbaglio)

L'istruzione INDIRETTO con FALSO mi era stata suggerita precedentemente:-(


ivano

unread,
Oct 26, 2007, 1:43:58 PM10/26/07
to
[cut]

>
> Un'altra domanda:
> queste matrici sono di tipo matrice riga (1*n) oppure matrice colonna
> (m*1)?
> Io direi matrice colonna perchè gli elementi considerati sono posti su una
> colonna oppunto perchè consideri A16:A20 e J16:J20 (forse mi sbaglio)
>

Le matrici, possono essere ad una dimensione (una riga / una colonna) tipo:
per riga:
{1\2\3\4\5\6\7\8}
per colonna:
{"a";"b";"c";"d";"e";"f";"g";"h"}

oppure a due dimensioni:
{"a";"b";"c"\1;2;3\"d";"e";"f"\4;5;6}

vedi:
"\" separatore di riga
";" separatore di colonna
"{" "}" identificatori di matrice

per visualizzare una matrice:
creati un intervallo dati:
A1:B3
e immetti dei valori
in una cella digita:
=A1:B3
e conferma con ctrl+maiusc+invio
ora seleziona la formula nella barra
e premi F9

ivano


Francesco

unread,
Oct 29, 2007, 3:36:02 AM10/29/07
to
scusami Ivano.
Forse non ho capito come creare la matrice infatti ho provato la tua
procedura ma non va.
Devo selezionare con il mouse le matrici A1:B3 (che sarebbe una matrice 3x2)
e poi?
"Immetti dei valori"
ho immesso:
A1=1
A2=2
A3=3
B1=4
B2=5
B6=6
"In una cella digita=A1:B3"
Scusami ma come faccio a digitare A1:B3 in una cella se sono già tutte
piene?


Francesco

ivano

unread,
Oct 29, 2007, 4:23:00 AM10/29/07
to

"Francesco" <fra.mastrop...@tiscali.it> ha scritto nel messaggio
news:F3gVi.6336$%L6....@tornado.fastwebnet.it...

> scusami Ivano.
> Forse non ho capito come creare la matrice infatti ho provato la tua
> procedura ma non va.
> Devo selezionare con il mouse le matrici A1:B3 (che sarebbe una matrice
> 3x2) e poi?
> "Immetti dei valori"
> ho immesso:
> A1=1
> A2=2
> A3=3
> B1=4
> B2=5
> B6=6
> "In una cella digita=A1:B3"

In una cella, non dell'intervallo dati.
Inserisci la formula in C1.
E' l'intervallo A1:B3 la matrice!...la procedura serve a riproporre la
stessa matrice (che utilizza 6 celle) in una cella sola (la C1); la matrice
in C1 è:
{1;4\2;5\3;6}, anche se visualizzi solo 1, ovvero il primo elemento.
ivano

giovanna

unread,
Oct 29, 2007, 4:25:31 AM10/29/07
to
Il 29/10/2007, Francesco ha detto :

> scusami Ivano.
> Forse non ho capito come creare la matrice infatti ho provato la tua
> procedura ma non va.
> Devo selezionare con il mouse le matrici A1:B3 (che sarebbe una matrice 3x2)
> e poi?
> "Immetti dei valori"
> ho immesso:
> A1=1
> A2=2
> A3=3
> B1=4
> B2=5
> B6=6
> "In una cella digita=A1:B3"
> Scusami ma come faccio a digitare A1:B3 in una cella se sono già tutte piene?
>
Ciao Francesco.
... in un'altra cella.
Poi, diceva Ivano:

>> e conferma con ctrl+maiusc+invio
>> ora seleziona la formula nella barra
>> e premi F9
tutto ciò,
>> per visualizzare una matrice.

--
ciao
giovanna
.......................
www.riolab.org
.........................


giovanna

unread,
Oct 29, 2007, 4:30:06 AM10/29/07
to
Il 29/10/2007, ivano ha detto :
[...]

vabbèh, ciao I.!
quando ho postato non c'eri! :-)

Francesco

unread,
Oct 29, 2007, 6:07:53 AM10/29/07
to

Ok.
Ora ho capito.
Grazie Ivano

Francesco


> In una cella, non dell'intervallo dati.
> Inserisci la formula in C1.
> E' l'intervallo A1:B3 la matrice!...la procedura serve a riproporre la
> stessa matrice (che utilizza 6 celle) in una cella sola (la C1); la

> matrice in C1 č:

Francesco

unread,
Oct 29, 2007, 10:21:09 AM10/29/07
to

Ringrazio anche te.

Ciao Giovanna
Francesco


0 new messages