Recherchez dans une plage une chaîne - vérifiez si la chaîne de la cellule à côté des correspondances


0

Le titre est un peu bizarre je l'avoue.

D'accord:

  • Les cellules B: B contiennent un seul caractère
  • Les cellules C: C contiennent des chaînes
  • Les cellules D: D contiennent un seul caractère
  • Les cellules E: E contiennent des chaînes

La cellule F1 veut renvoyer "OUI" si elle peut trouver une cellule dans C: C qui correspond à la valeur de E1, qui contient également la valeur de D1 dans B: B à côté.

Exemple:

  • La cellule B1 contient "E"
  • La cellule C1 contient "Alpha"
  • La cellule D1 contient "F"
  • La cellule E1 contient "Alpha"

F1 retourne "".

Si vous ajoutez:

  • La cellule B2 contient "F"
  • La cellule C2 contient "Alpha"

F1 renvoie "OUI".

Le problème que j'ai est d'avoir la formule vérifier la valeur d'une cellule par rapport à une autre cellule.

Idéalement j'essaierais:

=IF((ISNA(MATCH(E2, C:C, ))), "YES", "")

mais je veux aussi qu'il vérifie une cellule supplémentaire pour une valeur supplémentaire qui me fait mal au cerveau.


Êtes-vous incapable d'utiliser deux colonnes auxiliaires dans lesquelles effectuer d'abord des concaténations des chaînes dans les colonnes B et C ainsi que dans les colonnes D et E? Ce serait de loin la méthode la plus efficace. Si, pour une raison quelconque, vous ne pouvez pas (ou ne voulez pas) faire cela, vous aurez besoin d’une formule matricielle qui augmentera considérablement le temps de calcul, en particulier si le nombre de lignes dans lesquelles la recherche doit être effectuée est assez grand.
XOR LX

Réponses:


0

Vérifiez si cela fonctionne pour vous. Entrez la formule dans la cellule F1

{=IF(SUM((D1=B:B)*(D1<>0)*(E1=C:C)*(E1<>0))>0,"YES","")}

Laissez les accolades dehors et entrez la fonction avec Ctrl+ Shift+ Enter. Toutefois, comme XOR LX mentionné ci-dessus, il s’agit d’une formule matricielle dont l’évaluation prendra plus de temps. Je suggère de ne pas utiliser des références de colonne entières. Vous trouverez ci-dessous un exemple qui fonctionnera si vous avez jusqu'à 1 000 colonnes de données, ce qui sera beaucoup plus rapide.

{=IF(SUM((D1=$B$1:$B$1000)*(D1<>0)*(E1=$C$1:$C$1000)*(E1<>0))>0,"YES","")}

Toutes mes excuses, j'ai apporté plusieurs modifications à la formule. Il devrait maintenant fonctionner
CallumDA

Parfait, merci! Je m'excuse mais que fait le "<>"?
xzenocrimzie

D1<>0signifie que D1 n'est pas égal à zéro. Mathématiquement, vous acceptez des nombres supérieurs à (<) ou inférieurs à (>) zéro. Par conséquent, par déduction, vous acceptez toutes les valeurs non égales à 0. J'ai inclus ceci afin que la formule ne corresponde pas aux cellules vides
CallumDA
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.