Excel исправить все ошибки число сохранено как текст

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

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

В этой статье

  • Способ 1. Преобразование чисел в текстовом формате с помощью функции проверки ошибок

  • Способ 2. Преобразование чисел в текстовом формате с помощью функции «Специальная вставка»

  • Способ 3. Применение числового формата к числам в текстовом формате

  • Отключение проверки ошибок

Способ 1. Преобразование чисел в текстовом формате с помощью функции проверки ошибок

При импорте данных в Excel из другого источника, а также при вводе чисел в ячейки, которые ранее были отформатированы как текст, в левом верхнем углу ячейки можно заметить маленький зеленый треугольник. Этот индикатор ошибки указывает на то, что число хранится в текстовом виде, как показано в данном примере.

Ячейки с зеленым индикатором ошибки в левом верхнем углу

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

  1. Выделите любую ячейку или диапазон смежных ячеек с индикатором ошибки в верхнем левом углу .

    Выделение ячеек, диапазонов, строк и столбцов

    Чтобы выделить

    Выполните следующие действия

    Отдельную ячейку

    Щелкните ячейку или воспользуйтесь клавишами со стрелками, чтобы перейти к нужной ячейке.

    Диапазон ячеек

    Щелкните первую ячейку диапазона, а затем перетащите указатель мыши на его последнюю ячейку. Или удерживая нажатой клавишу SHIFT, нажимайте клавиши со стрелками, чтобы расширить выделение.

    Кроме того, можно выделить первую ячейку диапазона, а затем нажать клавишу F8 для расширения выделения с помощью клавиш со стрелками. Чтобы остановить расширение выделенной области, еще раз нажмите клавишу F8.

    Большой диапазон ячеек

    Щелкните первую ячейку диапазона, а затем, удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку диапазона. Чтобы перейти к последней ячейке, можно использовать полосу прокрутки.

    Все ячейки листа

    Нажмите кнопку Выделить все.

    Кнопка Выбрать все

    Чтобы выделить весь лист, также можно нажать клавиши CTRL+A.

    Если лист содержит данные, при нажатии клавиш CTRL+A выделяется текущий диапазон. Повторное нажатие клавиш CTRL+A приведет к выделению всего листа.

    Несмежные ячейки или диапазоны ячеек

    Выделите первую ячейку или диапазон ячеек, а затем, удерживая нажатой клавишу CTRL, выделите другие ячейки или диапазоны.

    Вы можете также выбрать первую ячейку или диапазон ячеек, а затем нажать клавиши SHIFT+F8 для включения в выделение других несмежных ячеек или диапазонов. Чтобы остановить включение ячеек и диапазонов, снова нажмите клавиши SHIFT+F8.

    Отменить выделение отдельных несмежных ячеек или диапазонов без отмены всего выделения невозможно.

    Столбец или строку целиком

    Щелкните заголовок сроки или столбца.

    Лист с заголовком строки и заголовком столбца

    1. Заголовок строки

    2. Заголовок столбца

    Вы можете также выделить ячейки в строке или столбце, выделив первую ячейку, а затем нажав сочетание CTRL+SHIFT+клавиша со стрелкой (СТРЕЛКА ВПРАВО или СТРЕЛКА ВЛЕВО — для строк, СТРЕЛКА ВВЕРХ или СТРЕЛКА ВНИЗ — для столбцов).

    Если в строке или столбце содержатся данные, при нажатии сочетания CTRL+SHIFT+клавиша со стрелкой будет выделена строка или столбец до последней заполненной ячейки. Повторное нажатие этого сочетания приведет к выделению строки или столбца полностью.

    Смежные строки или столбцы

    Протащите указатель мыши по заголовкам строк или столбцов. Либо выделите первую строку или первый столбец, а затем, удерживая нажатой клавишу SHIFT, выделите последнюю строку или последний столбец.

    Несмежные строки или столбцы

    Щелкните заголовок первой строки или столбца выделения, а затем, удерживая нажатой клавишу CTRL, щелкните заголовки столбцов или строк, которые требуется добавить в выделение.

    Первую или последнюю ячейку в строке или столбце

    Выделите ячейку в строке или столбце, а затем нажмите клавиши CTRL+СТРЕЛКА (ВПРАВО или ВЛЕВО — для строк, ВВЕРХ или ВНИЗ — для столбцов).

    Первую или последнюю ячейку на листе или в таблице Microsoft Office Excel

    Чтобы выделить первую ячейку на листе или в списке Excel, нажмите сочетание клавиш CTRL+HOME.

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

    Ячейки до последней используемой ячейки листа (нижний правый угол)

    Выделите первую ячейку, а затем нажмите клавиши CTRL+SHIFT+END, чтобы расширить выделенную область до последней используемой ячейки листа (нижний правый угол).

    Ячейки до начала листа

    Выделите первую ячейку и нажмите сочетание клавиш CTRL+SHIFT+HOME, чтобы расширить выделение до начала листа.

    Больше или меньше ячеек, чем имеется в активном выделении

    Удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку, которую нужно включить в новую выделенную область. В эту область войдет прямоугольный диапазон между активная ячейка и выделенной ячейкой.

    Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

  2. Нажмите появившуюся рядом с выделенной ячейкой или диапазоном ячеек кнопку ошибки.

    Кнопка ошибки

  3. Выберите в меню пункт Преобразовать в число. (Чтобы просто избавиться от индикатора ошибки без преобразования, выберите команду Пропустить ошибку.)

    Команда "Преобразовать в число"

    Эта команда преобразует числа из текстового формата обратно в числовой.

    Преобразованные числа

    После преобразования чисел из текстового формата в числовой можно изменить способ их отображения в ячейках, применив к ним числовой формат или настроив текущий формат. Дополнительные сведения см. в разделе Доступные числовые форматы.

К началу страницы

Способ 2. Преобразование чисел в текстовом формате с помощью функции «Специальная вставка»

При использовании этого способа каждая выделенная ячейка умножается на 1, чтобы принудительно преобразовать текст в обычное число. Поскольку содержимое ячейки умножается на 1, результат не меняется. Однако при этом приложение Excel фактически заменяет текст на эквивалентные числа.

  1. Выделите пустую ячейку и убедитесь в том, что она представлена в числовом формате «Общий».

    Проверка числового формата

    • На вкладке Главная в группе Число нажмите стрелку в поле Числовой формат и выберите пункт Общий.

      Изображение ленты Excel

  2. Введите в ячейку число 1 и нажмите клавишу ВВОД.

  3. Выделите ячейку и нажмите сочетание клавиш CTRL+C, чтобы скопировать значение в буфер обмена.

  4. Выделите ячейки или диапазоны ячеек, содержащие числа в текстовом формате, которые необходимо преобразовать.

    Выделение ячеек, диапазонов, строк и столбцов

    Чтобы выделить

    Выполните следующие действия

    Отдельную ячейку

    Щелкните ячейку или воспользуйтесь клавишами со стрелками, чтобы перейти к нужной ячейке.

    Диапазон ячеек

    Щелкните первую ячейку диапазона, а затем перетащите указатель мыши на его последнюю ячейку. Или удерживая нажатой клавишу SHIFT, нажимайте клавиши со стрелками, чтобы расширить выделение.

    Кроме того, можно выделить первую ячейку диапазона, а затем нажать клавишу F8 для расширения выделения с помощью клавиш со стрелками. Чтобы остановить расширение выделенной области, еще раз нажмите клавишу F8.

    Большой диапазон ячеек

    Щелкните первую ячейку диапазона, а затем, удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку диапазона. Чтобы перейти к последней ячейке, можно использовать полосу прокрутки.

    Все ячейки листа

    Нажмите кнопку Выделить все.

    Кнопка Выбрать все

    Чтобы выделить весь лист, также можно нажать клавиши CTRL+A.

    Если лист содержит данные, при нажатии клавиш CTRL+A выделяется текущий диапазон. Повторное нажатие клавиш CTRL+A приведет к выделению всего листа.

    Несмежные ячейки или диапазоны ячеек

    Выделите первую ячейку или диапазон ячеек, а затем, удерживая нажатой клавишу CTRL, выделите другие ячейки или диапазоны.

    Вы можете также выбрать первую ячейку или диапазон ячеек, а затем нажать клавиши SHIFT+F8 для включения в выделение других несмежных ячеек или диапазонов. Чтобы остановить включение ячеек и диапазонов, снова нажмите клавиши SHIFT+F8.

    Отменить выделение отдельных несмежных ячеек или диапазонов без отмены всего выделения невозможно.

    Столбец или строку целиком

    Щелкните заголовок сроки или столбца.

    Лист с заголовком строки и заголовком столбца

    1. Заголовок строки

    2. Заголовок столбца

    Вы можете также выделить ячейки в строке или столбце, выделив первую ячейку, а затем нажав сочетание CTRL+SHIFT+клавиша со стрелкой (СТРЕЛКА ВПРАВО или СТРЕЛКА ВЛЕВО — для строк, СТРЕЛКА ВВЕРХ или СТРЕЛКА ВНИЗ — для столбцов).

    Если в строке или столбце содержатся данные, при нажатии сочетания CTRL+SHIFT+клавиша со стрелкой будет выделена строка или столбец до последней заполненной ячейки. Повторное нажатие этого сочетания приведет к выделению строки или столбца полностью.

    Смежные строки или столбцы

    Протащите указатель мыши по заголовкам строк или столбцов. Либо выделите первую строку или первый столбец, а затем, удерживая нажатой клавишу SHIFT, выделите последнюю строку или последний столбец.

    Несмежные строки или столбцы

    Щелкните заголовок первой строки или столбца выделения, а затем, удерживая нажатой клавишу CTRL, щелкните заголовки столбцов или строк, которые требуется добавить в выделение.

    Первую или последнюю ячейку в строке или столбце

    Выделите ячейку в строке или столбце, а затем нажмите клавиши CTRL+СТРЕЛКА (ВПРАВО или ВЛЕВО — для строк, ВВЕРХ или ВНИЗ — для столбцов).

    Первую или последнюю ячейку на листе или в таблице Microsoft Office Excel

    Чтобы выделить первую ячейку на листе или в списке Excel, нажмите сочетание клавиш CTRL+HOME.

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

    Ячейки до последней используемой ячейки листа (нижний правый угол)

    Выделите первую ячейку, а затем нажмите клавиши CTRL+SHIFT+END, чтобы расширить выделенную область до последней используемой ячейки листа (нижний правый угол).

    Ячейки до начала листа

    Выделите первую ячейку и нажмите сочетание клавиш CTRL+SHIFT+HOME, чтобы расширить выделение до начала листа.

    Больше или меньше ячеек, чем имеется в активном выделении

    Удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку, которую нужно включить в новую выделенную область. В эту область войдет прямоугольный диапазон между активная ячейка и выделенной ячейкой.

    Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

  5. На вкладке Главная в группе Буфер обмена щелкните стрелку под кнопкой Вставить и выберите команду Специальная вставка.

  6. В группе Операция выберите вариант умножить и нажмите кнопку ОК.

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

Некоторые программы бухгалтерского учета отображают отрицательные значения как текст со знаком минус () справа от значения. Чтобы преобразовать эти текстовые строки в значения, необходимо с помощью формулы извлечь все знаки текстовой строки кроме самого правого (знака минус) и умножить результат на -1.

Например, если в ячейке A2 содержится значение «156-«, приведенная ниже формула преобразует текст в значение «-156».

Данные

Формула

156-

=ЛЕВСИМВ(A2,ДЛСТР(A2)-1)*-1

К началу страницы

Способ 3. Применение числового формата к числам в текстовом формате

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

  1. Выделите ячейки, которые содержат числа, сохраненные в виде текста.

    Выделение ячеек, диапазонов, строк и столбцов

    Чтобы выделить

    Выполните следующие действия

    Отдельную ячейку

    Щелкните ячейку или воспользуйтесь клавишами со стрелками, чтобы перейти к нужной ячейке.

    Диапазон ячеек

    Щелкните первую ячейку диапазона, а затем перетащите указатель мыши на его последнюю ячейку. Или удерживая нажатой клавишу SHIFT, нажимайте клавиши со стрелками, чтобы расширить выделение.

    Кроме того, можно выделить первую ячейку диапазона, а затем нажать клавишу F8 для расширения выделения с помощью клавиш со стрелками. Чтобы остановить расширение выделенной области, еще раз нажмите клавишу F8.

    Большой диапазон ячеек

    Щелкните первую ячейку диапазона, а затем, удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку диапазона. Чтобы перейти к последней ячейке, можно использовать полосу прокрутки.

    Все ячейки листа

    Нажмите кнопку Выделить все.

    Кнопка Выбрать все

    Чтобы выделить весь лист, также можно нажать клавиши CTRL+A.

    Если лист содержит данные, при нажатии клавиш CTRL+A выделяется текущий диапазон. Повторное нажатие клавиш CTRL+A приведет к выделению всего листа.

    Несмежные ячейки или диапазоны ячеек

    Выделите первую ячейку или диапазон ячеек, а затем, удерживая нажатой клавишу CTRL, выделите другие ячейки или диапазоны.

    Вы можете также выбрать первую ячейку или диапазон ячеек, а затем нажать клавиши SHIFT+F8 для включения в выделение других несмежных ячеек или диапазонов. Чтобы остановить включение ячеек и диапазонов, снова нажмите клавиши SHIFT+F8.

    Отменить выделение отдельных несмежных ячеек или диапазонов без отмены всего выделения невозможно.

    Столбец или строку целиком

    Щелкните заголовок сроки или столбца.

    Лист с заголовком строки и заголовком столбца

    1. Заголовок строки

    2. Заголовок столбца

    Вы можете также выделить ячейки в строке или столбце, выделив первую ячейку, а затем нажав сочетание CTRL+SHIFT+клавиша со стрелкой (СТРЕЛКА ВПРАВО или СТРЕЛКА ВЛЕВО — для строк, СТРЕЛКА ВВЕРХ или СТРЕЛКА ВНИЗ — для столбцов).

    Если в строке или столбце содержатся данные, при нажатии сочетания CTRL+SHIFT+клавиша со стрелкой будет выделена строка или столбец до последней заполненной ячейки. Повторное нажатие этого сочетания приведет к выделению строки или столбца полностью.

    Смежные строки или столбцы

    Протащите указатель мыши по заголовкам строк или столбцов. Либо выделите первую строку или первый столбец, а затем, удерживая нажатой клавишу SHIFT, выделите последнюю строку или последний столбец.

    Несмежные строки или столбцы

    Щелкните заголовок первой строки или столбца выделения, а затем, удерживая нажатой клавишу CTRL, щелкните заголовки столбцов или строк, которые требуется добавить в выделение.

    Первую или последнюю ячейку в строке или столбце

    Выделите ячейку в строке или столбце, а затем нажмите клавиши CTRL+СТРЕЛКА (ВПРАВО или ВЛЕВО — для строк, ВВЕРХ или ВНИЗ — для столбцов).

    Первую или последнюю ячейку на листе или в таблице Microsoft Office Excel

    Чтобы выделить первую ячейку на листе или в списке Excel, нажмите сочетание клавиш CTRL+HOME.

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

    Ячейки до последней используемой ячейки листа (нижний правый угол)

    Выделите первую ячейку, а затем нажмите клавиши CTRL+SHIFT+END, чтобы расширить выделенную область до последней используемой ячейки листа (нижний правый угол).

    Ячейки до начала листа

    Выделите первую ячейку и нажмите сочетание клавиш CTRL+SHIFT+HOME, чтобы расширить выделение до начала листа.

    Больше или меньше ячеек, чем имеется в активном выделении

    Удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку, которую нужно включить в новую выделенную область. В эту область войдет прямоугольный диапазон между активная ячейка и выделенной ячейкой.

    Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

  2. На вкладке Главная в группе Число нажмите кнопку вызова диалогового окна, расположенную рядом с надписью Число.

    Кнопка вызова диалогового окна в группе "Число"

  3. В поле Категория выберите нужный числовой формат.

    Для успешного выполнения данной процедуры числа, которые хранятся как текст, не должны содержать внутри или вне себя лишние пробелы или непечатаемые знаки. Лишние пробелы и непечатаемые знаки могут появиться при копировании или импорте данных из базы данных или другого внешнего источника данных. Для удаления лишних пробелов из нескольких чисел, которые хранятся в виде текста, можно воспользоваться функцией СЖПРОБЕЛЫ или функцией ПЕЧСИМВ. Функция СЖПРОБЕЛЫ удаляет из текста пробелы за исключением одиночных пробелов между словами. Функция ПЕЧСИМВ удаляет из текста все непечатаемые знаки.

К началу страницы

Отключение проверки ошибок

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

  1. Откройте вкладку Файл.

  2. В группе Справка нажмите кнопку Параметры.

  3. В диалоговом окне Параметры Excel выберите категорию Формулы.

  4. Убедитесь, что в разделе Правила поиска ошибок установлен флажок Числа, отформатированные как текст или с предшествующим апострофом.

  5. Нажмите кнопку ОК.

К началу страницы

Достаточно часто в Excel выгружаются данные из сторонних программ для их дальнейшей обработки, и нередко дальнейшее использование этих данных в формулах даёт непредсказуемый результат: числа не суммируются, между датами невозможно рассчитать количество дней и т.д.

В этой статье рассматриваются причины появления таких проблем и различные способы их устранения

Причина первая. Число сохранено как текст

В этом случае видно, что числа или даты прижаты к левому краю ячейки (как текст) и, как правило, в левом верхнем углу ячейки имеется маркер ошибки (зелёный треугольник) и тег, который при наведении мышки поясняет, что число сохранено как текст.

Никакие изменения формата на Числовой, Общий или Дата ситуацию не исправляют, но если кликнуть в строку формул (или нажать F2), а затем Enter, то число становится числом, а дата датой. При большом количестве таких чисел вариант, согласитесь, неприемлемый.

Есть несколько способов решения данной проблемы

  • С помощью маркера ошибки и тега. Если в левом верхнем углу ячеек виден маркер ошибки (зелёный треугольник) и тег, то выделяем ячейки, кликаем мышкой по тегу и выбираем вариант Преобразовать в число
  • С помощью операции Найти/Заменить. Предположим, в таблице есть числа с десятичной запятой, сохраненные как текст. Выделяем диапазон с числами — нажимаем Ctrl+h (либо находим на вкладке Главная или в меню Правка для версий до 2007 команду Заменить) — в поле Найти вводим , (запятую) — в поле Заменить на тоже вводим , (запятую) — Заменить все. Таким образом, делая замену запятой на запятую, мы имитируем редактирование ячейки аналогично F2 — Enter

Подобную операцию можно осуществить и с датами с тем лишь отличием, что менять нужно точку на точку.

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

Аналогичную замену можно проделать и формулой (см. ниже), используя функцию ПОДСТАВИТЬ()

  • С помощью Специальной вставки. Этот способ более универсальный, так как работает и с дробными числами, и с целыми, а также с датами. Выделяем любую пустую ячейку — выполняем команду Копировать — выделяем диапазон с проблемными числами — Специальная вставкаСложить ОК. Таким образом, мы к числам (или датам) прибавляем 0, что никак не влияет на их значение, зато переводит в числовой формат

Вариантом этого приёма может быть умножение диапазона на 1

  • С помощью инструмента Текст по столбцам. Этот приём удобно использовать если преобразовать нужно один столбец, так как если столбцов несколько, то действия придётся повторять для каждого столбца отдельно. Итак, выделяем столбец с числами или датами, сохраненными как текст, устанавливаем формат ячейки Общий (для чисел можно установить, к примеру, Числовой или Финансовый). Далее выполняем команду Данные Текст по столбцамГотово

  • С помощью формул. Если таблица позволяет задействовать дополнительные столбцы, то для преобразования в число можно использовать формулы. Чтобы перевести текстовое значение в число, можно использовать двойной минус, сложение с нулём, умножение на единицу, функции ЗНАЧЕН(), ПОДСТАВИТЬ(). Более подробно можно почитать здесь. После преобразования полученный столбец можно скопировать и вставить как значения на место исходных данных

  • С помощью макросов. Собственно, любой из перечисленных способов можно выполнить макросом. Если Вам приходится часто выполнять подобное преобразование, то имеет смысл написать макрос и запускать его по мере необходимости.

Приведу два примера макросов:

1) умножение на 1

Sub conv()
Dim c As Range
    For Each c In Selection
        If IsNumeric(c.Value) Then
            c.Value = c.Value * 1
            c.NumberFormat = "#,##0.00"
        End If
    Next
End Sub

2) текст по столбцам

Sub conv1()
    Selection.TextToColumns
    Selection.NumberFormat = "#,##0.00"
End Sub

Причина вторая. В записи числа присутствуют посторонние символы.

Чаще всего этими посторонними символами являются пробелы. Они могут располагаться как внутри числа в качестве разделителя разрядов, так и до/после числа. В этом случае, естественно, число становится текстом.

Убрать лишние пробелы также можно с помощью операции Найти/Заменить. В поле Найти вводим пробел, а поле Заменить на оставляем пустым, далее Заменить все. Если в числе были обычные пробелы, то этих действий будет достаточно. Но в числе могут встречаться так называемые неразрывные пробелы (символ с кодом 160). Такой пробел придётся скопировать прямо из ячейки, а затем вставить в поле Найти диалогового окна Найти/Заменить. Либо можно в поле Найти нажать сочетание клавиш Alt+0160 (цифры набираются на цифровой клавиатуре). 

Пробелы можно удалить и формулой. Варианты:

Для обычных пробелов: =—ПОДСТАВИТЬ(B4;» «;»»)

Для неразрывных пробелов: =—ПОДСТАВИТЬ(B4;СИМВОЛ(160);»»)

Сразу для тех и других пробелов: =—ПОДСТАВИТЬ(ПОДСТАВИТЬ(B4;СИМВОЛ(160);»»);» «;»»)

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

I want to store text such as ‘001234’ in a cell. I have set the number format of this cell to text. After storing, an error ‘Number Stored as Text’ is shown in the form of a green triangle at the top left corner of the cell. It is very disturbing and I want it to be removed programmatically.

Community's user avatar

asked Aug 19, 2013 at 15:28

Foreever's user avatar

Consider:

Sub Macro1()
    Application.ErrorCheckingOptions.NumberAsText = False
End Sub

This is a single line of a much larger macro to configure Excel when I begin working on a new computer.

answered Aug 19, 2013 at 15:36

Gary's Student's user avatar

Gary’s StudentGary’s Student

95.8k10 gold badges59 silver badges99 bronze badges

3

The above examples turn off the «number stored as text» checking for the application.

This code will turn it off for a particular cell:

range("G93").Errors.Item(xlnumberastext).Ignore = True

Gufran Hasan's user avatar

Gufran Hasan

8,9407 gold badges38 silver badges52 bronze badges

answered Jul 22, 2019 at 14:48

James Hammontree's user avatar

You can select the range you want to work and then put for example (now added speechmarks):

Range("A1:Z20").Application.ErrorCheckingOptions.NumberAsText = False

Community's user avatar

answered Jun 15, 2016 at 10:17

user6468957's user avatar

2

Alternately, instead of formatting the cell as text, you could format the cell as 000000 to get the leading 0’s to show.

answered Aug 19, 2013 at 15:41

tigeravatar's user avatar

tigeravatartigeravatar

26.2k5 gold badges30 silver badges38 bronze badges

1

Преобразование чисел-как-текст в нормальные числа

Если для каких-либо ячеек на листе был установлен текстовый формат (это мог сделать пользователь или программа при выгрузке данных в Excel), то введенные потом в эти ячейки числа Excel начинает считать текстом. Иногда такие ячейки помечаются зеленым индикатором, который вы, скорее всего, видели:

Число как текст в Excel

Причем иногда такой индикатор не появляется (что гораздо хуже).

В общем и целом, появление в ваших данных чисел-как-текст обычно приводит к большому количеству весьма печальных последствий:

Особенно забавно, что естественное желание просто изменить формат ячейки на числовой — не помогает. Т.е. вы, буквально, выделяете ячейки, щелкаете по ним правой кнопкой мыши, выбираете Формат ячеек (Format Cells), меняете формат на Числовой (Number), жмете ОК — и ничего не происходит! Совсем!

Возможно, «это не баг, а фича», конечно, но нам от этого не легче. Так что давайте-к рассмотрим несколько способов исправить ситуацию — один из них вам обязательно поможет.

Способ 1. Зеленый уголок-индикатор

Если на ячейке с числом с текстовом формате вы видите зеленый уголок-индикатор, то считайте, что вам повезло. Можно просто выделить все ячейки с данными и нажать на всплывающий желтый значок с восклицательным знаком, а затем выбрать команду Преобразовать в число (Convert to number):

Преобразование в число

Все числа в выделенном диапазоне будут преобразованы в полноценные.

Если зеленых уголков нет совсем, то проверьте — не выключены ли они в настройках вашего Excel (Файл — Параметры — Формулы — Числа, отформатированные как текст или с предшествующим апострофом).

Способ 2. Повторный ввод

Если ячеек немного, то можно поменять их формат на числовой, а затем повторно ввести данные, чтобы изменение формата вступило-таки в силу. Проще всего это сделать, встав на ячейку и нажав последовательно клавиши F2 (вход в режим редактирования, в ячейке начинает мигаеть курсор) и затем Enter. Также вместо F2 можно просто делать двойной щелчок левой кнопкой мыши по ячейке.

Само-собой, что если ячеек много, то такой способ, конечно, не подойдет.

Способ 3. Формула

Можно быстро преобразовать псевдочисла в нормальные, если сделать рядом с данными дополнительный столбец с элементарной формулой:

Преобразование текста в число формулой

Двойной минус, в данном случае, означает, на самом деле, умножение на -1 два раза. Минус на минус даст плюс и значение в ячейке это не изменит, но сам факт выполнения математической операции переключает формат данных на нужный нам числовой.

Само-собой, вместо умножения на 1 можно использовать любую другую безобидную математическую операцию: деление на 1 или прибавление-вычитание нуля. Эффект будет тот же.

Способ 4. Специальная вставка

Этот способ использовали еще в старых версиях Excel, когда современные эффективные менеджеры под стол ходили  зеленого уголка-индикатора еще не было в принципе (он появился только с 2003 года). Алгоритм такой:

  • в любую пустую ячейку введите 1
  • скопируйте ее
  • выделите ячейки с числами в текстовом формате и поменяйте у них формат на числовой (ничего не произойдет)
  • щелкните по ячейкам с псевдочислами правой кнопкой мыши и выберите команду Специальная вставка (Paste Special) или используйте сочетание клавиш Ctrl+Alt+V
  • в открывшемся окне выберите вариант Значения (Values) и Умножить (Multiply)

Преобразование текста в число специальной вставкой

По-сути, мы выполняем то же самое, что и в прошлом способе — умножение содержимого ячеек на единицу — но не формулами, а напрямую из буфера.

Способ 5. Текст по столбцам

Если псеводчисла, которые надо преобразовать, вдобавок еще и записаны с неправильными разделителями целой и дробной части или тысяч, то можно использовать другой подход. Выделите исходный диапазон с данными и нажмите кнопку Текст по столбцам (Text to columns) на вкладке Данные (Data). На самом деле этот инструмент предназначен для деления слипшегося текста по столбцам, но, в данном случае, мы используем его с другой целью.

Пропустите первых два шага нажатием на кнопку Далее (Next), а на третьем воспользуйтесь кнопкой Дополнительно (Advanced). Откроется диалоговое окно, где можно задать имеющиеся сейчас в нашем тексте символы-разделители:

Преобразование текста в число через инструмент Текст по столбцам

После нажатия на Готово Excel преобразует наш текст в нормальные числа.

Способ 6. Макрос

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

Sub Convert_Text_to_Numbers()
    Selection.NumberFormat = "General"
    Selection.Value = Selection.Value
End Sub

Теперь после выделения диапазона всегда можно открыть вкладку Разрабочик — Макросы (Developer — Macros), выбрать наш макрос в списке, нажать кнопку Выполнить (Run) — и моментально преобразовать псевдочисла в полноценные.

Также можно добавить этот макрос в личную книгу макросов, чтобы использовать позднее в любом файле.

P.S.

С датами бывает та же история. Некоторые даты тоже могут распознаваться Excel’ем как текст, поэтому не будет работать группировка и сортировка. Решения — те же самые, что и для чисел, только формат вместо числового нужно заменить на дату-время.

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

  • Деление слипшегося текста по столбцам
  • Вычисления без формул специальной вставкой
  • Преобразование текста в числа с помощью надстройки PLEX

Есть база в ней есть поле код наименования состоящее из цифр. Соответственно эксель понимает это поле как числовое и разрешает применять к нему только числовые фильтры. Но вот при поиске это очень неудобно поскольку обычно знаешь только какую либо часть кода соответственно тут идеальным является поиск как по тексту по критерию содержит. Для этого в формате ячейки выставляю значение Текстовый и применяю соответствующий _автофильтр_. Все работает но есть один момент, а именно когда выберешь формат текстовый эксель в углу каждой ячейки выводит предупреждение о том что число сохранено как текст можно конечно в ручную выбрать весь диапазон и ручками нажать пропустить ошибку но база довольно большая и периодически обновляется а при обновлении в углу ячейки опять высвечивается это предательское предупреждение. Отсюдова вопрос как можно программно заставить эксель пропустить эту ошибку.
То есть обновилась база и потом сработал код который выбрал пропустить эту ошибку для диапазона. Пытался записать макроредактором действие пропустить эту ошибку но он ничего не записал. Вот и пишу теперь сюда. А то с файлом будут работать несколько человек и не хочется слышать панические вопросы типа «а что это у меня тут за ошибка» или «Да тут ошибка оно наверно неправильно работает»

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.


Если я правильно поняла проблему, то хочется чтобы просто не отображалась ошибка?
Тогда может просто отключить ее, убрав соответствующую галочку в Файл->Параметры->Формулы->Правила контроля ошибок->Числа отформатированные как текст.


Да но сделать это на каждом компьютере где будет открываться файл невозможно. Да и к тому же это относиться ко всем файлам и частенько оказывается полезной вещью. Именно потому и возник вопрос как это сделать программно для известного заранее диапазона

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.


В принципе можно и не менять на текст но тогда вопрос сменяется обратным как в столбце с числами с помощью расширенного фильтра выбрать те что содержат 5 или 025. Мои попытки копать в этом направлении пока бесполезны. Приложу файл может кто знает как должно выглядеть условие

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.


ЦитироватьДа но сделать это на каждом компьютере где будет открываться файл невозможно. Да и к тому же это относиться ко всем файлам и частенько оказывается полезной вещью. Именно потому и возник вопрос как это сделать программно для известного заранее диапазона

Можете сделать так.

Private Sub Workbook_Open()
Application.ErrorCheckingOptions.NumberAsText = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ErrorCheckingOptions.NumberAsText = True
End Sub

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

Или лучше на Activate, Deactivate книги или листа.


Да это вариант на активацию листа событие засунуть.
В принципе пока наверно лучшее. Но все же мне уже стал интерес и обратный вопрос  как отфильтровать числа как текст.

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.



Да сортирует то оно как нужно. Вот только не совсем то что я хотел. Вы использовали обычный _автофильтр_. А нужно с помощью расширенного, сам как применить это к расширенному не сообразил.

Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.


Понравилась статья? Поделить с друзьями:
  • Excel если ошибка то пустая ячейка
  • Excel если ошибка иначе
  • Excel если ошибка имя
  • Excel деление на ноль как убрать ошибку
  • Excel гиперссылка произошла неожиданная ошибка