1

Я использую эту формулу, чтобы получить значение из таблицы

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

где С11 = 12354567

Но когда я использую

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

где C11 = 12345678, формула не работает.

Оценивая формулу, я обнаружил, что LEFT добавляет двойные кавычки, делая формулу как это:

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

Как подойти к этой проблеме?

2 ответа2

3

Вам нужно преобразовать текст обратно в число. Вы можете сделать это путем умножения на 1 или добавления 0 (или вычитания 0, или деления на 1, а также любой арифметической операции, которая не меняет конечное значение):

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

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

Текстовые операции (например, LEFT , MID , RIGHT и т.д.) Возвращают текстовые значения, а не числовые.

Более «формальным» способом было бы использовать VALUE:

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

Left возвращается строка, которую, я полагаю, сравнивают с числами. Это не удастся. Вам нужно изменить его на число с чем-то вроде Int(Left(C11)) или Value(Left(C11)) .

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

или же

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .