Функция Excel LEN () возвращает 5 для чисел длиннее 20 символов - PullRequest
2 голосов
/ 08 октября 2019

Когда у меня числа длиннее 20 символов, функция LEN () в Excel возвращает 5.

Я пробовал это на своем рабочем столе и на мобильном телефоне и получал тот же результат.

Когда я использую «Формула оценки», она показывает, что она идет от «LEN (100000000000000000000)» (20 нулей) до «5».

В случае 21 нуля оно форматирует число как научное, поэтому оно переходит от "LEN (1E + 21)" к "5".

Так что я предполагаю, что в 21 магазине Excel превосходно хранитсячисла с научной нотацией и LEN () вычисляет длину этого.

Аномалия ровно 20 нулей, все еще показывающих как «100000000000000000000» в «Формула оценки», является просто странным случаем?

Есть ли способ заставить функцию LEN () работать с длинными числами или есть альтернативная формула, которую я должен использовать?

Ниже приведена таблица данных, которую я использовал для проверки этого.

<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>Input</th><th>Len output</th><th>formula</th><th>input formatting</th><th>actual length (dp is just formatting not actually part of the number)</th></tr></thead><tbody>
 <tr><td>10000000000000000000.0</td><td>20</td><td>=len(A2)</td><td>number 1dp </td><td>20</td></tr>
 <tr><td>1000000000000000000000</td><td>5</td><td>=len(A3)</td><td>number no dp</td><td>22</td></tr>
 <tr><td>10000000000000000000</td><td>20</td><td>=len(A4)</td><td>Text</td><td>20</td></tr>
 <tr><td>100000000000000000000</td><td>21</td><td>=len(A5)</td><td>Text</td><td>21</td></tr>
 <tr><td>100000000000000000000.0</td><td>5</td><td>=len(A6)</td><td>number 1dp </td><td>21</td></tr>
 <tr><td>100000000000000000000.00</td><td>5</td><td>=len(A7)</td><td>number 2dp</td><td>21</td></tr>
 <tr><td>10000000000000000000.00</td><td>20</td><td>=len(A8)</td><td>number 2dp</td><td>20</td></tr>
 <tr><td>1E+19</td><td>20</td><td>=len(A9)</td><td>scientific</td><td>20</td></tr>
 <tr><td>1E+20</td><td>5</td><td>=len(A10)</td><td>scientific</td><td>21</td></tr>
</tbody></table>

1 Ответ

3 голосов
/ 08 октября 2019

Вы можете преобразовать число в текст, прежде чем принимать LEN()

=LEN(TEXT(A1,"#")) 
...