Сопоставление с Excel, если оператор вычисляется неправильно

#excel #excel-formula

#excel #excel-формула

Вопрос:

У меня есть два столбца в следующей структуре

      A    B
1    49   4922039670
  

Я смог оценить =LEN(A1) как 2 , =LEFT(B1,2) как 49 и =LEFT(B1,LEN(A1)) как 49 . Однако, когда я пытаюсь оценить, =IF(LEFT(B1,LEN(A1))=A1,TRUE,FALSE) он оценивает FALSE . Я понятия не имею, почему. Я попытался изменить оба столбца A и B на разные форматы сопоставления, но он по-прежнему просто вычисляется FALSE .

Не совсем уверен, что я делаю неправильно.

Комментарии:

1. Самым простым решением для предоставленного случая является =IF(LEFT(B1,LEN(A1))*1=A1,TRUE,FALSE) .

Ответ №1:

возможно, это зависит от версии, но в моем Excel вы неявно указываете свой номер 4922… в строку и 49 <> ’49’

Либо вы создаете обе строки, либо оба числа, например.:

 =IF(LEFT(B1,LEN(A1))=""amp;A1,TRUE,FALSE)
  

""amp;<a number> объединяет пустую строку с числом, результатом будет строка
вы могли бы использовать функцию « TEXT » или — если вы уверены, что оба являются числами — используйте ‘ VALUE

 =IF(VALUE(LEFT(B1,LEN(A1)))=A1,TRUE,FALSE)
  

чтобы текст был более стабильным

Ответ №2:

Сравнение строки (что LEFT дает вам) с целым числом будет FALSE

 =LEFT(B1,LEN(A1))=49  //FALSE
  

Вы хотите

 =LEFT(B1,LEN(A1))="49"  //TRUE
  

Итак:

 =LEFT(B1,LEN(A1))=TEXT(A1, "0")
  

Или:

 =EXACT(LEFT(B1,LEN(A1)),A1)