Невозможно преобразовать текст в числа

#excel

#excel

Вопрос:

Мне дали Excel для импорта в базу данных, он был экспортирован из базы данных Access. в Excel есть столбец type_class , в одном Excel это хорошо (лист1), но в другом Excel, который я переместил на лист2, чтобы сделать VLOOKUP функцию, я не могу сказать, текст это или нет.числовой столбец с первого взгляда. верхний левый зеленый цвет отображается не во всех ячейках. но, используя ISTEXT функцию result in text . ниже приведен исходный столбец без каких-либо изменений или форматирования, а также ISTEXT результат.
! [[введите описание изображения здесь введите описание изображения здесь

когда я использую столбец в VLOOKUB функции для переноса имени на первый лист, только (1010, 1101, 1102,….), отсюда и ячейки с зеленой меткой в левом верхнем углу.
введите описание изображения здесь

Я могу легко отформатировать ключ в листе 1, используя text-to-columns форматирование ячеек и любым другим способом.
но я не могу изменить столбец в sheet2, я пытался:

  • Преобразование текста в столбцы
  • Форматирование ячеек
  • ЗНАЧЕНИЕ (текст), ОЧИСТИТЬ (текст), ОБРЕЗАТЬ (текст), ОБРЕЗАТЬ (ОЧИСТИТЬ (текст)), ОЧИСТИТЬ (ЗАМЕНИТЬ ())
  • Умножить на 1

но только ячейка с зеленой меткой изменяется на число, остальное остается прежним. Я просматривал Интернет, но тоже не нашел решения.
введите описание изображения здесь

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

Комментарии:

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

2. @RonRosenfeld, я пробовал CLEAN() , TRIM(CLEAN) , CLEAN(SUBSTITUTE) . НИ ОДИН не сработал

3. Сначала вам нужно выяснить, что там. Эти функции не будут работать со многими непечатаемыми символами. Сделайте простой =LEN(cell_ref) , чтобы убедиться, что это предположение верно. Затем используйте MID , чтобы выяснить, что это за символ.

4. @RonRosenfeld, результат равен 6 для ячеек, в которых я не могу преобразовать текст в числа, и для других. MID результат в том же самом столбце, MID(0810) результаты 0810 . Я отредактировал свой ответ и добавил образец Excel, загруженный на Google Диск. очень ценю вашу помощь

5. Я не вижу никакой ссылки на файл, но см. Мой ответ для метода устранения неполадок. LEN Результаты вашей формулы доказывают, что в ваших неконвертируемых строках цифр есть посторонние символы.

Ответ №1:

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

  • Определите, что это за символ
    • Предположим, что «неконвертируемая» строка цифр находится в A1
    • Введите следующую формулу
      • B1: =MID($A$1,ROWS($1:1),1) и заполните
      • C1: = UNICODE(B1) и заполните
    • Исходя из этого, вы можете определить символ для использования в SUBSTITUTE функции.

Например:

введите описание изображения здесь

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

Поэтому мы используем:

 =SUBSTITUTE(A1,CHAR(160),"")
  

или преобразовать его за один шаг в число:

 =--SUBSTITUTE(A1,CHAR(160),"")
  

Примечание. Если код символа> 255, используйте UNICHAR вместо CHAR в SUBSTITUTE функции.

Комментарии:

1. Сработало как шарм. Код символа был 8207 для некоторых ячеек и 8206 для других. Спасибо за вашу помощь

2. @adelsameer Рад помочь. И эти коды довольно интересны. Они используются для точного определения того, следует ли отображать узел left-to-right или right-to-left . Итак, возможно, в какой-то момент числа были встроены в отображаемую фразу right-to-left и должны были быть отображены left-to-right .

Ответ №2:

Без примера я использую value() для преобразования того, что Excel принимает как текст, вот так:

 =value(left(“10kg”,2))
  

Или также работает следующее:

 =left(“10kg”,2)*1
  

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

И если возникают проблемы с начальными или конечными пробелами, то trim() является одним из решений.