Страницы: 1
RSS
Переделка структуры таблицы из "горизонтальной" в "вертикальную".
 
Имеется таблица с большим количеством записей. Условно можно назвать горизонтальной. В таком виде virtuemart 1.1 хранил записи. Разработчик не предусмотрел при обновлении до Virtuemart 3 перенос пользовательских типов. Администратор форума Virtuemart ответил, что каждый самостоятельно должен переносить этот вид данных. Но у меня порядка 50000 строк такого вида:

Скрытый текст


В новой версии таблица уже вертикальная. В каждой строке только одна запись. На примере взял как должен выглядеть товар с id 2900 в новой версии.
Скрытый текст


Возможно как-то автоматически переделать в новый вид эту таблицу? Лет 6 вручную пополнял потихоньку её, а теперь всё переделать для новой версии нереально.
 
Цитата
Возможно как-то автоматически переделать в новый вид эту таблицу?
Эту - можно. Повернуть рисунок на 90 градусов )

Вы на форуме по рисованию или по Exсel?
 
Нужен документ для примера? Или что это означает? Сейчас не совсем до юмора.
 
Злые вы, ребята... Помощь - главное предназначение форума, ИМХО...

alaudi, выдели таблицу, скопируй и вставь ее через Специальную вставку, поставив галочку в пункте "Транспонировать"
Изменено: neecs - 22.11.2016 15:58:26
 
Ага, помогающиие из рисунков переносят данные в новые файлы...
Надо смотреть шире: форум не для помощи - для получение знаний.

И еще - с незнакомыми на форуме принято на "Вы" общаться.
 
Цитата
neecs написал:
выдели таблицу, скопируй и вставь ее через Специальную вставку, поставив галочку в пункте "Транспонировать"
Нашел этот пункт, но там никаких вариаций или настроек не предлагается. Просто развернуло таблицу.
А смысл в том, что как я уже писал ранее:
Была 1 строка: id param1 param2 param3
Стало 3 строки: id param1
id param2
id param3


3 для примера, может и 5-10 быть.
 
Кросс - http://www.sql.ru/forum/1239678/peredelka-struktury-tablicy-iz-gorizontalnoy-v-vertikalnuu
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
3 для примера, может и 5-10 быть.
Лучше макросом. Формулой если и можно, то сложно получится. Таблица, видимо, большая, много тяжелых формул - тормоза
 
Я, к сожалению, не программист и есть только базовые знания Excel. Поэтому и обратился за помощью.
 
Нашел скрипт, который раскладывает параметры по строкам. Преобразовалось почти всё как надо, вышло 170000 строк. Но некоторые параметры содержали более одного значения, поэтому тут скрипт не справился. Таких строк около 3500. Весь файл не поместился. Приложил первую 1000 строк.

В таблице записи вида:
Код
1143   320   432   Цыпленок;Гречка
1150   321   432   Цветная капуста;Картофель;Говядина
Может кто-нибудь сможет помочь переделать в:
Код
1143   320   432   Цыпленок
1143   320   432   Гречка
1150   321   432   Цветная капуста
1150   321   432   Картофель
1150   321   432   Говядина

Т.е. продублировать коды для каждого слова, отделенного знаком ;
 
Посмотрите тему
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=81538
 
Kuzmich, спасибо, разобрался.
 
Код
Sub Resultat()
Dim i As Long
Dim j As Integer
Dim iLastRow As Long
Dim Kod1 As Long
Dim Kod2 As Long
Dim Kod3 As Long
Dim iGruppa
Application.ScreenUpdating = False
  iLastRow = [A1].End(xlDown).Row
     For i = iLastRow To 1 Step -1
       If InStr(1, Cells(i, 4), ";") <> 0 Then
          iGruppa = Split(Cells(i, 4), ";")
           Kod1 = Cells(i, 1)
           Kod2 = Cells(i, 2)
           Kod3 = Cells(i, 3)
         For j = 0 To UBound(iGruppa)
           Rows(i + j).Insert
           Cells(i + j, 1) = Kod1
           Cells(i + j, 2) = Kod2
           Cells(i + j, 3) = Kod3
           Cells(i + j, 4) = iGruppa(j)
         Next
           Rows(i + j).Delete
       End If
     Next
Application.ScreenUpdating = True
End Sub
Страницы: 1
Читают тему
Наверх