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

Вход

Регистрация

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

 

= Мир MS Excel/Перевести тип данных в текстовый - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Перевести тип данных в текстовый
Uralan Дата: Понедельник, 14.02.2011, 10:25 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

День добрый! Меняю формат ячеек у всех на текстовый. Тип данных текстовым не становится (это в SQL'е можно проверить). F2 и enter "спасают", просто таблица очень большая. Подскажите как вставить во все значимые ячейки перед значением апостроф. Либо посоветуйте альтернативу. Спасибо!
К сообщению приложен файл: 4882251.xls (34.5 Kb)


Сообщение отредактировал Uralan - Понедельник, 14.02.2011, 10:57
 
Ответить
СообщениеДень добрый! Меняю формат ячеек у всех на текстовый. Тип данных текстовым не становится (это в SQL'е можно проверить). F2 и enter "спасают", просто таблица очень большая. Подскажите как вставить во все значимые ячейки перед значением апостроф. Либо посоветуйте альтернативу. Спасибо!

Автор - Uralan
Дата добавления - 14.02.2011 в 10:25
Hugo Дата: Понедельник, 14.02.2011, 10:47 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3716
Репутация: 795 ±
Замечаний: 0% ±

365
Где-то я это уже видел smile
Перенёс сюда


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеГде-то я это уже видел smile
Перенёс сюда

Автор - Hugo
Дата добавления - 14.02.2011 в 10:47
Саня Дата: Понедельник, 14.02.2011, 10:53 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
умеешь пользоваться макросами?
выделяешь ячейки, которые нужно перебить в текст, жмешь Alt+F8, ищешь этот макрос (конечно его нужно сначала засунуть в какую-нибудь книгу, напр., в Personal) - "Выполнить"
[vba]
Код
Sub Макрос()
     Dim c As Range
       
     For Each c In Selection
        c = CStr(c)
     Next
End Su
[/vba]b
 
Ответить
Сообщениеумеешь пользоваться макросами?
выделяешь ячейки, которые нужно перебить в текст, жмешь Alt+F8, ищешь этот макрос (конечно его нужно сначала засунуть в какую-нибудь книгу, напр., в Personal) - "Выполнить"
[vba]
Код
Sub Макрос()
     Dim c As Range
       
     For Each c In Selection
        c = CStr(c)
     Next
End Su
[/vba]b

Автор - Саня
Дата добавления - 14.02.2011 в 10:53
Uralan Дата: Понедельник, 14.02.2011, 10:55 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

Hugo, а я думал, что ее просто затерли, на следующий день не нашел уже своих сообщений! Всем спасибо! Сейчас удалю тему!
 
Ответить
СообщениеHugo, а я думал, что ее просто затерли, на следующий день не нашел уже своих сообщений! Всем спасибо! Сейчас удалю тему!

Автор - Uralan
Дата добавления - 14.02.2011 в 10:55
Uralan Дата: Понедельник, 14.02.2011, 11:49 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

не пойму как удалить...
 
Ответить
Сообщениене пойму как удалить...

Автор - Uralan
Дата добавления - 14.02.2011 в 11:49
Alex_ST Дата: Понедельник, 14.02.2011, 12:44 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Я чтобы привести значения в соответствие с форматом ячеек применял такой макрос:[vba]
Код
Sub Repair_Value()   ' исправить (обновить)записи в ячейках чтобы приняли формат
           If TypeName(Selection) <> "Range" Then Exit Sub
           Dim iArr, Arr(), uRng As Range
           Set uRng = Intersect(Selection, Selection.Parent.UsedRange)
           Arr = uRng.Value
           On Error Resume Next
           For Each iArr In Arr: iArr = iArr * 1: Next
           uRng.Value = Arr
           uRng.Select
End Sub
[/vba]

код работает БЫСТРО, но не всегда почему-то происходит обновление ячеек...
Наверное, потому что идёт передача данных из массива в диапазон "одним махом".
Тогда макрос Сани можно чуть подпилить так:
[vba]
Код
Sub Repair_Value_Text()
       If TypeName(Selection) <> "Range" Then Exit Sub
       Dim iCell As Range
       Application.ScreenUpdating = False
       For Each iCell In Intersect(Selection, Selection.Parent.UsedRange)
          iCell.Value = iCell.Value & ""
       Next
       Application.ScreenUpdating = True
End Sub
[/vba]

P.S. Чуть-чуть подредактировал 15.02.2011 в 11:58 - добавил забытый мною запрет обновления экрана для увеличения скорости



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 15.02.2011, 12:00
 
Ответить
СообщениеЯ чтобы привести значения в соответствие с форматом ячеек применял такой макрос:[vba]
Код
Sub Repair_Value()   ' исправить (обновить)записи в ячейках чтобы приняли формат
           If TypeName(Selection) <> "Range" Then Exit Sub
           Dim iArr, Arr(), uRng As Range
           Set uRng = Intersect(Selection, Selection.Parent.UsedRange)
           Arr = uRng.Value
           On Error Resume Next
           For Each iArr In Arr: iArr = iArr * 1: Next
           uRng.Value = Arr
           uRng.Select
End Sub
[/vba]

код работает БЫСТРО, но не всегда почему-то происходит обновление ячеек...
Наверное, потому что идёт передача данных из массива в диапазон "одним махом".
Тогда макрос Сани можно чуть подпилить так:
[vba]
Код
Sub Repair_Value_Text()
       If TypeName(Selection) <> "Range" Then Exit Sub
       Dim iCell As Range
       Application.ScreenUpdating = False
       For Each iCell In Intersect(Selection, Selection.Parent.UsedRange)
          iCell.Value = iCell.Value & ""
       Next
       Application.ScreenUpdating = True
End Sub
[/vba]

P.S. Чуть-чуть подредактировал 15.02.2011 в 11:58 - добавил забытый мною запрет обновления экрана для увеличения скорости

Автор - Alex_ST
Дата добавления - 14.02.2011 в 12:44
Uralan Дата: Понедельник, 14.02.2011, 14:31 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

Alex_ST, Спасибо большое! А можете объяснить смысл почему excel не переводит сразу в нужный мне тип данных? И я слышал такую версию, что если вручную вводить данные, то с ними легче работать, переводить их из одного формата в другой.


Сообщение отредактировал Uralan - Понедельник, 14.02.2011, 14:31
 
Ответить
СообщениеAlex_ST, Спасибо большое! А можете объяснить смысл почему excel не переводит сразу в нужный мне тип данных? И я слышал такую версию, что если вручную вводить данные, то с ними легче работать, переводить их из одного формата в другой.

Автор - Uralan
Дата добавления - 14.02.2011 в 14:31
Alex_ST Дата: Понедельник, 14.02.2011, 22:31 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
При ручном вводе Ёксель применяет автоформат к данным в соответствии с форматом ячейки. Поэтому и работать с правильно отформатированными данными должно бы быть легче.
Но не всегда. Если ячейку с введёнными датой, временем отформатировать как число, то получится абсолютно не вразумительное число, которое далеко не факт, что потом сможешь обратно преобразовать в дату, время.
Да и глючит часто этот автоформат... Пытаешься, например, ввести руками в ячейку с общим форматом номер пункта многоуровневого списка 1.2.3, так "шибко умный" Ёксель думает за тебя, что ты хотел ввести дату и преобразует формат ячейки в дату, а сам этот твой ввод в 01.02.2003. И фиг его переубедишь, что так делать не надо.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеПри ручном вводе Ёксель применяет автоформат к данным в соответствии с форматом ячейки. Поэтому и работать с правильно отформатированными данными должно бы быть легче.
Но не всегда. Если ячейку с введёнными датой, временем отформатировать как число, то получится абсолютно не вразумительное число, которое далеко не факт, что потом сможешь обратно преобразовать в дату, время.
Да и глючит часто этот автоформат... Пытаешься, например, ввести руками в ячейку с общим форматом номер пункта многоуровневого списка 1.2.3, так "шибко умный" Ёксель думает за тебя, что ты хотел ввести дату и преобразует формат ячейки в дату, а сам этот твой ввод в 01.02.2003. И фиг его переубедишь, что так делать не надо.

Автор - Alex_ST
Дата добавления - 14.02.2011 в 22:31
Uralan Дата: Вторник, 15.02.2011, 12:07 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

Alex_ST, да уж... Я, кстати, заметил, что Excel и считает с нормальной погрешностью! Например в умножении, делении... но это на 2000-ом, делал давно статистику. В общем, на калькуляторе другое получается!
 
Ответить
СообщениеAlex_ST, да уж... Я, кстати, заметил, что Excel и считает с нормальной погрешностью! Например в умножении, делении... но это на 2000-ом, делал давно статистику. В общем, на калькуляторе другое получается!

Автор - Uralan
Дата добавления - 15.02.2011 в 12:07
Alex_ST Дата: Понедельник, 08.07.2013, 10:29 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3214
Репутация: 615 ±
Замечаний: 0% ±

2003
Тут обнаружил у себя в заначке допиленный макрос, который исправляет экспортированные как текст данные в числа[vba]
Код
Sub Repair_Value()   ' в выделенных ячейках исправить экспортированные как текст данные чтобы нормально опознались числа
    Dim rArea As Range
    On Error Resume Next
    ActiveWindow.RangeSelection.SpecialCells(xlCellTypeConstants).Select
    If Err Then Exit Sub
    With Application: .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual: End With
    For Each rArea In Selection.Areas
       rArea.FormulaLocal = rArea.FormulaLocal
    Next rArea
    With Application: .ScreenUpdating = True: .EnableEvents = True: .Calculation = xlAutomatic: End With
End Sub
[/vba]
Извините, ребята, не помню, с кем и где это "полировалось", но работает очень хорошо.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеТут обнаружил у себя в заначке допиленный макрос, который исправляет экспортированные как текст данные в числа[vba]
Код
Sub Repair_Value()   ' в выделенных ячейках исправить экспортированные как текст данные чтобы нормально опознались числа
    Dim rArea As Range
    On Error Resume Next
    ActiveWindow.RangeSelection.SpecialCells(xlCellTypeConstants).Select
    If Err Then Exit Sub
    With Application: .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual: End With
    For Each rArea In Selection.Areas
       rArea.FormulaLocal = rArea.FormulaLocal
    Next rArea
    With Application: .ScreenUpdating = True: .EnableEvents = True: .Calculation = xlAutomatic: End With
End Sub
[/vba]
Извините, ребята, не помню, с кем и где это "полировалось", но работает очень хорошо.

Автор - Alex_ST
Дата добавления - 08.07.2013 в 10:29
  • Страница 1 из 1
  • 1
Поиск:

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