Discussione:
conta e somma.se con criteri variabili
(troppo vecchio per rispondere)
Francesco
2006-07-16 13:56:17 UTC
Permalink
Salve a tutti,
ho un wb excel di cui ora mi interessano 3 fogli.
Il foglio uno contiene delle istanze del tipo:
autore/anno1/anno2

Il foglio 2 istanze del tipo
autore/anno/valore

Il foglio 3 contiene un elenco degli autori senza ripetizioni, 1 rigo
è un autore.

Quello che vorrei è per ogni autore individuare un insieme di anni
"buoni", ovvero anni che in almeno una istanza del foglio1 sono
compresi tra anno1 e (anno2+2). Ciò deve succedere in una istanza
riferita a quell'autore.
Quindi vorrei contare nel foglio2 le istanze, per ogni autore,
caratterizzate da avere nel campo "anno" un anno buono.
Di queste vorrei anche la somma fatta sul campo "valore".

Pensavo di riuscire a farlo partendo da una funzione per ogni anno per
ogni autore, usando un conta.se che conti nel foglio1 le volte in cui
un anno può definirsi buono... ma mi sto arenando in inutili
tentativi.

Potreste suggerirmi qualcosa?
Grazie mille!!!
francesco

P.S. non sapevo davvero cosa mettere nell'oggetto, capisco che magari
non sia molto preciso...
fernando cinquegrani
2006-07-16 14:25:34 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Quello che vorrei è per ogni autore individuare un insieme di anni
"buoni", ovvero anni che in almeno una istanza del foglio1 sono
compresi tra anno1 e (anno2+2). Ciò deve succedere in una istanza
riferita a quell'autore.
Quindi vorrei contare nel foglio2 le istanze, per ogni autore,
caratterizzate da avere nel campo "anno" un anno buono.
Di queste vorrei anche la somma fatta sul campo "valore".
per contare le ricorrenze:
=matr.somma.prodotto(1*(autori=autore);1*(anni>=anno1);1*(anni<=anno2+2))
dove autori e anni sono i range della tabella in foglio1, e
autore, anno1 e anno2 sono le celle variabili.
per evidenziarle:
una formattazione condizionale che verifichi la condizione
=matr.somma.prodotto(1*(autori=autore);1*(anni>=anno1);1*(anni<=anno2+2))>0
[in tal caso autore, anno1 e anno2 saranno dei nomi definiti:
da menu: inserisci :: nome :: definisci...]
.f
fernando cinquegrani
2006-07-16 14:37:25 UTC
Permalink
[fernando cinquegrani] scrive in
Post by fernando cinquegrani
una formattazione condizionale che verifichi la condizione
=matr.somma.prodotto(1*(autori=autore);1*(anni>=anno1);1*(anni<=anno2+2))>0
da menu: inserisci :: nome :: definisci...]
... mentre autori e anni saranno le celle da formattare
es.:
in foglio1
autore anno
a 1966
b 1968
a 1967
in foglio2, nomi definiti
[autore] a
[anno1] 1968
[anno2] 1970

formattazione condizionale:
in A2
=matr.somma.prodotto(1*($a2=autore);1*($b2>=anno1);1*($b2<=anno2+2))>0
motivo: rosso
.f
Francesco
2006-07-16 15:00:28 UTC
Permalink
Ciao Fernando,
Post by fernando cinquegrani
=matr.somma.prodotto(1*(autori=autore);1*(anni>=anno1);1*(anni<=anno2+2))
dove autori e anni sono i range della tabella in foglio1, e
autore, anno1 e anno2 sono le celle variabili.
una formattazione condizionale che verifichi la condizione
=matr.somma.prodotto(1*(autori=autore);1*(anni>=anno1);1*(anni<=anno2+2))>0
da menu: inserisci :: nome :: definisci...]
.f
ti ringrazio molto per l'interessamento al mio problema, ma non sono
riuscito a risolverlo facendo come mi consigli. Non riesco a capire
cosa faccia la funzione che mi suggerisci, anche perchè da quello che
capisco non considera affatto il foglio2, che è quello dove devo
contare le istanze..
Infatti autori e anni sono range di foglio1, anno1 e anno2 sono campi
che si trovano solo in foglio1 e l'autore è in foglio3.

Forse è colpa mia che non mi sono spiegato adeguatamente, provo a
chiarire.
In sostanza ho bisogno di fare 100 ricerche (con 100 numero degli
autori) su foglio 2 contando delle righe che, per l'autore 44,
soddisfino i requisiti qui sotto e facendo la somma solo per quelle
righe del campo "valore".
1) l'autore è 44?
2) l'anno è uno di quelli che per il signor44 (solo per lui) è da
considerarsi buono?

La risposta alla seconda domanda è nel foglio1. In particolare un anno
X è buono per il signor44 se quel foglio contiene (almeno) una riga
che soddisfa questi requisiti:
1) l'autore è proprio il signor44
2) anno1 e anno2 sono tali che X>=anno1 and X<=anno2+2.

Come glielo faccio a dire ad Excel? Aiuto! :))

Grazie ancora, Fernando, per la tua attenzione.
Grazie a chiunque altro possa e voglia suggerirmi qualcosa.

francesco
fernando cinquegrani
2006-07-16 15:12:59 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Forse è colpa mia che non mi sono spiegato adeguatamente, provo a
chiarire.
In sostanza ho bisogno di fare 100 ricerche (con 100 numero degli
autori) su foglio 2 contando delle righe che, per l'autore 44,
soddisfino i requisiti qui sotto e facendo la somma solo per quelle
righe del campo "valore".
1) l'autore è 44?
2) l'anno è uno di quelli che per il signor44 (solo per lui) è da
considerarsi buono?
scusa, avevo letto male (i motivi sono qualche thread più su).
in foglio2, nel campo valore
=matr.somma.prodotto(1*(autori=a2);1*(anno1>=b2);1*(anno2<=b2))
dove autori, anno1 e anno2 sono i rispettivi range del foglio1.
è così?
.f
Francesco
2006-07-16 15:33:38 UTC
Permalink
Post by fernando cinquegrani
in foglio2, nel campo valore
=matr.somma.prodotto(1*(autori=a2);1*(anno1>=b2);1*(anno2<=b2))
dove autori, anno1 e anno2 sono i rispettivi range del foglio1.
è così?
.f
Il campo valore contiene dei numeri che vorrei sommare.
Le celle che invece vorrei riempire sono nel foglio 3.
Esso come dicevo è così fatto:
autore/numero_di_istanze_del_foglio_2_buone_per_quell'autore/somma_sul_campo_valore_di_queste_istanze:
a b c
1Francesco/3 righe buone/7+4+5
2Giovanni/2 righe buone/9+18

Le 3 righe buone di Francesco, pescate nel foglio2, hanno nel campo
valore rispettivamente 7,4,5 e così Giovanni.
L'output che desidererei da excel è appunto: 3 righe buone, 16 per
Francesco;2 righe buone, 27 per Giovanni. Che formula posso inserire in
b1,b2,c1,c2 del foglio3?


francesco
giovanna
2006-07-16 16:06:54 UTC
Permalink
Scriveva Francesco nel
Post by Francesco
Il campo valore contiene dei numeri che vorrei sommare.
Le celle che invece vorrei riempire sono nel foglio 3.
a b c
1Francesco/3 righe buone/7+4+5
2Giovanni/2 righe buone/9+18
Le 3 righe buone di Francesco, pescate nel foglio2, hanno nel campo
valore rispettivamente 7,4,5 e così Giovanni.
L'output che desidererei da excel è appunto: 3 righe buone, 16 per
Francesco;2 righe buone, 27 per Giovanni. Che formula posso inserire in
b1,b2,c1,c2 del foglio3?
ciao Francesco,
io "c'ho provato", così :-) :
in cella B2 del foglio 3:
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
in A2 - di foglio3 - l'autore.
fa' sapere....
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
fernando cinquegrani
2006-07-16 16:26:08 UTC
Permalink
[giovanna] scrive in
Post by giovanna
ciao Francesco,
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
in A2 - di foglio3 - l'autore.
fa' sapere....
allora proprio non ho capito.
non vi sono duplicazioni dell'autore solo
nel foglio3 o anche nel foglio1?
e nel foglio2?
.f
giovanna
2006-07-16 16:41:52 UTC
Permalink
Scriveva fernando cinquegrani nel
Post by fernando cinquegrani
[giovanna] scrive in
Post by giovanna
ciao Francesco,
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
in A2 - di foglio3 - l'autore.
fa' sapere....
allora proprio non ho capito.
non vi sono duplicazioni dell'autore solo
nel foglio3 o anche nel foglio1?
e nel foglio2?
.f
io ho capito che nel foglio 3 non vi sono duplicazioni dell'autore. Vi
sono in foglio2 e forse anche in foglio1.. io mi sono riferita
all'elenco in foglio2.
vedo se Francesco legge il mio post.....
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
fernando cinquegrani
2006-07-16 17:01:33 UTC
Permalink
[giovanna] scrive in
Post by giovanna
Post by giovanna
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
io ho capito che nel foglio 3 non vi sono duplicazioni dell'autore. Vi
sono in foglio2 e forse anche in foglio1.. io mi sono riferita
all'elenco in foglio2.
ma quando dici (Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(
cosa immagini che ci sia in foglio1!a1
se in foglio3!a1 c'è 'francesco'?
.f
giovanna
2006-07-16 17:08:55 UTC
Permalink
Scriveva fernando cinquegrani nel
Post by fernando cinquegrani
[giovanna] scrive in
Post by giovanna
Post by giovanna
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
io ho capito che nel foglio 3 non vi sono duplicazioni dell'autore. Vi
sono in foglio2 e forse anche in foglio1.. io mi sono riferita
all'elenco in foglio2.
ma quando dici (Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(
cosa immagini che ci sia in foglio1!a1
se in foglio3!a1 c'è 'francesco'?
.f
oohh ... ho letto ora l'ultimo post di Francesco: non avevo capito un
tubo!
ora sto cercando di ricreare la situazione. con i suoi esempi.... boh!
(e fra un po' mi interromperanno....)
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
Francesco
2006-07-16 16:59:30 UTC
Permalink
Il foglio 1 e 2 contengono molti record con lo stesso autore. Che ciò
succeda nel foglio1 complica il mio lavoro, perchè individuare gli
anni "buoni" su cui selezionare le istanze del foglio2 richiede che si
analizzino tutte le righe di un autore.

foglio1
autore anno1 anno2
pippo 2000 2002
pippo 2001 2003
giovanni 1998 1998
giovanni 1999 2000
giovanni 2004 2006
francesco 1990 1992

Gli anni buoni per pippo sono:
dal 2000 al 2004 per la prima riga
dal 2001 al 2005 per la seconda
quindi sono dal 2000 al 2005

foglio 2
autore anno valore
michele ...
giovanni...
pippo 1999 3
pippo 2000 3
pippo 2002 2
pippo 2006 1

Le righe da pescare nel foglio2 sono quella del 2000 e quella del 2002.
Esse sono 2.
La somma del campo valori è 3+2=5.

Ora bisognerebbe rifare il tutto anche per giovanni michele eccetera,
così da completare il foglio 3.

autore righe buone valore
pippo 2 5
michele
giovanni...



L'aspetto cruciale è che prima di scegliere una qualsiasi riga del
foglio2 di pippo Excel deve aver letto tutte le righe pippo del
foglio1, sennò non sa ancora qual è il criterio con cui selezionarle.
Solo dopo aver visto entrambe le righe pippo di foglio1 per esempio sa
che in foglio2 può prendere una riga pippo anche se l'anno è il 2005.
Questa credo che sia la specificità della mia richiesta in questo
thread.
Ho due criteri su cui devo selezionare righe nel foglio 2.
Un criterioo è facile: se sto esaminando pippo devo prendere le righe
pippo.
L'altro criterio è difficile e si costruisce dopo aver scorso tutto il
foglio1. Forse ci vuole una macro...
Se potete, quando potete (so di starvi un chiedendo un po' tanto)
potreste darmi ancora un aiutino??
Francesco
fernando cinquegrani
2006-07-16 17:20:26 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Il foglio 1 e 2 contengono molti record con lo stesso autore. Che ciò
succeda nel foglio1 complica il mio lavoro, perchè individuare gli
anni "buoni" su cui selezionare le istanze del foglio2 richiede che si
analizzino tutte le righe di un autore.
aggiungi un campo in foglio2 [buono] in colonna D
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2>=b2+2))>0
dove autore1 è Foglio1!$A$2:$A$100
anno1 è Foglio1!$B$2:$B$100
anno2 è Foglio1!$C$2:$C$100
Post by Francesco
Le righe da pescare nel foglio2 sono quella del 2000 e quella del
2002. Esse sono 2.
La somma del campo valori è 3+2=5.
quindi la somma [in foglio3] è
=matr.somma.prodotto(1*(autore2=a2);1*(buono);valori)
dove autore2 è Foglio2!$A$2:$A$100
buono è Foglio2!$D$2:$D$00
valori è Foglio2!$C$2:$C$100
Post by Francesco
Ora bisognerebbe rifare il tutto anche per giovanni michele eccetera,
basta copiare per tutte le righe del foglio2 e del foglio3
Post by Francesco
autore righe buone valore
pippo 2 5
michele
giovanni...
quindi, in foglio3

righe buone =conta.se(buono;vero)
dove buono è Foglio2!$D$2:$D$00

valore (già detto)
=matr.somma.prodotto(1*(autore2=a2);1*(buono);valori)
dove autore2 è Foglio2!$A$2:$A$100
buono è Foglio2!$D$2:$D$00
valori è Foglio2!$C$2:$C$100
.f
giovanna
2006-07-16 18:16:58 UTC
Permalink
Scriveva fernando cinquegrani nel
<***@TK2MSFTNGP04.phx.gbl>, del 16/07/2006:


perfetto Fer...
Post by fernando cinquegrani
aggiungi un campo in foglio2 [buono] in colonna D
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2>=b2+2))>0
ma non dovrebbe essere:
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2+2>=b2))>0
?
(... per Francesco).
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
Francesco
2006-07-16 18:55:21 UTC
Permalink
Post by fernando cinquegrani
aggiungi un campo in foglio2 [buono] in colonna D
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2>=b2+2))>0
dove autore1 è Foglio1!$A$2:$A$100
anno1 è Foglio1!$B$2:$B$100
anno2 è Foglio1!$C$2:$C$100
Autore 1 definito così non è a2:a100 perchè seppure ho solo 119
autori nel foglio 1 come detto sono ripetuti, per cui avrei
autore1=a2:a1000; va bene lo stesso?
Post by fernando cinquegrani
dove autore2 è Foglio2!$A$2:$A$100
buono è Foglio2!$D$2:$D$00
valori è Foglio2!$C$2:$C$100
Non sono affatto pratico di funzioni matriciali ma autore2 ha una
lunghezza diversa da autore1 (e una lunghezza ancora diversa dal vero
numero di autori senza ripetizioni, presente in foglio3). E' un
problema?
Post by fernando cinquegrani
Post by fernando cinquegrani
basta copiare per tutte le righe del foglio2 e del foglio3
Questa procedura se ho capito bene mi dice per ogni riga del foglio2 se
è buona o no, e lo fa per un autore alla volta. Ma come faccio a farlo
per tutti purtroppo non sono riuscito a capirlo dalla tua risposta.
Scusami (scusatemi) se oltre a chiedervi il consiglio vi chiedo
chiarimenti sulla risposta, ma sto cercando di imparare...
Grazie
Francesco
fernando cinquegrani
2006-07-16 19:50:32 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Autore 1 definito così non è a2:a100 perchè seppure ho solo 119
autori nel foglio 1 come detto sono ripetuti, per cui avrei
autore1=a2:a1000; va bene lo stesso?
sì, va bene lo stesso. ma vanno di conseguenza adeguati
tutti gli intervalli del foglio1
autore1 è Foglio1!$A$2:$A$1000
anno1 è Foglio1!$B$2:$B$1000
anno2 è Foglio1!$C$2:$C$1000
Post by Francesco
Post by fernando cinquegrani
dove autore2 è Foglio2!$A$2:$A$100
buono è Foglio2!$D$2:$D$00
valori è Foglio2!$C$2:$C$100
Non sono affatto pratico di funzioni matriciali ma autore2 ha una
lunghezza diversa da autore1 (e una lunghezza ancora diversa dal vero
numero di autori senza ripetizioni, presente in foglio3). E' un
problema?
no. non è un problema. il numero di righe del
foglio2 può essere diverso dal numero di righe del
foglio1 e del foglio3.

quindi:
autore2 è Foglio2!$A$2:$A$200
buono è Foglio2!$D$2:$D$200
valori è Foglio2!$C$2:$C$200

dove [buono] è
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2+2>=b2))>0
[sì, giovanna. avevo copiato dalla prima formula, dove avevo
capito il contrario]
Post by Francesco
Questa procedura se ho capito bene mi dice per ogni riga del foglio2
se è buona o no, e lo fa per un autore alla volta. Ma come faccio a
farlo per tutti purtroppo non sono riuscito a capirlo dalla tua
risposta. Scusami (scusatemi) se oltre a chiedervi il consiglio vi
chiedo chiarimenti sulla risposta, ma sto cercando di imparare...
nel foglio2 lo fa per ogni ricorrenza dell'autore:
nel campo [buono] ci sarà vero o falso se sono verificate o
meno le condizioni per quel record.

nel foglio3 lo fa per ogni autore.
sommando i VERO nel campo [buono]
ti indica il conteggio dei 'buoni'.
=matr.somma.prodotto(1*(autore2=a2);1*(buono))
[altro mio errore. giovanna, sei disattenta!]

e
sempre nel foglio3 vengono sommati i valori
dei 'buoni'
=matr.somma.prodotto(1*(autore2=a2);1*(buono);valori)

.f
giovanna
2006-07-16 20:20:38 UTC
Permalink
Scriveva fernando cinquegrani nel
Post by fernando cinquegrani
=matr.somma.prodotto(1*(autore2=a2);1*(buono))
[altro mio errore. giovanna, sei disattenta!]
eh si... ma a mala pena ho fatto in tempo a provare il conteggio
valori... non avevo visto nemmeno il tuo conta.se! :-(
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
Francesco
2006-07-16 20:23:39 UTC
Permalink
Ciao Fernando, ci dovrei essere quasi, ora non ho nessun messaggio di
errore però ho una colonna di falso nel campo buono di foglio2 ei
conteggi vengono tutti 0.
Post by fernando cinquegrani
autore1 è Foglio1!$A$2:$A$1000
anno1 è Foglio1!$B$2:$B$1000
anno2 è Foglio1!$C$2:$C$1000
ok
Post by fernando cinquegrani
autore2 è Foglio2!$A$2:$A$200
buono è Foglio2!$D$2:$D$200
valori è Foglio2!$C$2:$C$200
ok
Post by fernando cinquegrani
dove [buono] è
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2+2>=b2))>0
[sì, giovanna. avevo copiato dalla prima formula, dove avevo
capito il contrario]
Ecco qui ho un dubbio: la formula la inserisco in d2 e poi trascino
giù?
Vengono tutti falsi. Quello che non capisco è cosa sia falso: vabene,
è falso che quella riga sia da prendere, ma ciò dipende dall'autore
che sto considerando, invece lì c'è qualcosa di fisso... non riesco a
capire.
Post by fernando cinquegrani
nel campo [buono] ci sarà vero o falso se sono verificate o
meno le condizioni per quel record.
Si ho capito, ma le condizioni per quel record possono essere
sodisfatte per autorex e non per autorey... è come se ci volessero 100
colonne [buono] in cui in ognuna c'è vero o falso a seconda che quella
riga sia buona per quello specifico autore.
Post by fernando cinquegrani
=matr.somma.prodotto(1*(autore2=a2);1*(buono))
[altro mio errore. giovanna, sei disattenta!]
Questa la inserisco in corrispondenza di un autore e poi trascino giu
vero?


Ancora GRAZIE!
francesco
fernando cinquegrani
2006-07-17 01:23:20 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Ciao Fernando, ci dovrei essere quasi, ora non ho nessun messaggio di
errore però ho una colonna di falso nel campo buono di foglio2 ei
conteggi vengono tutti 0.
falso è 0
vero è 1
se sommi tutti falsi il valore del conteggio sarà 0
Post by Francesco
Post by giovanna
=matr.somma.prodotto(1*(autore1=a2);1*(anno1<=b2);1*(anno2+2>=b2))>0
Ecco qui ho un dubbio: la formula la inserisco in d2 e poi trascino
giù?
Vengono tutti falsi. Quello che non capisco è cosa sia falso: vabene,
è falso che quella riga sia da prendere, ma ciò dipende dall'autore
che sto considerando, invece lì c'è qualcosa di fisso... non riesco a
capire.
questo non dovrebbe essere. se hai scritto in D2
=matr.somma.prodotto(1*(Foglio1!$A$2:$A$1000=a2);1*(Foglio1!$B$2:$B$1000<=b2);1*(Foglio1!$C$2:$C$1000+2>=b2))>0
assicurati che, trascinando, la formula in D3 diventi
=matr.somma.prodotto(1*(Foglio1!$A$2:$A$1000=a3);1*(Foglio1!$B$2:$B$1000<=b3);1*(Foglio1!$C$2:$C$1000+2>=b3))>0
Post by Francesco
Si ho capito, ma le condizioni per quel record possono essere
sodisfatte per autorex e non per autorey... è come se ci volessero 100
colonne [buono] in cui in ognuna c'è vero o falso a seconda che quella
riga sia buona per quello specifico autore.
io considero buono il record se è verificata dalle condizioni
espresse in *almeno* un record del foglio1
il valore
=matr.somma.prodotto(1*(Foglio1!$A$2:$A$1000=a3);1*(Foglio1!$B$2:$B$1000<=b3);1*(Foglio1!$C$2:$C$1000+2>=b3))
può essere 0, 1, 2, 3, ...
a seconda che vi siano nel foglio1 0, 1, 2, 3 ... record del foglio1
in cui si verificano le condizioni.
se ve n'è almeno una
=matr.somma.prodotto(...)>0
allora considero il record 'buono'
Post by Francesco
Post by giovanna
=matr.somma.prodotto(1*(autore2=a2);1*(buono))
Questa la inserisco in corrispondenza di un autore e poi trascino giu
vero?
sì. in b2 del foglio3

ho trascritto questa struttura e queste formule nel file
http://www.prodomosua.eu/zips/prof.xls
guardalo e confermami che stiamo parlando della
stessa cosa: non ne sono ancora sicuro.
.f
Francesco
2006-07-17 08:40:00 UTC
Permalink
Buongiorno Fernando, e buon inizio di settimana.
Post by fernando cinquegrani
ho trascritto questa struttura e queste formule nel file
http://www.prodomosua.eu/zips/prof.xls
guardalo e confermami che stiamo parlando della
stessa cosa: non ne sono ancora sicuro.
Il tuo link al momento non funziona, ho cercato sul tuo sito ma non ho
saputo trovarlo.
Ho creato un piccolo wb di prova con 8 righe e un solo autore, su cui
la tua funzione da "FALSO" a tutte le righe anche se sono tutte vere.
Se me lo permetti potrei inviartelo via email. In ogni caso grazie.
francesco
Franz Verga
2006-07-17 08:50:10 UTC
Permalink
Post by Francesco
Buongiorno Fernando, e buon inizio di settimana.
Post by fernando cinquegrani
ho trascritto questa struttura e queste formule nel file
http://www.prodomosua.eu/zips/prof.xls
guardalo e confermami che stiamo parlando della
stessa cosa: non ne sono ancora sicuro.
Il tuo link al momento non funziona, ho cercato sul tuo sito ma non ho
saputo trovarlo.
Ho creato un piccolo wb di prova con 8 righe e un solo autore, su cui
la tua funzione da "FALSO" a tutte le righe anche se sono tutte vere.
Se me lo permetti potrei inviartelo via email. In ogni caso grazie.
francesco
Perché invece non prepari un esempio un po' più corposo, per capire come
dovrebbe girare la cosa, e lo carichi su www.savefile.com?
--
Spero d'esserti stato d'aiuto.

Ti ringrazio anticipatamente per il riscontro.

Ciao

Franz Verga
Francesco
2006-07-17 09:28:47 UTC
Permalink
Buongiorno anche a te, Franz.
Post by Franz Verga
Perché invece non prepari un esempio un po' più corposo, per capire come
dovrebbe girare la cosa, e lo carichi su www.savefile.com?
Ho caricato il file di prova, privato dei campi inutili su questo link:
http://www.savefile.com/files/6258202 .
I fogli sono nell'ordine foglio1, foglio2, foglio3.
Il campo "valore" sarebbe TC nel foglio2.
Anno1 e anno2 sono start date ed expiration date (foglio1).
Il campo anno di foglio2 si chiama PY.
Grazie mille!!!!
Francesco
fernando cinquegrani
2006-07-17 09:46:15 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Ho caricato il file di prova, privato dei campi inutili su questo
link: http://www.savefile.com/files/6258202 .
I fogli sono nell'ordine foglio1, foglio2, foglio3.
Il campo "valore" sarebbe TC nel foglio2.
Anno1 e anno2 sono start date ed expiration date (foglio1).
Il campo anno di foglio2 si chiama PY.
Grazie mille!!!!
ti rimando il tuo file:
http://www.prodomosua.eu/zips/provafrancesco.xls

principali errori:
- l'anno indicato una volta come stringa e una volta come numero
- alcuni nomi rimandavano a range non corretti
.f
Francesco
2006-07-17 09:59:12 UTC
Permalink
Grazie mille, davvero.
Starò ancora più attento a definire i range nel file definitivo, e
spero di risolvere il problema dell'anno come stringa di testo. Come
hai fatto ad accorgerti che alcuni anni erano stringhe? E come hai
risolto il problema?
Francesco
fernando cinquegrani
2006-07-17 11:29:40 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Grazie mille, davvero.
Starò ancora più attento a definire i range nel file definitivo, e
spero di risolvere il problema dell'anno come stringa di testo. Come
hai fatto ad accorgerti che alcuni anni erano stringhe? E come hai
risolto il problema?
ho modificato la tua formula
=Valore(Destra(...
me ne sono accorto perchè rispondeva FALSO dove
doveva rispondere VERO ed ero abbastanza sicuro che le
mie formule fossero corrette...quindi il problema doveva
essere nei dati :-)
.f
Francesco
2006-07-17 13:18:51 UTC
Permalink
Post by fernando cinquegrani
me ne sono accorto perchè rispondeva FALSO dove
doveva rispondere VERO ed ero abbastanza sicuro che le
mie formule fossero corrette...quindi il problema doveva
essere nei dati :-)
.f
Scusami la domanda ingenua, anch'io quando sono sicuro di qualcosa nel
mio campo e vedo i conti che non tornano tendo a dubitare dei dati
;-))... ma quando uso excel sono molto più umile :-))
Grazie Fernando, e grazie anche a Giovanna e a Franz.
Buona serata!
francesco

P.S. in questo periodo mi trovo a fare ad usare excel in modo
massiccio, scusate se ho postato parecchio... e se magari mi dovesse
capitare di chiedere ancora qualcosina... :-)) Per ora penso di aver
strssato parecchio già Norman, Eliano (ciao!) e te, comunque grazie
ancora.
eliano
2006-07-17 14:55:02 UTC
Permalink
Post by Francesco
P.S. in questo periodo mi trovo a fare ad usare excel in modo
massiccio, scusate se ho postato parecchio... e se magari mi dovesse
capitare di chiedere ancora qualcosina... :-)) Per ora penso di aver
strssato parecchio già Norman, Eliano (ciao!) e te, comunque grazie
ancora.
Nessun problema per quanto mi riguarda, Francesco.
"Quando i duri entrano in gioco", come dice Fernando, (ciao Fernando,
Giovanna e Franz) preferisco assistere ben defilato.:-))
Eliano

fernando cinquegrani
2006-07-17 09:20:50 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Il tuo link al momento non funziona, ho cercato sul tuo sito ma non ho
saputo trovarlo.
avevo sbagliato directory.
ora va. riprova
http://www.prodomosua.eu/zips/prof.xls
.f
Francesco
2006-07-16 16:44:38 UTC
Permalink
Post by giovanna
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
in A2 - di foglio3 - l'autore.
fa' sapere....
Mi dispiace ma non funziona... Il comando che mi suggerisci è per
risolvere la parte del conteggio, giusto? Il riferimento alla colonna c
del foglio 2 che contiene i valori mi è sembrato un errore. Ho
provato anche con la colonna B, ma non funziona comunque (#num).

Grazie per l'attenzione
francesco
giovanna
2006-07-16 16:58:51 UTC
Permalink
Scriveva Francesco nel
Post by Francesco
Post by giovanna
=MATR.SOMMA.PRODOTTO((Foglio2!$A$2:$A$10=A2)*(Foglio2!$B$2:$B$10>=Foglio1!$B$2)*(Foglio2!$B$2:$B$10<=Foglio1!$C$2+2)*(Foglio2!$C$2:$C$10))
in A2 - di foglio3 - l'autore.
fa' sapere....
Mi dispiace ma non funziona... Il comando che mi suggerisci è per
risolvere la parte del conteggio, giusto?
sì.
Post by Francesco
Il riferimento alla colonna c
del foglio 2 che contiene i valori mi è sembrato un errore.
non capisco, la col C contiene i valori, è così?


Allora:
la col A del foglio 2 contiene i nomi degli autori? che si possono
ripetere?
la col B del foglio 2 contiene gli anni?
in B2 e C2 del foglio 1 io ho messo gli anni di riferimento (ma forse
è questo che non è molto chiaro. Io ho ipotizzato solo i due valori
anno1 e anno2 presenti una sola volta in foglio1..)
E ancora, non mi è molto chiaro l'elenco autori in foglio 1: si
ripetono in tale foglio? io ho fatto riferimento solo all'elenco in
foglio 2 (l'ho scritto in altro post, sotto.....)
Dimmi tu ora.....
--
ciao
giovanna
..........................................
http://www.riolab.org
..........................................
fernando cinquegrani
2006-07-16 16:12:31 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Il campo valore contiene dei numeri che vorrei sommare.
Le celle che invece vorrei riempire sono nel foglio 3.
a b c
1Francesco/3 righe buone/7+4+5
2Giovanni/2 righe buone/9+18
Le 3 righe buone di Francesco, pescate nel foglio2, hanno nel campo
valore rispettivamente 7,4,5 e così Giovanni.
L'output che desidererei da excel è appunto: 3 righe buone, 16 per
Francesco;2 righe buone, 27 per Giovanni. Che formula posso inserire in
b1,b2,c1,c2 del foglio3?
(giornataccia!)

foglio1
autore/anno1/anno2
foglio2
autore/anno/valore
foglio3
autore/conteggio/somma

in b2 del foglio3 [sotto conteggio], inserisci
=MATR.SOMMA.PRODOTTO(1*(autore1=A2);1*(anno1>=INDICE(anno;CONFRONTA(A2;autore2;0)));1*(anno2<=INDICE(anno;CONFRONTA(A2;autore2;0))+2))

queste sono le ricorrenze pescate *nel foglio1*
che rispettano le condizioni.
le '3 righe buone' del foglio2 sono queste o altre?
.f
Francesco
2006-07-16 16:31:30 UTC
Permalink
Post by fernando cinquegrani
in b2 del foglio3 [sotto conteggio], inserisci
=MATR.SOMMA.PRODOTTO(1*(autore1=A2);1*(anno1>=INDICE(anno;CONFRONTA(A2;autore2;0)));1*(anno2<=INDICE(anno;CONFRONTA(A2;autore2;0))+2))
queste sono le ricorrenze pescate *nel foglio1*
che rispettano le condizioni.
le '3 righe buone' del foglio2 sono queste o altre?
.f
Ti ringrazio fernando, ma proprio non riesco a capire :(
Autore1 e autore2 chi sono? Due variabili? Costanti? E i riferimenti ai
fogli?
Ti chiedo scusa se ti sto rubando del tempo.
La formula comunque non funziona, e davvero non saprei come spiegare
meglio la mia richiesta.
Comunque ti ringrazio ancora, davvero.

francesco
fernando cinquegrani
2006-07-16 16:56:33 UTC
Permalink
[Francesco] scrive in
Post by Francesco
Post by fernando cinquegrani
in b2 del foglio3 [sotto conteggio], inserisci
=MATR.SOMMA.PRODOTTO(1*(autore1=A2);1*(anno1>=INDICE(anno;CONFRONTA(A2;autore2;0)));1*(anno2<=INDICE(anno;CONFRONTA(A2;autore2;0))+2))
queste sono le ricorrenze pescate *nel foglio1*
che rispettano le condizioni.
le '3 righe buone' del foglio2 sono queste o altre?
.f
Ti ringrazio fernando, ma proprio non riesco a capire :(
Autore1 e autore2 chi sono? Due variabili? Costanti? E i riferimenti
ai fogli?
Ti chiedo scusa se ti sto rubando del tempo.
La formula comunque non funziona, e davvero non saprei come spiegare
meglio la mia richiesta.
Comunque ti ringrazio ancora, davvero.
autore1 e autore2
sono nomi definiti [inserisci :: nome :: definisci...]
riferiti rispettivamente al range autore del foglio1
e al range autore del foglio2
anno1 e anno2
sono nomi definiti [inserisci :: nome :: definisci...]
riferiti rispettivamente al range anno1 e anno2 del foglio1
anno
è un nome definito [inserisci :: nome :: definisci...]
riferito al range anno del foglio2.

ma non funziona la logica:
in foglio1 posso (non posso) avere duplicazione di record/condizioni
es.:
francesco 1993 1995
francesco 1997 2001
in foglio2 posso (non posso) avere duplicazioni
es:
francesco 1994
francesco 1998
ciascuna di queste ricorrenze del foglio2 può essere vera o falsa
è vera se ...
è falsa se ...
io non riesco a completare questo ragionamento.
.f
Francesco
2006-07-16 17:26:57 UTC
Permalink
Post by fernando cinquegrani
autore1 e autore2
sono nomi definiti [inserisci :: nome :: definisci...]
riferiti rispettivamente al range autore del foglio1
e al range autore del foglio2
anno1 e anno2
sono nomi definiti [inserisci :: nome :: definisci...]
riferiti rispettivamente al range anno1 e anno2 del foglio1
anno
è un nome definito [inserisci :: nome :: definisci...]
riferito al range anno del foglio2.
Scusami, non avevo mai sentito parlare di "nome definito", e non so a
cosa serve questa pratica. Per questo non capivo...
Post by fernando cinquegrani
in foglio1 posso (non posso) avere duplicazione di record/condizioni
francesco 1993 1995
francesco 1997 2001
Bene, gli anni buoni sono dal 1993 al 2003.
Infatti la prima riga mi fa capire che (PER FRANCESCO) vanno
considerati gli anni 1993-1997.
La riga 2 mi dice di prendere dal 1997 al 2003.
Che l'anno 1997 compare due volte non mi interessa.
Post by fernando cinquegrani
in foglio2 posso (non posso) avere duplicazioni
francesco 1994
francesco 1998
ciascuna di queste ricorrenze del foglio2 può essere vera o falsa
è vera se ...
è falsa se ...
io non riesco a completare questo ragionamento.
Sono vere entrambe; la prima è vera se c'è almeno una riga nel foglio
uno in cui 94 è compreso tra anno1 e anno2+2. Questa riga c'è ed è
la prima. 1993<1994<1995+2.
La seconda va anch'essa conteggiata perchè 1998 è un anno che
soddisfa il requisito di essere compreso tra anno1 e anno2+2 nella
seconda riga.
Se ci fosse stato francesco 1997 c'erano ben due motivi per prenderla,
ma non importa: va presa come una volta sola come le altre 2.
Ciao
Francesco
Continua a leggere su narkive:
Loading...