COUNTIF enveloppé en SUM (avec des crochets utilisés mais PAS une formule de tableau) – cela fonctionne, mais pourquoi?

(Utilisation de 2007 – ne l'ont pas essayé en 2003).

Disons que vous avez une colonne comme ceci:

A 1 BLAH 2 BLEH 

… et vous voulez faire un COUNTIF qui returnne si BLAH ou BLEH est dans la cellule.

Donc, si vous mettez =COUNTIF(A1,{"BLAH","BLEH"}) dans B1 il return 1 . Mais si vous mettez =COUNTIF(A2,{"BLAH","BLEH"}) en B2 il return 0 .

TOUTEFOIS —

Si vous mettez =SUM(COUNTIF(A1,{"BLAH","BLEH"})) dans B1 il return 1 , et; si vous mettez =SUM(COUNTIF(A2,{"BLAH","BLEH"})) dans B2 il return 1 magiquement return 1 !

J'ai regardé étape par étape en utilisant Evaluate Formula, et lorsque vous utilisez SUM en tant que wrapper, cela montre que {"BLAH","BLEH"} fonctionnent comme un tableau. Est-ce la key? Est-ce parce que SUM reconnaît les arrays alors que COUNTIF ne le fait pas?

Je suppose que c'est le cas – mais je dois dire que la documentation entourant l'utilisation de crochets et de arrays en général (en dehors des formules de masortingces réelles) est assez rare.

Est-ce que quelqu'un peut éclairer les fonctions avec lesquelles les arrays peuvent être utilisés?

Merci d'avance.

COUNTIF(A2,{"BLAH","BLEH"}) renvoie un tableau contenant le résultat pour chaque valeur. Donc, si vous entrez une formule de tableau dans B2: C2: =SUM(COUNTIF(A2,{"BLAH","BLEH"})) vous obtiendrez un 0 et un 1.

Lorsque vous appliquez la fonction SUM au tableau résultant, vous obtenez la sum (type attendu!), 1.

Notez que vous pouvez également utiliser =COUNTIF(A2, "BLAH") + COUNTIF("BLEH") pour get le résultat souhaité et si vous avez plusieurs valeurs, vous pouvez également utiliser un vlookup, quelque chose comme: IF(ISERROR(VLOOKUP(A2,rangeWithAllowedValues,1,false)),0,1)