Исправление чисел, превратившихся в даты
При импорте в Excel данных из внешних программ, иногда возникает весьма неприятная проблема — дробные числа превращаются в даты:
Так обычно происходит, если региональные настройки внешней программы не совпадают с региональными настройками Windows и Excel. Например, вы загружаете данные с американского сайта или европейской учётной системы (где между целой и дробной частью — точка), а в Excel у вас российские настройки (где между целой и дробной частью — запятая, а точка используется как разделитель в дате).
При импорте Excel, как положено, пытается распознать тип входных данных и следует простой логике — если что-то содержит точку (т.е. российский разделитель дат) и похоже на дату — оно будет конвертировано в дату. Всё, что на дату не похоже — останется текстом.
Давайте рассмотрим все возможные сценарии на примере испорченных данных на картинке выше:
- В ячейке A1 исходное число 153.4182 осталось текстом, т.к. на дату совсем не похоже (не бывает 153-го месяца)
- В ячейке A2 число 5.1067 тоже осталось текстом, т.к. в Excel не может быть даты мая 1067 года — самая ранняя дата, с которой может работать Excel — 1 января 1900 г.
- А вот в ячейке А3 изначально было число 5.1987, которое на дату как раз очень похоже, поэтому Excel превратил его в 1 мая 1987, услужливо добавив единичку в качестве дня:
- То же самое случилось и в ячейке А4, где изначально было число 12.6923. Причем 6923-й год Excel тут нисколько не смутил — для него главное, чтобы дата была не раньше 1900 года. Так что добро пожаловать в далекое будущее:
- Единственное, что распознаётся корректно — это числа без дробной части (число 1000 в ячейке А6). И на том спасибо
Вот такие варианты. И если текстовые числа ещё можно вылечить банальной заменой точки на запятую, то с числами превратившимися в даты такой номер уже не пройдет. А попытка поменять их формат на числовой выведет нам уже не исходные значения, а внутренние коды дат Excel — количество дней от 01.01.1900 до текущей даты:
Лечится вся эта история тремя принципиально разными способами.
Способ 1. Заранее в настройках
Если данные ещё не загружены, то можно заранее установить точку в качестве разделителя целой и дробной части через Файл — Параметры — Дополнительно (File — Options — Advanced):
Снимаем флажок Использовать системные разделители (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 на самом деле работает с датами и временем
- Замена текста функцией ПОДСТАВИТЬ
- Функция ВПР и числа-как-текст
Excel для Microsoft 365 Excel для Интернета Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше
Microsoft Excel предварительно программируется, чтобы упростить ввод дат. Например, 12/2 изменяется на 2-дек. Это очень неприятно, если вы вводите что-то, что не хотите менять на дату. К сожалению, отключить эту возможность не получится. Однако существует несколько способов обойти это.
Предформатация ячеек, в которые нужно ввести числа, в виде текста. В этом случае Excel не будет пытаться изменить то, что вы вводите в даты.
Если нужно ввести всего несколько чисел, можно сделать так, чтобы Excel не превнося их в даты, введите:
-
Пробел перед вводом числа. После нажатия ввод пробел останется в ячейке. (См. заметки)
-
Апостроф (‘) перед вводом числа, например ’11-53 или ‘1/47. Апостроф не отображается в ячейке после нажатия ввода.
-
Нуль и пробел перед вводом дроби, например 1/2 или 3/4, чтобы они не менялись, например, на 2-янв или 4-мар. Введите 0 0 1/2 или 0 3/4. Ноль не остается в ячейке после нажатия ввод, и ячейка становится типом дробного числа.
-
Выйдите из ячеек, в которые нужно ввести числа.
-
Нажмите клавиши CTRL+1 (1 в строке чисел над клавишами QWERTY), чтобы открыть формат ячеек.
-
Выберите тексти нажмите кнопку ОК.
-
Выберите ячейки, в которые необходимо ввести числа.
-
Щелкните Главная > Числовой формат > Текст.
Примечания:
-
Рекомендуется использовать апостроф вместо пробела для ввода данных, если вы планируете использовать функции подменю для данных. Такие функции, как ПОИСКПОЗ и ВПР, не учитывают апострофы при вычислении результатов.
-
Если число в ячейке выровнено по левому краю, обычно это означает, что оно не отформатировано как число.
-
При введении в ячейку числа с буквой «е», например 1e9, оно автоматически преобразуется в научное число: 1,00E+09. Чтобы избежать этого, введите перед числом апостроф: ‘1e9
-
В зависимости от введенного числа в левом верхнем углу ячейки может появиться маленький зеленый треугольник, указывающий на то, что число хранится как текст ,что для Excel является ошибкой. Не обращайте внимание на треугольник или щелкните его. Слева появится поле. Щелкните поле, а затем выберитеигнорировать ошибку , из-за чего треугольник будет отопуститься.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Нужна дополнительная помощь?
Админю немножко 126 / 115 / 25 Регистрация: 05.01.2009 Сообщений: 889 |
|
1 |
|
Убрать преобразование числа с точкой в дату02.10.2010, 18:07. Показов 86716. Ответов 28
Приветствую. Есть такая проблема. В общем из одной сторонней программы нужно экспортировать данные в эксель. В программе есть спец. функция, все данные переносятся в эксель, НО
0 |
здесь больше нет… 3372 / 1670 / 184 Регистрация: 03.02.2010 Сообщений: 1,219 |
|
02.10.2010, 22:44 |
2 |
если есть возможность в мастере переноса (импорта) задать десятичный разделитель,
1 |
Админю немножко 126 / 115 / 25 Регистрация: 05.01.2009 Сообщений: 889 |
|
03.10.2010, 10:58 [ТС] |
3 |
аналитика, все это я уже пробовал..
0 |
290 / 175 / 3 Регистрация: 01.11.2009 Сообщений: 550 |
|
04.10.2010, 10:33 |
4 |
а в самой программе нельзя вместо точки использовать запятую?
0 |
290 / 175 / 3 Регистрация: 01.11.2009 Сообщений: 550 |
|
04.10.2010, 10:42 |
5 |
кажется я нашел как решить Вашу проблему. в параметрах программы снимите галочку «использовать системные разделители» и поставьте точку вместо запятой. тогда преобразований числа в дату не будет происходить. Миниатюры
3 |
Админю немножко 126 / 115 / 25 Регистрация: 05.01.2009 Сообщений: 889 |
|
04.10.2010, 21:55 [ТС] |
6 |
javvva, ))) проблема в том, что эксель 2003 и разделитель я уже менял.. ничего не помогает))
0 |
290 / 175 / 3 Регистрация: 01.11.2009 Сообщений: 550 |
|
04.10.2010, 22:04 |
7 |
чтож тогда ничем не могу помочь. 2003 уже несколько лет не пользуюсь. и Вам советую менять офис. новое гораздо лучше старого.
0 |
5 / 5 / 0 Регистрация: 10.05.2010 Сообщений: 30 |
|
10.10.2010, 22:52 |
8 |
Доброго времени суток
0 |
290 / 175 / 3 Регистрация: 01.11.2009 Сообщений: 550 |
|
10.10.2010, 23:45 |
9 |
0nega, это ничего не даст. просто поменяете знак и все. тут проблема в другом. внимательней почитайте первый пост
0 |
5 / 5 / 0 Регистрация: 10.05.2010 Сообщений: 30 |
|
11.10.2010, 02:16 |
10 |
В первом посте у автора уже не старте допущены ошибки Добавлено через 1 час 40 минут Добавлено через 18 минут
они вставляются в ячейку как 03.фев и 04.ноя =—(ДЕНЬ(A1)&»,»&МЕСЯЦ(A1))
0 |
290 / 175 / 3 Регистрация: 01.11.2009 Сообщений: 550 |
|
11.10.2010, 06:54 |
11 |
0nega, опять не внимателен. автору и нужно чтоб вставлялось число, а не дата. почитай пятое сообщение. там уже описано как избавится от этого при ручном вводе данных для офиса 2007/2010 как минимум.
0 |
5 / 5 / 0 Регистрация: 10.05.2010 Сообщений: 30 |
|
11.10.2010, 09:44 |
12 |
0nega … уже описано как избавится от этого при ручном вводе данных для офиса 2007/2010 как минимум. от предложенного варианта автор сразу же отказался
javvva, ))) проблема в том, что эксель 2003 …
0nega, опять не внимателен. автору и нужно чтоб вставлялось число, а не дата. Если автору И НУЖНО , тогда зачем весь этот пост ?!
Приветствую. Есть такая проблема. В общем из одной сторонней программы нужно экспортировать данные в эксель. В программе есть спец. функция, все данные переносятся в эксель, НО У него в сторонней программе десятичные числа имеют разделитель точку: 3.2 И НУЖНО из третьего февраля сделать три целых и две десятых (через запятую)
0 |
4 / 4 / 0 Регистрация: 20.06.2011 Сообщений: 15 |
|
29.09.2013, 14:00 |
13 |
в 2003 Excel’е проблему решаю так: выделяю ячейку -> формат -> ячейки -> число -> выбираю «Общий» -> ОК
0 |
0 / 0 / 0 Регистрация: 23.10.2013 Сообщений: 16 |
|
06.12.2013, 08:50 |
14 |
насколько я понял в такой ситуации нужно использовать не точку а запятую т.к excel в формулах при вычислениях распознает или воспринимает только запятую
0 |
0 / 0 / 0 Регистрация: 31.01.2013 Сообщений: 12 |
|
27.05.2014, 21:02 |
15 |
Суть в том — почему он это делает? Если после разделителя две цифры, то он не переводит в дату. Как запретить это действие по умолчанию?
0 |
0 / 0 / 0 Регистрация: 01.07.2015 Сообщений: 1 |
|
01.07.2015, 11:13 |
16 |
Ответ есть здесь. Два вывода: 1. автоматическое преобразование отключить невозможно. 2. нужно заменять все преобразованные значения руками, проставляя перед ними апостроф
0 |
144 / 126 / 50 Регистрация: 25.06.2015 Сообщений: 375 |
|
01.07.2015, 11:28 |
17 |
<cut>
0 |
4038 / 1423 / 394 Регистрация: 07.08.2013 Сообщений: 3,541 |
|
01.07.2015, 11:29 |
18 |
прогнать макросом и не мучаться Добавлено через 18 секунд
0 |
144 / 126 / 50 Регистрация: 25.06.2015 Сообщений: 375 |
|
01.07.2015, 11:41 |
19 |
Попробуй рассмотреть выгрузку данных не в эксель, а, скажем, ворд. Или еще куда.
0 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
01.07.2015, 11:53 |
20 |
А ничего что 2010 года вопрос)))
0 |
Содержание
- Решение проблемы отображения числа как даты
- Способ 1: контекстное меню
- Способ 2: изменение форматирования на ленте
- Вопросы и ответы
Бывают случаи, когда при работе в программе Excel, после занесения числа в ячейку, оно отображается в виде даты. Особенно такая ситуация раздражает, если нужно произвести ввод данных другого типа, а пользователь не знает как это сделать. Давайте разберемся, почему в Экселе вместо чисел отображается дата, а также определим, как исправить эту ситуацию.
Решение проблемы отображения числа как даты
Единственной причиной, почему данные в ячейке могут отображаться как дата, является то, что в ней установлен соответствующий формат. Таким образом, чтобы наладить отображение данных, как ему нужно, пользователь должен его поменять. Сделать это можно сразу несколькими способами.
Способ 1: контекстное меню
Большинство пользователей для решения данной задачи используют контекстное меню.
- Кликаем правой кнопкой мыши по диапазону, в котором нужно сменить формат. В контекстном меню, которое появится после этих действий, выбираем пункт «Формат ячеек…».
- Открывается окно форматирования. Переходим во вкладку «Число», если оно вдруг было открыто в другой вкладке. Нам нужно переключить параметр «Числовые форматы» со значения «Дата» на нужное пользователю. Чаще всего это значения «Общий», «Числовой», «Денежный», «Текстовый», но могут быть и другие. Тут все зависит от конкретной ситуации и предназначения вводимых данных. После того, как переключение параметра выполнено жмем на кнопку «OK».
После этого данные в выделенных ячейках уже не будут отображаться как дата, а станут показываться в нужном для пользователя формате. То есть, будет достигнута поставленная цель.
Способ 2: изменение форматирования на ленте
Второй способ даже проще первого, хотя почему-то менее популярный среди пользователей.
- Выделяем ячейку или диапазон с форматом даты.
- Находясь во вкладке «Главная» в блоке инструментов «Число» открываем специальное поле форматирования. В нём представлены самые популярные форматы. Выбираем тот, который наиболее подходит для конкретных данных.
- Если среди представленного перечня нужный вариант не был найден, то жмите на пункт «Другие числовые форматы…» в этом же списке.
- Открывается точно такое же окно настроек форматирования, как и в предыдущем способе. В нём расположен более широкий перечень возможного изменения данных в ячейке. Соответственно, и дальнейшие действия тоже будут точно такими же, как и при первом варианте решения проблемы. Выбираем нужный пункт и жмем на кнопку «OK».
После этого, формат в выделенных ячейках будет изменен на тот, который вам нужен. Теперь числа в них не будут отображаться в виде даты, а примут заданную пользователем форму.
Как видим, проблема отображения даты в ячейках вместо числа не является особо сложным вопросом. Решить её довольно просто, достаточно всего нескольких кликов мышкой. Если пользователь знает алгоритм действий, то эта процедура становится элементарной. Выполнить её можно двумя способами, но оба они сводятся к изменению формата ячейки с даты на любой другой.
Еще статьи по данной теме:
Помогла ли Вам статья?
Содержание
- 1 Решение проблемы отображения числа как даты
- 1.1 Способ 1: контекстное меню
- 1.2 Способ 2: изменение форматирования на ленте
- 1.3 Помогла ли вам эта статья?
- 2 Ошибка при открытие .txt в Excel
Почему вместо цифр в Ecxel получается дата
У тех, кто не много времени работает с Excel, или включает его, как говорится, “по праздникам”, часто возникают типичные вопросы. Одним их них, например, является – почему вместо цифр получается дата, когда в ячейку Excel вводишь дробное число.
Мы решили раз и навсегда покончить с непониманием пользователя и Excel, и рассказать, как этого избежать.
На картинки изображен подобный пример. Мы ввели в ячейку цифру 5.5 (пять целых, пять десятых). А вместо нее там автоматически образовалось число и месяц.
Главная ошибка кроется в точке, которую мы поставили между цифрами. Чтобы показать Excel, что это цифра, а не число, мы должны написать 5,5 через запятую. В этом случае, отображение будет корректным.
Есть способ писать числа и с точкой. Для этого необходимо задать формат ячейки – что в ней будет находиться число, а не цифра.
Для этого, щелкаем правой кнопкой мыши по ячейке и выбираем вкладку “Формат ячеек”.
В ней выбираем вариант “Текстовый”.
Все, после этого в данной ячейке Excel даже набрав цифры с точкой у вас не появится число и месяц.
Размещено в
Faq
Бывают случаи, когда при работе в программе Excel, после занесения числа в ячейку, оно отображается в виде даты. Особенно такая ситуация раздражает, если нужно произвести ввод данных другого типа, а пользователь не знает как это сделать. Давайте разберемся, почему в Экселе вместо чисел отображается дата, а также определим, как исправить эту ситуацию.
Решение проблемы отображения числа как даты
Единственной причиной, почему данные в ячейке могут отображаться как дата, является то, что в ней установлен соответствующий формат. Таким образом, чтобы наладить отображение данных, как ему нужно, пользователь должен его поменять. Сделать это можно сразу несколькими способами.
Способ 1: контекстное меню
Большинство пользователей для решения данной задачи используют контекстное меню.
- Кликаем правой кнопкой мыши по диапазону, в котором нужно сменить формат. В контекстном меню, которое появится после этих действий, выбираем пункт «Формат ячеек…».
- Открывается окно форматирования. Переходим во вкладку «Число», если оно вдруг было открыто в другой вкладке. Нам нужно переключить параметр «Числовые форматы» со значения «Дата» на нужное пользователю. Чаще всего это значения «Общий», «Числовой», «Денежный», «Текстовый», но могут быть и другие. Тут все зависит от конкретной ситуации и предназначения вводимых данных. После того, как переключение параметра выполнено жмем на кнопку «OK».
После этого данные в выделенных ячейках уже не будут отображаться как дата, а станут показываться в нужном для пользователя формате. То есть, будет достигнута поставленная цель.
Способ 2: изменение форматирования на ленте
Второй способ даже проще первого, хотя почему-то менее популярный среди пользователей.
- Выделяем ячейку или диапазон с форматом даты.
- Находясь во вкладке «Главная» в блоке инструментов «Число» открываем специальное поле форматирования. В нём представлены самые популярные форматы. Выбираем тот, который наиболее подходит для конкретных данных.
- Если среди представленного перечня нужный вариант не был найден, то жмите на пункт «Другие числовые форматы…» в этом же списке.
- Открывается точно такое же окно настроек форматирования, как и в предыдущем способе. В нём расположен более широкий перечень возможного изменения данных в ячейке. Соответственно, и дальнейшие действия тоже будут точно такими же, как и при первом варианте решения проблемы. Выбираем нужный пункт и жмем на кнопку «OK».
После этого, формат в выделенных ячейках будет изменен на тот, который вам нужен. Теперь числа в них не будут отображаться в виде даты, а примут заданную пользователем форму.
Как видим, проблема отображения даты в ячейках вместо числа не является особо сложным вопросом. Решить её довольно просто, достаточно всего нескольких кликов мышкой. Если пользователь знает алгоритм действий, то эта процедура становится элементарной. Выполнить её можно двумя способами, но оба они сводятся к изменению формата ячейки с даты на любой другой.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Да Нет
Здесь можно получить ответы на вопросы по Microsoft Excel | 58945 | 482430 |
23 Ноя 2018 09:31:52 |
|
44519 | 357825 |
29 Янв 2017 17:28:40 |
||
Лучшие избранные темы с основного форума | 14 | 80 |
28 Июн 2018 15:25:11 |
|
Если вы — счастливый обладатель Mac 😉 | 220 | 1067 |
13 Ноя 2018 16:52:22 |
|
Раздел для размещения платных вопросов, проектов и задач и поиска исполнителей для них. | 2160 | 13768 |
23 Ноя 2018 09:31:30 |
|
Если Вы скачали или приобрели надстройку PLEX для Microsoft Excel и у Вас есть вопросы или пожелания — Вам сюда. | 320 | 1629 |
21 Ноя 2018 09:22:29 |
|
830 | 12138 |
22 Ноя 2018 18:55:46 |
||
Обсуждение функционала, правил и т.д. | 270 | 3484 |
16 Ноя 2018 10:24:33 |
|
Сейчас на форуме (гостей: 816, пользователей: 24, из них скрытых: 2) , , , , , , , , , , , , , , , , , , , , ,
Сегодня отмечают день рождения (58), (58), (34), (35), (43), (28), (28), (28), (28)
Всего зарегистрированных пользователей: 84265
Приняло участие в обсуждении: 32317
Всего тем: 107276
Довольно часто, у неопытных пользователей Microsoft Excel возникает вопрос, почему вместо цифр получается дата, когда они работают в Экселе? Нам этот вопрос приходил на почту несколько раз, и я решил написать полноценный урок с картинками, добавив его на сайт.
Давайте для начала разберем, в каких случаях может такое происходить. Например, пользователь создал новый документ и вписал в ячейку “5.6”. У него программа автоматически исправила на “05.июн”, а в значении самой ячейки стоит “05.06.2016”.
Такое происходит из-за неправильного формата ячейки. Чтобы это исправить, нужно выделить ячейку или несколько, нажать правой кнопкой мыши и выбрать пункт “Формат ячеек”. Теперь необходимо выбрать вариант форматирование конкретной ячейки. У Вас автоматически стоял вариант “Дата”, а для правильного отображение чисел нужно выбрать “Числовой”.
Хочу обратить внимание, что Вы можете выбрать число десятичных знаков, то есть, какое количество цифр у Вас будет после запятой. Так же есть возможность автоматического форматирования разделителя групп разрядов, то есть число “123456” будет выглядеть, как “123 456”.
Ошибка при открытие .txt в Excel
Иногда бывают моменты, что приходится открывать файл формата .txt в таблице Excel. Что делать, когда огромное количество строк отображаются неверно? На самом деле тут все тоже очень просто.
Для начала заходим в раздел “Сервис”, далее выбираем раздел “Параметры”, а потом “Международные”. Обратите внимание, галочка на пункте “Использовать системные разделители” должна стоять. Возможно проблема в том, что она у Вас не стоит.