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

Вход

Регистрация

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

 

= Мир MS Excel/Пересобрать таблицу, по другому принципу сортирования. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Пересобрать таблицу, по другому принципу сортирования. (Формулы/Formulas)
Пересобрать таблицу, по другому принципу сортирования.
mikaelw Дата: Воскресенье, 12.04.2020, 22:23 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
Всем привет!

Это реестр учета приборов учета ХВС и ГВС.
Сейчас в реестре 900 строк

Есть таблица БД, ее надо перестраивать.
динамически получать новую при добавлении значений в БД.

Ее не нужно пересортировать, ее нужно принципиально перестроить.

1. в БД нужно обрабатывать строки только со значением "установлен" из столбца 1.
2. в столбце л/с и № значение может быть только 2 раза(но иногда и 1 раз) повторяться(это проверяется на вкладке БД при заполнении).
3. Нужно построить таблицу по л/с
4. расположив напротив л/с сначала прибор ХВС, а потом ГВС

Смотрите пример.

В примере исходная БД на вкладке БД
Требуемый результат на вкладке результат.

P.S.Я не понимаю как это сделать.
Не могу понять как это делать, динамически или вызовом макроса, но делать это в ручную реальная каторга, т.к. приходиться потом сидеть и проверять.

Заранее спасибо!
К сообщению приложен файл: 8727780.xlsx(21.6 Kb)
 
Ответить
СообщениеВсем привет!

Это реестр учета приборов учета ХВС и ГВС.
Сейчас в реестре 900 строк

Есть таблица БД, ее надо перестраивать.
динамически получать новую при добавлении значений в БД.

Ее не нужно пересортировать, ее нужно принципиально перестроить.

1. в БД нужно обрабатывать строки только со значением "установлен" из столбца 1.
2. в столбце л/с и № значение может быть только 2 раза(но иногда и 1 раз) повторяться(это проверяется на вкладке БД при заполнении).
3. Нужно построить таблицу по л/с
4. расположив напротив л/с сначала прибор ХВС, а потом ГВС

Смотрите пример.

В примере исходная БД на вкладке БД
Требуемый результат на вкладке результат.

P.S.Я не понимаю как это сделать.
Не могу понять как это делать, динамически или вызовом макроса, но делать это в ручную реальная каторга, т.к. приходиться потом сидеть и проверять.

Заранее спасибо!

Автор - mikaelw
Дата добавления - 12.04.2020 в 22:23
прохожий2019 Дата: Воскресенье, 12.04.2020, 23:15 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 383
Репутация: 64 ±
Замечаний: 0% ±

365 Beta Channel
может PQ? [vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    filtr = Table.SelectRows(from, each ([Статс] = "установлен")),
    group = Table.Group(filtr, {"л/с","№","Ресурс"}, {"Количество", each _, type table}),
    pivot = Table.Pivot(group, List.Distinct(group[Ресурс]), "Ресурс", "Количество"),
    lst = {"№ прибора","Срок поверки до","Прибор","ДАТА","Дата пр-ва", "срок поверки"},
    exp = Table.ExpandTableColumn(pivot, "ХВС", lst, List.Transform(lst, each "ХВС."&_)),
    to = Table.ExpandTableColumn(exp, "ГВС", lst, List.Transform(lst, each "ГВС."&_))
in
    to
[/vba]
К сообщению приложен файл: 3176242.xlsx(31.4 Kb)
 
Ответить
Сообщениеможет PQ? [vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    filtr = Table.SelectRows(from, each ([Статс] = "установлен")),
    group = Table.Group(filtr, {"л/с","№","Ресурс"}, {"Количество", each _, type table}),
    pivot = Table.Pivot(group, List.Distinct(group[Ресурс]), "Ресурс", "Количество"),
    lst = {"№ прибора","Срок поверки до","Прибор","ДАТА","Дата пр-ва", "срок поверки"},
    exp = Table.ExpandTableColumn(pivot, "ХВС", lst, List.Transform(lst, each "ХВС."&_)),
    to = Table.ExpandTableColumn(exp, "ГВС", lst, List.Transform(lst, each "ГВС."&_))
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 12.04.2020 в 23:15
mikaelw Дата: Воскресенье, 12.04.2020, 23:18 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
Цитата прохожий2019, 12.04.2020 в 23:15, в сообщении № 2 ()
может PQ?

Я понимаю что это power query или макрос......

Но мне такое написать не по силам......
 
Ответить
Сообщение
Цитата прохожий2019, 12.04.2020 в 23:15, в сообщении № 2 ()
может PQ?

Я понимаю что это power query или макрос......

Но мне такое написать не по силам......

Автор - mikaelw
Дата добавления - 12.04.2020 в 23:18
прохожий2019 Дата: Воскресенье, 12.04.2020, 23:27 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 383
Репутация: 64 ±
Замечаний: 0% ±

365 Beta Channel
Так, а результат в файле чем не устраивает? От вас же требуется только обновлять запрос
И не понял про повторяющиеся л/с и № - что делать с повторами, удалять? тогда:[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    filtr = Table.SelectRows(from, each ([Статс] = "установлен")),
    group = Table.Group(filtr, {"л/с","№","Ресурс"}, {"Количество", each _{0}, type table}),
    pivot = Table.Pivot(group, List.Distinct(group[Ресурс]), "Ресурс", "Количество"),
    lst = {"№ прибора","Срок поверки до","Прибор","ДАТА","Дата пр-ва", "срок поверки"},
    exp = Table.ExpandRecordColumn(pivot, "ХВС", lst, List.Transform(lst, each "ХВС."&_)),
    to = Table.ExpandRecordColumn(exp, "ГВС", lst, List.Transform(lst, each "ГВС."&_))
in
to
[/vba]
К сообщению приложен файл: 3618542.xlsx(31.4 Kb)


Сообщение отредактировал прохожий2019 - Воскресенье, 12.04.2020, 23:28
 
Ответить
СообщениеТак, а результат в файле чем не устраивает? От вас же требуется только обновлять запрос
И не понял про повторяющиеся л/с и № - что делать с повторами, удалять? тогда:[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    filtr = Table.SelectRows(from, each ([Статс] = "установлен")),
    group = Table.Group(filtr, {"л/с","№","Ресурс"}, {"Количество", each _{0}, type table}),
    pivot = Table.Pivot(group, List.Distinct(group[Ресурс]), "Ресурс", "Количество"),
    lst = {"№ прибора","Срок поверки до","Прибор","ДАТА","Дата пр-ва", "срок поверки"},
    exp = Table.ExpandRecordColumn(pivot, "ХВС", lst, List.Transform(lst, each "ХВС."&_)),
    to = Table.ExpandRecordColumn(exp, "ГВС", lst, List.Transform(lst, each "ГВС."&_))
in
to
[/vba]

Автор - прохожий2019
Дата добавления - 12.04.2020 в 23:27
mikaelw Дата: Воскресенье, 12.04.2020, 23:34 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 120
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010, 2013, 2016
Цитата прохожий2019, 12.04.2020 в 23:27, в сообщении № 4 ()
ак, а результат в файле чем не устраивает?


ВСЕ СУПЕР!!!!!!!
Все устраивает, уже перенес в файл.

Я только форматирование дат настроил...
И столбцы пустые добавил


Сообщение отредактировал mikaelw - Воскресенье, 12.04.2020, 23:35
 
Ответить
Сообщение
Цитата прохожий2019, 12.04.2020 в 23:27, в сообщении № 4 ()
ак, а результат в файле чем не устраивает?


ВСЕ СУПЕР!!!!!!!
Все устраивает, уже перенес в файл.

Я только форматирование дат настроил...
И столбцы пустые добавил

Автор - mikaelw
Дата добавления - 12.04.2020 в 23:34
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Пересобрать таблицу, по другому принципу сортирования. (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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