fabio gatti formulated the question :
> scusa ma in un primo momento, sul mio file completo di tutti i dati (non
> quello che ho postato come esempio) mi era parso che la prima formula
> funzionasse... e non ho verificato bene ciò che mi hai chiesto. In effetti
> avevi pienamente ragione scusa.....
>
> Invece, tanto per cercare di imparare qualcosa dalla soluzione definitiva di
> Paola, per favore mi spiegate che significa il doppio simbolo "--" nella
> formula che riporto sotto, magari è una banalità ma sono un principiante e
> vorrei capire.... ancora grazie e scusate se ho fatto un po di cav....
>
> =SOMMA(--(FREQUENZA(SE(C2=B2:B8;A2:A8);SE(C2=B2:B8;A2:A8))>0))
Provo con un esempio:
Supponi di avere in H1:H4 i valori A B C A e di voler
determinare quante volte appare A.
In una cella qualunque scrici =(H1:H4="A") ottieni l'errore #VALUE!.
Se premi F2, F9 in sequenza vedi sulla riga della formula:
={TRUE;FALSE;FALSE;TRUE}. Premi ESC per annullare F2, F9.
Ora modifica la formula in: =--(H1:H4="A") ed esamina il contenuto
con F2, F9... le cose son cambiate in ={1;0;0;1}. Premi ESC.
Ora queste ultime quantità possono essere manipolate matematicamente:
per esempio {=SUM(--(H1:H4="A"))} FormulaArray ovvero
=SUMPRODUCT(--(H1:H4="A")), etc.
L'operatore -- è detto Unario, e serve a far intendere ad Excel, quando
non vi riesca per virtù propria, che i valori che seguono (valori
booleani) debbono essere convertiti in valori numerici sui quali sia
possibile eseguire manipolazioni matematiche.
Tutte queste elucubrazioni non sono necessarie in VBA perché lì i
valori FALSE e TRUE sono già resi in termini numerici 0, -1.
Io seguo una regola empirica: quando non ottengo da una formula il
risultato numerico che sto cercando provo a inserire, anche per
tentativi, l'operastore --, etc.
Bruno