› Excel e gli applicativi Microsoft Office › EXCEL 365 – ContaPiùSe+Sinistra+Indiretto
-
AutoreArticoli
-
Ciao,
ho un file excel sul quale vorrei fare un conteggio di quante celle di una colonna contengano un valore che inizi per, ma non riesco a concatenare in modo corretto le funzioni conta più se con indiretto e sinistra
non posso allegare il file, ma provo a riassumere la situazione
Foglio 1 (chiamato pippo)
Cella B1 contiene il valore 01.01
Cella B2 contiene il valore 01.02
Cella B3 contiene il valore 02.01
Cella B4 contiene il valore 03.01
Cella B5 contiene il valore 01.03
Foglio 2
cella A11 ho indicato il nome del foglio 1 (pippo)
cella B11 ho indicato il valore da ricercare Es. '01
quindi quello che voglio è che mi vengano contate tutte quelle celle che iniziano con 01
fino al conteggio con valore esatto riesco a farlo
=CONTA.PIÙ.SE(INDIRETTO("'"&B11&"'!B:B");"01")
Ciao io userei un matrice somma prodotto invece di una Conta.più.se
=MATR.SOMMA.PRODOTTO(--(SINISTRA(INDIRETTO(A11&"!B:B");LUNGHEZZA(B11))=B11))
Ti dà più elasticità
Ciao
Luca
Grazie Luca, provo e ti\vi faccio sapere al più presto, non ho mai usato questa funzione, ci studio un po' su.
ancora grazie
Giusto per Darti una idea:
MATR.SOMMA.PRODOTTO riceve in imput dei vettori verticali (tutti della sstessa lunghezza), la formula moltiplica tra loro le stesse posizioni dei vari vettori e poi somma i risultati
Esempio
Vettore 1
1
2
3
Vettore 2
4
5
6
Vettore 3
7
8
9
La formula MATR.SOMMA.PRODOTTO(Vettore1; Vettore2; Vettore3 ) farà (1*4*7)+(2*5*8)+(3*6*9)
Ora, spesso, viene usata creando dei vettori di 1 e di 0 (ovvero le condizioni) i valori di 1 e di 0 si creano generando una variabile booleana (nel nostro caso si confronta la parte di sinistra di una strimga con un altra stringa) e quindi ottengo un vettore di Vero/Falso. Per trasformare da Vero/Falso A 1/o si forza Excel a fare una operazione matematica. La più semplice è il cambio segno (ovvero mettere un - prima) per ovviare al problema di avere valori negativi si antepone un secondo -
Pertanto --Verro=1; --Falso =0
Ciao
Luca
Ho provato e così in effetti sembra funzionare, ovviamente la mia funzione era un po' più complessa rispetto a quella che ho postato sopra, ma ho integrato la tua soluzione e funziona, adesso devo solo testarla per vedere se ha problemi non previsti
Grazie ancora
Ciao a tutti (non sò quale versione usi)
Stavo guardando =CONTA.PIÙ.SE(INDIRETTO("'"&B11&"'!B:B");"01")Con Indiretto, non si mette ' davanti al foglio e alla fine
B11 ??? mà non era in cella A11?
=CONTA.PIÙ.SE(INDIRETTO(A11&"!B:B");"01")
Perchè scrivi "01", hai detto che è in B11
=CONTA.PIÙ.SE(INDIRETTO(A11&"!B:B");B11)
Per finire manca un "*"
=CONTA.PIÙ.SE(INDIRETTO(A11&"!B:B");B11&"*")
=CONTA.SE(INDIRETTO(A11&"!B:B");B11&"*")Raffaele giusto per risponderti, visto che il dubbio è lecito
la formula ha gli apici anche davanti al B11 perché in realtà viene costruita da codice VBA e per poterla far andare in passato ero stato costretto a mettere gli apici (non sono un programmatore e vado a tentativi) e probabilmente poi nella cella questi rimangono.
l'asterisco che dici mancare ammetto che non so a cosa serva, però se me lo spieghi imparo qualche cosa di nuovo.
>>>> poi nella cella questi rimangono. Non credo proprio, casomai ricontrolla il codice VBA
Io sò che nelle formule appare "APICE" quando ci riferiamo ad un'altro files sul Hard-disk, in questo caso usando Indiretto bisogna mettere l'apice.
A riguardo l'asterisco (significa tutto), pertanto stai cercando tutti quelli che iniziano con 01..... e la formula conterà sia 01a... + 01b... + 01c... ecc ecc -
AutoreArticoli
