Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразование данных в числовой формат - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Преобразование данных в числовой формат
l-lisa Дата: Четверг, 29.08.2013, 10:45 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 312
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Помогите придумать формулу, которая бы преобразовывала текстовые данные в численные.
К сообщению приложен файл: 33.xlsx (13.1 Kb)
 
Ответить
СообщениеДобрый день!
Помогите придумать формулу, которая бы преобразовывала текстовые данные в численные.

Автор - l-lisa
Дата добавления - 29.08.2013 в 10:45
Serge_007 Дата: Четверг, 29.08.2013, 10:49 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Так надо?
Код
=--ПОДСТАВИТЬ(СЖПРОБЕЛЫ(D10);".";",")
К сообщению приложен файл: l-lisa.xls (36.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеТак надо?
Код
=--ПОДСТАВИТЬ(СЖПРОБЕЛЫ(D10);".";",")

Автор - Serge_007
Дата добавления - 29.08.2013 в 10:49
l-lisa Дата: Четверг, 29.08.2013, 10:51 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 312
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Цитата (Serge_007, Четверг, 29.08.2013, 10:49 # 2)
Код
=--ПОДСТАВИТЬ(СЖПРОБЕЛЫ(D10);".";",")
Да, работает!! hands
 
Ответить
Сообщение
Цитата (Serge_007, Четверг, 29.08.2013, 10:49 # 2)
Код
=--ПОДСТАВИТЬ(СЖПРОБЕЛЫ(D10);".";",")
Да, работает!! hands

Автор - l-lisa
Дата добавления - 29.08.2013 в 10:51
l-lisa Дата: Четверг, 29.08.2013, 10:55 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 312
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А можно тоже самое сделать, но при помощи макроса? то есть, нажав на кнопку, в таблице получить численный формат?
 
Ответить
СообщениеА можно тоже самое сделать, но при помощи макроса? то есть, нажав на кнопку, в таблице получить численный формат?

Автор - l-lisa
Дата добавления - 29.08.2013 в 10:55
Serge_007 Дата: Четверг, 29.08.2013, 11:17 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Жмите на кнопку во вложении :)
[vba]
Код
Sub l_lisa()
        Dim x As Range
        Set x = Range("d10:bb18")
            x.Replace What:=".", Replacement:=",", LookAt:=xlPart
         For Each x In x
            x = Application.WorksheetFunction.Trim(x)
            x = CLng(x)
         Next x
End Sub
[/vba]
К сообщению приложен файл: l-lisa_2.xls (45.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЖмите на кнопку во вложении :)
[vba]
Код
Sub l_lisa()
        Dim x As Range
        Set x = Range("d10:bb18")
            x.Replace What:=".", Replacement:=",", LookAt:=xlPart
         For Each x In x
            x = Application.WorksheetFunction.Trim(x)
            x = CLng(x)
         Next x
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 29.08.2013 в 11:17
l-lisa Дата: Четверг, 29.08.2013, 11:23 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 312
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Ничего себе!!!Спасибо ещё много раз hands hands hands
 
Ответить
СообщениеНичего себе!!!Спасибо ещё много раз hands hands hands

Автор - l-lisa
Дата добавления - 29.08.2013 в 11:23
Матрёна Дата: Четверг, 29.08.2013, 11:33 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

l-lisa!
Очевидно, Вы осуществляете "импорт" файла ТХТ в EXCEL.
Варииант без формул и макросов:
1. открыть ТХТ в Блокноте,
2. выделить все,
3. заменить "." на ",",
4. сохранить.
После этого Ваш ТХТ в EXCEL сразу откроется готовым к вычислениям.
 
Ответить
Сообщениеl-lisa!
Очевидно, Вы осуществляете "импорт" файла ТХТ в EXCEL.
Варииант без формул и макросов:
1. открыть ТХТ в Блокноте,
2. выделить все,
3. заменить "." на ",",
4. сохранить.
После этого Ваш ТХТ в EXCEL сразу откроется готовым к вычислениям.

Автор - Матрёна
Дата добавления - 29.08.2013 в 11:33
DJ_Marker_MC Дата: Четверг, 29.08.2013, 12:45 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
есть еще один вариант если речь про 1с.
В параметрах системы, в языках и региональных параметрах, на вкладке дополнительные параметры заменить разделитель дробной и целой части, по умолчанию в системе стоит запятая, поставьте точку. И тогда всё становится числовым значением без макросов)))
 
Ответить
Сообщениеесть еще один вариант если речь про 1с.
В параметрах системы, в языках и региональных параметрах, на вкладке дополнительные параметры заменить разделитель дробной и целой части, по умолчанию в системе стоит запятая, поставьте точку. И тогда всё становится числовым значением без макросов)))

Автор - DJ_Marker_MC
Дата добавления - 29.08.2013 в 12:45
MCH Дата: Четверг, 29.08.2013, 12:47 | Сообщение № 9
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Вариант без "найти/заменить" при импорте текстового файла с точками в качестве разделителей (например, из 1С)
1. Временно устанавливаем в Excel в качестве разделителя целой и дробной части - точку
2. Импортируем данные (они автоматически преобразуются в числа)
3. Возвращаем запятую в качестве разделителя

Если вначале импортировать, а затем менять разделитель с точки на запятую, то некоторые числа, такие как "1.2" могут превратится в даты - "01.фев" и данные сложно будет восстановить
 
Ответить
СообщениеВариант без "найти/заменить" при импорте текстового файла с точками в качестве разделителей (например, из 1С)
1. Временно устанавливаем в Excel в качестве разделителя целой и дробной части - точку
2. Импортируем данные (они автоматически преобразуются в числа)
3. Возвращаем запятую в качестве разделителя

Если вначале импортировать, а затем менять разделитель с точки на запятую, то некоторые числа, такие как "1.2" могут превратится в даты - "01.фев" и данные сложно будет восстановить

Автор - MCH
Дата добавления - 29.08.2013 в 12:47
Матрёна Дата: Четверг, 29.08.2013, 13:04 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Полагаю не имеет смысла временно менять разделитель целой и дробной части в EXCEL.
В лучшем случае здесь имеет место элементарное копирование информации в файле-источнике.
Однако, очень даже возможно - выделение и копирование с экрана Генератора Отчетов в ПО и элементарная вставка в EXCEL.
Поэтому достаточно только в этой информации заменить точку на запятую уже после ее вставки в EXCEL.


Сообщение отредактировал Матрёна - Четверг, 29.08.2013, 13:07
 
Ответить
СообщениеПолагаю не имеет смысла временно менять разделитель целой и дробной части в EXCEL.
В лучшем случае здесь имеет место элементарное копирование информации в файле-источнике.
Однако, очень даже возможно - выделение и копирование с экрана Генератора Отчетов в ПО и элементарная вставка в EXCEL.
Поэтому достаточно только в этой информации заменить точку на запятую уже после ее вставки в EXCEL.

Автор - Матрёна
Дата добавления - 29.08.2013 в 13:04
MCH Дата: Четверг, 29.08.2013, 13:21 | Сообщение № 11
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата (Матрёна, Четверг, 29.08.2013, 13:04 # 10)
Полагаю не имеет смысла временно менять разделитель целой и дробной части в EXCEL

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

Кроме того, данный метод применим и при копировании данных через буфер обмена из 1С, при этом можно преобразовать числа в формате "#,##0.00", задав соответствующие разделители в настройках. Это значительно быстрее чем делать поиск/замену.

Для преобразования уже загруженных чисел в формате "#,##0.00" использую макрос:
[vba]
Код
Sub Text1C()
        'Преобразование чисел из 1С в виде #,##0.00 в формат # ##0,00
        Dim r As Range
        With Application
            .DecimalSeparator = "."
            .ThousandsSeparator = ","
            .UseSystemSeparators = False
        End With
        For Each r In Cells.SpecialCells(xlCellTypeConstants, 2)
            If r = " " Then r.ClearContents Else r = r.Value
        Next r
        Application.UseSystemSeparators = True
End Sub
[/vba]
Заодно и даты текстом преобразует в нормальные даты

К файлу l-lisa данный макрос тоже применим


Сообщение отредактировал MCH - Четверг, 29.08.2013, 13:32
 
Ответить
Сообщение
Цитата (Матрёна, Четверг, 29.08.2013, 13:04 # 10)
Полагаю не имеет смысла временно менять разделитель целой и дробной части в EXCEL

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

Кроме того, данный метод применим и при копировании данных через буфер обмена из 1С, при этом можно преобразовать числа в формате "#,##0.00", задав соответствующие разделители в настройках. Это значительно быстрее чем делать поиск/замену.

Для преобразования уже загруженных чисел в формате "#,##0.00" использую макрос:
[vba]
Код
Sub Text1C()
        'Преобразование чисел из 1С в виде #,##0.00 в формат # ##0,00
        Dim r As Range
        With Application
            .DecimalSeparator = "."
            .ThousandsSeparator = ","
            .UseSystemSeparators = False
        End With
        For Each r In Cells.SpecialCells(xlCellTypeConstants, 2)
            If r = " " Then r.ClearContents Else r = r.Value
        Next r
        Application.UseSystemSeparators = True
End Sub
[/vba]
Заодно и даты текстом преобразует в нормальные даты

К файлу l-lisa данный макрос тоже применим

Автор - MCH
Дата добавления - 29.08.2013 в 13:21
Матрёна Дата: Четверг, 29.08.2013, 13:39 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 398
Репутация: 40 ±
Замечаний: 0% ±

Случаи разные бывают

Это бесспорно.
Однако, "исход" информации l-lisa нам не известен.
Для ее информации (в данном случае) все меры предосторожности излишни.
А если эта работа "разовая" - тем паче.
Интересно было бы узнать об "исходе" ее информации.
Полагаю, заполучив макрос, она счастлива и все остальное для нее - "фиолетово"!
 
Ответить
Сообщение
Случаи разные бывают

Это бесспорно.
Однако, "исход" информации l-lisa нам не известен.
Для ее информации (в данном случае) все меры предосторожности излишни.
А если эта работа "разовая" - тем паче.
Интересно было бы узнать об "исходе" ее информации.
Полагаю, заполучив макрос, она счастлива и все остальное для нее - "фиолетово"!

Автор - Матрёна
Дата добавления - 29.08.2013 в 13:39
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!