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?

Axxess
la source

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])
Jerry
la source
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])

Raystafarian
la source
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