(B3:B38>=$G$5)*(B3:B38<=$H$5)>0
En fait, on utilise le fait que la valeur booléenne VRAI est transformée en 1 quand elle est embarquée dans une opération arithmétique (et FAUX est transformé en 0).
Donc quand on veut vérifier que deux conditions sont toutes les deux vérifiées, on fait le produit des résultats des 2 conditions. Si une condition n'est pas vérifiée, alors elle renvoie FAUX (0) et donc le produit est nul. Idem si les deux conditions sont fausses. Le seul cas où se produit n'est pas nul, c'est le cas où les deux conditions sont vérifiées. Dans ce dernier cas, chacune des conditions renvoie VRAI et le produit vaut 1. Donc (A1=11) * (A1=22) vaut 1 que si les deux termes sont VRAI. Dans tous les autres cas, le produit vaut 0.
On peut donc "assimiler" le produit à un AND (ET).
Si on recherche les cas où une seule condition est vrai ou bien les deux, on utilisera le plus (+) :
(A1=11) + (A1=22). Si une des deux condition est VRAI, la somme vaudra 1, si les deux conditions sont VRAI, la somme vaudra 2. Donc ( (A1=11) + (A1=22) ) >0 correspond à un OR (OU).
On peut donc "assimiler" la somme à un OR (OU).
Ça peut être très pratique dans une formule matricielle car dans les formules matricielles le ET et le OU sont inopérants sur la plage de calcul. En effet ET(A1:A2 ; B1;B2) ne renvoie pas une matrice mais simplement le résultat de ET(A1;B1) soit une valeur unique.
Alors que le produit (A1:A2=11) * (B1:B2=22) renvoie bien une matrice à deux éléments :
{ (A1 =11) * ( B1=22) ;
(A2 =11) * ( B2=22) }