Как преобразовать текст в числа?

У меня есть отчет Excel, который содержит несколько столбцов текста и несколько столбцов чисел, которые хранятся в виде текста.

Есть ли простой способ преобразовать те числа, которые хранятся в виде текста, в числа, не влияя на фактические текстовые данные?


person sds    schedule 30.04.2010    source источник
comment
В OpenOffice Calc выбор диапазона и просмотр меню Данные ›Текст в столбцы ... у меня сработали.   -  person Evgeni Sergeev    schedule 02.09.2014


Ответы (8)


Я считаю, что самый простой и быстрый способ преобразовать «числа, хранящиеся в виде текста» в числовые числа - это

  1. Выберите любую пустую ячейку
  2. Скопируйте эту ячейку (Ctrl + C)
  3. Выберите диапазон, содержащий данные, которые вы хотите преобразовать (это нормально, если диапазон также включает нечисловые данные)
  4. Используйте «Специальная вставка» с операцией «добавить» (думаю, «вычитание» тоже подойдет)

Помимо скорости, это дает преимущество преобразования на месте.

«Специальная вставка» находится в меню «Правка» в «классических» версиях Excel (2003 и более ранних) или в разделе «Буфер обмена» на вкладке «Главная» в «ленточных» версиях Excel (2007+).

person John Y    schedule 30.04.2010
comment
Вы - гений!!!! Большое спасибо. Веб-сайт Microsoft совершенно не помогает. В 2007 году все по-прежнему. - person halxinate; 31.10.2013
comment
Единственная проблема с этим решением заключается в том, что если диапазон содержит другие значения, они будут преобразованы в числа (например, даты). И это будет непоследовательно - то есть некоторые даты станут числами, некоторые останутся датами. - person ajeh; 18.11.2013
comment
@ajeh: В Excel все даты - числа. Не существует такой вещи, как дата Excel, кроме номера Excel. Таким образом, все, что, по мнению Excel, должно быть датой, станет числом, если вы воспользуетесь этим решением. Если вы имеете в виду, что форматирование теряется для чисел, которые уже отформатированы как даты, вы можете выбрать «Значения» вместо «Все» для параметра вставки. - person John Y; 18.11.2013
comment
Не получится. После того, как все или некоторые ячейки в диапазоне будут преобразованы из дат, хранящихся в виде текста, в числа, не будет возврата, кроме одной за одной. Меня сбивает с толку, что только некоторые даты, хранящиеся в виде текста, заканчиваются числами после операции копирования / вставки, но это печальная реальность мира, где есть Microsoft. - person ajeh; 18.11.2013
comment
@ajeh: У вас есть примеры того, что Excel не преобразует даты в числа? Кроме того, какой у вас регион? - person John Y; 19.11.2013
comment
Конечно, у меня есть пример, на который я посмотрел, чтобы придумать комментарий. Я работаю над тем большим отчетом, экспортированным из SSRS 2008. Он хранит как целые числа, так и даты в виде текста. Некоторые даты были преобразованы в числа, а остальные были преобразованы в даты после копирования / вставки. Не уверен насчет региона, мне никогда не приходилось использовать эти знания за всю мою карьеру. - person ajeh; 19.11.2013
comment
@ajeh: Не могли бы вы опубликовать несколько примеров здесь? Понятия не имею, о каком репортаже вы говорите. - person John Y; 19.11.2013
comment
Просто хотел добавить еще один гениальный комментарий к этому ответу. - person Kit Johnson; 29.08.2017

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

person Daniel DiPaolo    schedule 30.04.2010

Другой обходной путь - добавить ноль для принудительного преобразования типа: если ячейка A1 содержит «5», но ISNUMBER (A1) возвращает FALSE, ISNUMBER (A1 + 0) вернет TRUE, если A1 можно преобразовать в число.

person Jeff    schedule 02.04.2013

Я не уверен, что понимаю вашу дилемму, но есть как минимум два решения вашего непосредственного вопроса:

  1. Отформатируйте ячейки, которые должны быть числами, как «число», а не как текст. Вы можете выделить нужные ячейки -> щелкните правой кнопкой мыши -> Форматировать как число. Оттуда вы можете установить количество десятичных знаков и конкретное форматирование.

  2. Создайте новый столбец, в котором ваш столбец с текстом / числами умножается на 1, и установите для этого нового столбца формат числа.

person Chase    schedule 30.04.2010
comment
Это не работает надежно. Например, если у меня есть ячейка, содержащая $0.00 (в виде текста, т.е. знак доллара в тексте ячейки), я выделяю ее и выбираю Число или даже Валюту, она не преобразуется. - person Dai; 09.10.2018

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

person Rob Sedgwick    schedule 14.01.2014

Невозможно заставить эти решения работать должным образом со смешанным столбцом, состоящим из букв и цифр, где цифры представляют собой текст, скопированный с веб-страницы. Автор (Д. Мабут) на сайте About.com разместил этот код VBA.

    Sub Enter_Values()
   For Each xCell In Selection
    xCell.Value = CDec(xCell.Value)
 Next xCell 
 End Sub

Этот код вызовет ошибку в альфа-ячейках, поэтому следует добавить:

Sub Enter_Values()
For Each xCell In Selection
If IsNumeric(xCell) = True Then
    xCell.Value = CDec(xCell.Value)
    Else
     End If
 Next xCell
End Sub
person user3418162    schedule 14.03.2014

Вот решение, которое я нашел для ситуации, в которой я нахожусь.

Я еженедельно запускаю отчет, который требует копирования и вставки примерно 7000 строк данных, экспортированных из системы. Недавно были внесены некоторые изменения, чтобы числа выходили в виде текста. Данные включают в себя набор фактических текстовых записей и остальные числа, сохраненные в виде текста. Эти данные копируются и вставляются в главный шаблон, который затем загружает другие листы / отчеты, но мне нужно, чтобы числа сохранялись как числа. Из-за объема данных и того факта, что я не единственный, кто выполняет эту задачу (а некоторые другие не разбираются в Excel), мне нужно было попытаться автоматизировать этот процесс. Я пробовал формулу = A1 * 1, и она работала для чисел, но в тексте я получил #VALUE! ошибка. После долгих попыток я пришел к следующей формуле, и она отлично работает!

= ЕСЛИ (И (A1 = «Да»), «Да», ЕСЛИ (И (A1 = «Неприменимо»), «Неприменимо», ЕСЛИ (И (A1 = «Нет»), «Нет», A1 * 1)))

person KathyM    schedule 07.07.2014

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

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

Я создал простую таблицу на пустом листе, где каждая ячейка была преобразована в текст с помощью Format> Format Cell. Затем я ввел значения ниже (на диаграмме я пометил строки, содержащие зеленые треугольники, знаком ^).

  |  A  |  B  |
--------------
1 | abc |     |
2^| 1   |     |
3^| 2   |     |
4^| 3   |     |
5^| 4   |     |
6^| 5,6 |     |
7 | 7.8 |     |
8^| 9   |     |
9 | xyz |     |
--------------

Теперь вам нужно начать выделение с A2 или A8 и перетащить выделение в другие ячейки, чтобы оно работало. Запускать с A9 или A1 не получается. Запуск между ними будет работать, но таким образом вы не сможете выбрать все ячейки за один раз.

Также распознавание ячеек может зависеть от вашего языкового стандарта - для стран, в которых используются точки вместо запятых, ваши результаты могут отличаться (ячейка A6 против A7).

person user121391    schedule 03.09.2015