#excel #excel-formula
#excel #excel-формула
Вопрос:
Данная формула работает, как и ожидалось, для десятичных чисел, т. Е. Если мои входные данные равны 8,3 (8 футов 3 дюйма), то приведенная ниже формула работает, но она не работает для десятичных чисел.Например:Если мои входные данные равны только 4 или даже 4.0, то появляется ошибка ЗНАЧЕНИЯ. Какие изменения следует внести в формулу, чтобы она работала и для десятичных чисел.
=(LEFT(B5,FIND(".",B5)-1)*12 SUBSTITUTE(MID(B5,FIND(".",B5) 1,LEN(B5)),"""",""))/39.3701
Комментарии:
1. Можете ли вы показать нам пример вашего ввода, пожалуйста — это выглядит так, как будто в конце у него есть символ дюйма, например, 8,3″? Также 3 в 8.3 определенно означает 3 » (таким образом, 8.11 будет означать 8 футов и 11 дюймов)?
2. Ваши данные могут быть неоднозначными. If
8.3
=8 ft 3 in
как бы вы отличили8 ft 1 in
от8 ft 10 in
? Вы всегда вводите данные в виде текстовой строки? Или вы вводите это как число. Если последнее, вам нужно будет ввести8.03
.3. @RonRosenfeld об этом не подумал. Вы правы.
8.1
и8.10
выдает то же значение. Как это можно решить? Также есть ли обходной путь в формуле, который8.3
работает вместо ввода8.03
.4. @Вы могли бы убедиться, что все числа вводятся в виде текстовых строк, а затем выполнить некоторый сложный синтаксический анализ с помощью текстовых функций; или разрешить вводить однозначные дюймы с начальным нулем. Тогда преобразование становится проще.
5. @TomSharpe Да, 8.11 означает (8 футов и 11 дюймов). Дюйм указан в формуле, и формула отлично работает с ним или без него. Основное отличие, которое я только что обнаружил, заключается в том, что если я сохраняю дюйм в конце, то
8.1
и8.10
дает точные результаты. Если символ дюйма не включен, то8.1
и8.10
выдает аналогичные результаты. Без включения символа дюйма во входных данных, как можно получить ответы с помощью формулы?
Ответ №1:
Если вы вводите значения в виде чисел и ставите начальный ноль перед однозначными дюймами (например, 8.03), то формула для преобразования в метры:
=CONVERT(DOLLARDE(B5,12),"ft","m")
Если вы вводите их в виде текстовых строк (и без "
знака), вы можете использовать:
=MAX(IF((LEN(B7) - FIND(".",B7amp;"."))={-1,2}, CONVERT(DOLLARDE(B7,12),"ft","m")),IFERROR(CONVERT(DOLLARDE(INT(B7) amp;".0" amp; MID(B7,FIND(".",B7) 1,1),12),"ft","m"),0))
Насколько мне известно, нет метода, который вы можете ввести 8.1
как число и чтобы Excel знал, имеете ли вы в виду 8 ft 1 in
или 8 ft 10 in