Почему эксель меняет последние цифры на нули
Перейти к содержимому

Почему эксель меняет последние цифры на нули

  • автор:

Почему эксель меняет последние цифры на нули

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Длинные числа отображаются неправильно в Excel

Пример длинного числа, которое неправильно отображается в Excel.

Числовой формат по умолчанию в Excel является общим, поэтому вы можете отображать до 11 цифр в ячейке.

Обходной путь

Для решения проблемы используйте один из указанных ниже способов.

Способ 1. Форматирование ячейки как текста

Для этого выполните следующие действия:

  1. Щелкните правой кнопкой мыши поле со списком и выберите пункт Формат ячеек. Отформатируйте ячейку как текст, выбрав параметр «Формат ячеек».
  2. На вкладке Число выберите Текст, а затем нажмите ОК. Выберите «Текстовый» на вкладке «Числовые форматы» в диалоговом окне «Формат ячеек».
  3. Затем введите длинное число. (Не забудьте установить формат ячейки, прежде чем ввести число) Введите длинное число.
  4. Если вы не хотите видеть предупреждающие стрелки, нажмите на маленькую стрелку, а затем Пропустить ошибку. Выберите «Пропустить ошибку», если вы не хотите видеть предупреждающие стрелки.Результат, возвращаемый методом 1.

Способ 2. Использование одинарной кавычки

При вводе длинного числа сначала введите одинарную кавычку () в ячейке, а затем длинное число.

Например, введите ‘1234567890123456789, и одинарная кавычка не будет отображаться после нажатия ENTER.

Перед вводом длинного числа добавьте одинарную кавычку.

Связанные статьи

Ваше мнение важно для нас! Не стесняйтесь сообщать, что вы думаете об этой статье, используя поле комментария, расположенное внизу документа. Это позволит нам улучшить содержимое. Заранее спасибо!

Последние цифры заменяются на ноли при введении длинных чисел в ячейки Excel

При введении числа, содержащего более 15 цифр в ячейку в Microsoft Excel, Excel заменяет любые цифры после пятнадцатого разряда на ноли. Например, введите идентификационный номер кредитной карты в следующем формате:

В этом случае Excel заменяет последнюю цифру на ноль.

Причина

Excel следует спецификации IEEE 754 в отношении хранения и вычисления чисел с плавающей точкой. Excel сохраняет только 15 значащих цифр числа и изменяет цифры после пятнадцатого разряда на ноль

Обходной путь

Добавить кавычку

Чтобы предотвратить изменение цифр на ноли, добавьте одинарную кавычку перед вводом числа.

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

Введите одинарную кавычку и введите число.

Формат ячеек

Чтобы не вводить кавычку в каждой ячейке, перед вводом каких-либо данных можно задать для этих ячеек текстовый формат.

Выберите «Текстовый» на вкладке «Числовые форматы» в диалоговом окне «Формат ячеек».

  1. Выберите все затронутые ячейки и нажмите Ctrl+1, чтобы открыть диалоговое окно Формат ячеек.
  2. На вкладке Число выберите Текст из списка Категория, а затем выберите ОК.

Дополнительная информация

Это происходит только в том случае, если для ячейки задан формат Число, а введенное число содержит более 15 цифр. В форматированные в виде текста ячейки можно ввести до 32 767 символов. На листе Excel отображается до 1024 символов.

Так как настраиваемые форматы чисел предназначены для работы в основном с числами, невозможно создать настраиваемый формат номеров, который хранит более 15 цифр. Например, нельзя использовать следующий формат для хранения 16-символьного удостоверения кредитной карты в виде числа:

Однако, если ввести такое число в ячейке, которая форматирована как текст, все символы остаются в том виде, в котором они введены, так как Excel сохраняет это число в виде текста, а не числа.

Требуется дополнительная помощь? Зайдите на сайт сообщества Майкрософт.

Исправление чисел, превратившихся в даты

Испорченные данные

При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема — дробные числа превращаются в даты:
Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью — точка), а в Excel у вас российские настройки (где между целой и дробной частью — запятая, а точка используется как разделитель в дате).
При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике — если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату — оно будет конвертировано в дату. Всё, что на дату не похоже — останется текстом. Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:

  • В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
  • В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года — самая ранняя дата, с которой может работать Excel — 1 января 1900 г.
  • А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:

Неправильная дата

Еще одна неправильная дата

Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel — количество дней от 01.01.1900 до текущей даты:

Неправильное число после изменения формата

Лечится вся эта история тремя принципиально разными способами.

Способ 1. Заранее в настройках

Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл — Параметры — Дополнительно (File — Options — Advanced) :

Настройка разделителей в окне параметров Excel

Снимаем флажок Использовать системные разделители (Use system separators) и вводим точку в поле Разделитель целой и дробной части (Decimal separator) .

После этого можно смело импортировать данные — проблем не будет.

Способ 2. Формулой

Если данные уже загружены, то для получения исходных чисел из поврежденной дата-тексто-числовой каши можно использовать простую формулу:

Формула исправления чисел из дат

=—ЕСЛИ( ЯЧЕЙКА(«формат»;A1)=»G» ; ПОДСТАВИТЬ(A1;».»;»,») ; ТЕКСТ(A1;»М,ГГГГ») )

В английской версии это будет:

=—IF (CELL («format «;A1)=»G»; SUBSTITUTE (A1;».»;»,»); TEXT (A1;»M ,YYYY «))

Логика здесь простая:

  • Функция ЯЧЕЙКА (CELL) определяет числовой формат исходной ячейки и выдаёт в качестве результата «G» для текста/чисел или «D3» для дат.
  • Если в исходной ячейке текст, то выполняем замену точки на запятую с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) .
  • Если в исходной ячейке дата, то выводим её в формате «номер месяца — запятая — номер года» с помощью функции ТЕКСТ (TEXT) .
  • Чтобы преобразовать получившееся текстовое значение в полноценное число — выполняем бессмысленную математическую операцию — добавляем два знака минус перед формулой, имитируя двойное умножение на -1.

Способ 3. Макросом

Если подобную процедуру лечения испорченных чисел приходится выполнять часто, то имеет смысл автоматизировать процесс макросом. Для этого жмём сочетание клавиш Alt + F11 или кнопку Visual Basic на вкладке Разработчик (Developer) , вставляем в нашу книгу новый пустой модуль через меню Insert — Module и копируем туда такой код:

Sub Fix_Numbers_From_Dates() Dim num As Double, cell As Range For Each cell In Selection If Not IsEmpty(cell) Then If cell.NumberFormat = "General" Then num = CDbl(Replace(cell, ".", ",")) Else num = CDbl(Format(cell, "m,yyyy")) End If cell.Clear cell.Value = num End If Next cell End Sub

Останется выделить проблемные ячейки и запустить созданный макрос сочетанием клавиш Alt + F8 или через команду Макросы на вкладке Разработчик (Developer — Macros) . Все испорченные числа будут немедленно исправлены.

Ссылки по теме

  • Как Excel на самом деле работает с датами и временем
  • Замена текста функцией ПОДСТАВИТЬ
  • Функция ВПР и числа-как-текст

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *