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

Вход

Регистрация

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

 

= Мир MS Excel/преобразование таблицы - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
преобразование таблицы
Антон Дата: Понедельник, 12.08.2013, 11:37 | Сообщение № 1
Группа: Гости
имеется большая таблица ( 16000 строк) в формате
фамилия Пупкин
Имя Василий
Отчество Иваноыич
Статус К8
фамилия ****
Имя ****
Отчество ****
Статус ****
фамилия ****
Имя ****
Отчество ****
Статус ****

как преобразовать эту таблицу в формат
Фамилия Имя Отчество Статус
Пупкин Василий Иванович К8
****** ****** ******** **
****** ****** ******** **

ФИО могут повторятся
 
Ответить
Сообщениеимеется большая таблица ( 16000 строк) в формате
фамилия Пупкин
Имя Василий
Отчество Иваноыич
Статус К8
фамилия ****
Имя ****
Отчество ****
Статус ****
фамилия ****
Имя ****
Отчество ****
Статус ****

как преобразовать эту таблицу в формат
Фамилия Имя Отчество Статус
Пупкин Василий Иванович К8
****** ****** ******** **
****** ****** ******** **

ФИО могут повторятся

Автор - Антон
Дата добавления - 12.08.2013 в 11:37
KuklP Дата: Понедельник, 12.08.2013, 11:58 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Зарегистрироваться, выложить пример в файле.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЗарегистрироваться, выложить пример в файле.

Автор - KuklP
Дата добавления - 12.08.2013 в 11:58
shurik_009 Дата: Понедельник, 12.08.2013, 13:06 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
разделяешь по столбцам используя пробелы а дальше сводная таблица!
 
Ответить
Сообщениеразделяешь по столбцам используя пробелы а дальше сводная таблица!

Автор - shurik_009
Дата добавления - 12.08.2013 в 13:06
Wasilich Дата: Понедельник, 12.08.2013, 21:14 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
имеется большая таблица ( 16000 строк)

Ну, для макроса это мелочи, пара минут. Даже без регистрации и файла. :D
К сообщению приложен файл: 8389099.xls (33.5 Kb)


Сообщение отредактировал Wasilic - Понедельник, 12.08.2013, 21:15
 
Ответить
Сообщение
имеется большая таблица ( 16000 строк)

Ну, для макроса это мелочи, пара минут. Даже без регистрации и файла. :D

Автор - Wasilich
Дата добавления - 12.08.2013 в 21:14
Hugo Дата: Понедельник, 12.08.2013, 21:41 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3716
Репутация: 795 ±
Замечаний: 0% ±

365
Wasilic, integer там не годится - мы ведь не знаем, сколько там может в другой раз быть фамилий!
К тому же в последних версиях всё равно все приводится в Long - но ошибки почему-то остаются :(

Можно и побыстрее:
[vba]
Код
Sub Кнопка1_Щелкнуть()
       Dim a, i&
       a = [c5].CurrentRegion.Value
       ReDim b(1 To UBound(a) / 4 + 1, 1 To 4)
       On Error Resume Next
       For i = 1 To UBound(a) Step 4
           ii = ii + 1
           For x = 1 To 4: b(ii, x) = a(i + x - 1, 1): Next
       Next

       [e5].Resize(UBound(b), 4) = b
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеWasilic, integer там не годится - мы ведь не знаем, сколько там может в другой раз быть фамилий!
К тому же в последних версиях всё равно все приводится в Long - но ошибки почему-то остаются :(

Можно и побыстрее:
[vba]
Код
Sub Кнопка1_Щелкнуть()
       Dim a, i&
       a = [c5].CurrentRegion.Value
       ReDim b(1 To UBound(a) / 4 + 1, 1 To 4)
       On Error Resume Next
       For i = 1 To UBound(a) Step 4
           ii = ii + 1
           For x = 1 To 4: b(ii, x) = a(i + x - 1, 1): Next
       Next

       [e5].Resize(UBound(b), 4) = b
End Sub
[/vba]

Автор - Hugo
Дата добавления - 12.08.2013 в 21:41
Wasilich Дата: Понедельник, 12.08.2013, 23:33 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
integer там не годится - мы ведь не знаем, сколько там может в другой раз быть фамилий!

Как я знаю, Integer - объявляет переменную как целое число. Long - Длинное целое.
В чем разница?
На счет скорости согласен. Я старею - прогресс молодеет.
Но, это был лишь путь решения задачи.
 
Ответить
Сообщение
integer там не годится - мы ведь не знаем, сколько там может в другой раз быть фамилий!

Как я знаю, Integer - объявляет переменную как целое число. Long - Длинное целое.
В чем разница?
На счет скорости согласен. Я старею - прогресс молодеет.
Но, это был лишь путь решения задачи.

Автор - Wasilich
Дата добавления - 12.08.2013 в 23:33
Hugo Дата: Понедельник, 12.08.2013, 23:43 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3716
Репутация: 795 ±
Замечаний: 0% ±

365
У integer предел на половине листа формата 2003.
16000 конечно обработает, и даже 32000 тоже (предел 32,767), но есть риск что данных будет больше.
Хотя на этой задаче их мало.

Но смысла в Integer больше нет:
"Traditionally, VBA programmers have used integers to hold small numbers, because they required less memory. In recent versions, however, VBA converts all integer values to type Long, even if they are declared as type Integer. Therefore, there is no longer a performance advantage to using Integer variables; in fact, Long variables might be slightly faster because VBA does not have to convert them."

http://msdn.microsoft.com/en-us/library/aa164754(office.10).aspx


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеУ integer предел на половине листа формата 2003.
16000 конечно обработает, и даже 32000 тоже (предел 32,767), но есть риск что данных будет больше.
Хотя на этой задаче их мало.

Но смысла в Integer больше нет:
"Traditionally, VBA programmers have used integers to hold small numbers, because they required less memory. In recent versions, however, VBA converts all integer values to type Long, even if they are declared as type Integer. Therefore, there is no longer a performance advantage to using Integer variables; in fact, Long variables might be slightly faster because VBA does not have to convert them."

http://msdn.microsoft.com/en-us/library/aa164754(office.10).aspx

Автор - Hugo
Дата добавления - 12.08.2013 в 23:43
Serge_007 Дата: Понедельник, 12.08.2013, 23:50 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Игорь, это значит что интегер вообще лучше не использовать?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеИгорь, это значит что интегер вообще лучше не использовать?

Автор - Serge_007
Дата добавления - 12.08.2013 в 23:50
Hugo Дата: Понедельник, 12.08.2013, 23:51 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3716
Репутация: 795 ±
Замечаний: 0% ±

365
Я понял что так. И не использую.
Да и в long меньше букв писать :)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЯ понял что так. И не использую.
Да и в long меньше букв писать :)

Автор - Hugo
Дата добавления - 12.08.2013 в 23:51
RAN Дата: Понедельник, 12.08.2013, 23:54 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
И я, и я, и я такого мнения! :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИ я, и я, и я такого мнения! :D

Автор - RAN
Дата добавления - 12.08.2013 в 23:54
Serge_007 Дата: Понедельник, 12.08.2013, 23:59 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
в long меньше букв писать

Но и памяти больше используется...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
в long меньше букв писать

Но и памяти больше используется...

Автор - Serge_007
Дата добавления - 12.08.2013 в 23:59
RAN Дата: Вторник, 13.08.2013, 00:03 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Serge_007, у тебя оперативки 64 Мб? Или побольше?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеSerge_007, у тебя оперативки 64 Мб? Или побольше?

Автор - RAN
Дата добавления - 13.08.2013 в 00:03
Wasilich Дата: Вторник, 13.08.2013, 00:04 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
У integer предел на половине листа формата 2003.... (предел 32,767),

[offtop]Да уж. А, я ведь об этом уже где то читал. Но, старческая привычка. :)
Просто не было таких объемов. Исправлюсь.[/offtop]
 
Ответить
Сообщение
У integer предел на половине листа формата 2003.... (предел 32,767),

[offtop]Да уж. А, я ведь об этом уже где то читал. Но, старческая привычка. :)
Просто не было таких объемов. Исправлюсь.[/offtop]

Автор - Wasilich
Дата добавления - 13.08.2013 в 00:04
Serge_007 Дата: Вторник, 13.08.2013, 00:05 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
у тебя оперативки 64 Мб?
При чём здесь это?
Вопрос ведь о ПРАВИЛАХ программирования, что есть хорошо, а что нет :)

Или ты хочешь сказать, что разница настолько мизерна, что ей можно пренебречь?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
у тебя оперативки 64 Мб?
При чём здесь это?
Вопрос ведь о ПРАВИЛАХ программирования, что есть хорошо, а что нет :)

Или ты хочешь сказать, что разница настолько мизерна, что ей можно пренебречь?

Автор - Serge_007
Дата добавления - 13.08.2013 в 00:05
RAN Дата: Вторник, 13.08.2013, 00:13 | Сообщение № 15
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Архитектура современных компьютеров предполагает использование переменных типа Long.
При работе программы все равно выполняется преобразование типа integer к типу long.

В прошлом веке хорошо, в нынешнем - плохо. :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеАрхитектура современных компьютеров предполагает использование переменных типа Long.
При работе программы все равно выполняется преобразование типа integer к типу long.

В прошлом веке хорошо, в нынешнем - плохо. :)

Автор - RAN
Дата добавления - 13.08.2013 в 00:13
Serge_007 Дата: Вторник, 13.08.2013, 00:14 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
При работе программы все равно выполняется преобразование типа integer к типу long
Я правильно получил ответ - интегер использовать бессмысленно?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
При работе программы все равно выполняется преобразование типа integer к типу long
Я правильно получил ответ - интегер использовать бессмысленно?

Автор - Serge_007
Дата добавления - 13.08.2013 в 00:14
RAN Дата: Вторник, 13.08.2013, 00:16 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Не знаю...
Я просто не использую. :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНе знаю...
Я просто не использую. :)

Автор - RAN
Дата добавления - 13.08.2013 в 00:16
Serge_007 Дата: Вторник, 13.08.2013, 00:18 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Ясно, спасибо


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЯсно, спасибо

Автор - Serge_007
Дата добавления - 13.08.2013 в 00:18
Michael_S Дата: Вторник, 13.08.2013, 00:20 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Сереж, был смысл, когда работали на машинах типа Z-Spectrum, с 48 кБ памяти на все - на код и данные.
Есть смысл, если обрабатываются массивы более 10 млн элементов. В повседневных задачах на современных машинах смыла нет.
 
Ответить
СообщениеСереж, был смысл, когда работали на машинах типа Z-Spectrum, с 48 кБ памяти на все - на код и данные.
Есть смысл, если обрабатываются массивы более 10 млн элементов. В повседневных задачах на современных машинах смыла нет.

Автор - Michael_S
Дата добавления - 13.08.2013 в 00:20
RAN Дата: Вторник, 13.08.2013, 00:21 | Сообщение № 20
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Я правильно получил ответ - интегер использовать бессмысленно?

Скорее даже вредно.
При работе программы все равно выполняется преобразование типа integer к типу long

Запас памяти есть, а быстродействие теряется.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Я правильно получил ответ - интегер использовать бессмысленно?

Скорее даже вредно.
При работе программы все равно выполняется преобразование типа integer к типу long

Запас памяти есть, а быстродействие теряется.

Автор - RAN
Дата добавления - 13.08.2013 в 00:21
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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