Excel Lookup ajoute des guillemets doubles à la chaîne


1

J'utilise cette formule pour obtenir de la valeur sous forme de tableau

=LOOKUP(C11;Alias[A];Alias[B])

où C11 = 12354567

Mais quand j'utilise

=LOOKUP(LEFT(C11,7);Alias[A];Alias[B])

où C11 = 12345678, la formule ne fonctionne pas.

La formule d'évaluation que j'ai découverte LEFTajoute des guillemets doubles. La formule est la suivante:

=LOOKUP("1234567";Alias[A];Alias[B])

Comment aborder ce problème?

Réponses:


3

Vous devez reconvertir le texte en nombre. Vous pouvez le faire en multipliant par 1 ou en ajoutant 0 (ou en soustrayant 0 ou en divisant par 1, ainsi que toute opération arithmétique qui ne modifie pas la valeur finale):

=LOOKUP(LEFT(C11,7)*1;Alias[A];Alias[B])

=LOOKUP(LEFT(C11,7)+0;Alias[A];Alias[B])

Opérations de texte (comme LEFT, MID, RIGHT, etc.) valeurs de texte de déclaration , et non les numériques.

Une façon plus «formelle» serait d'utiliser VALUE:

=LOOKUP(VALUE(LEFT(C11,7));Alias[A];Alias[B])

2

Leftrenvoie une chaîne qui, je suppose, est comparée à des nombres. Cela va échouer. Vous devez le changer en nombre avec quelque chose comme Int(Left(C11))ou Value(Left(C11)).

=LOOKUP(INT(LEFT(C11,7));Alias[A];Alias[B])

ou

=LOOKUP(VALUE(LEFT(C11,7));Alias[A];Alias[B])


1
+1 pour la valeur, mais j'éviterais int, car dans ce cas, cela fonctionne, mais si le texte devait être différent (par exemple int(left(2.345,3)), renverrait 2 au lieu de 2,3.
Jerry

1
@Jerry Je suis d'accord, j'aurais dû mentionner que l'utilisation intavec des entiers. Parfois j'oublie les choses simples.
Raystafarian
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.