(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)