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

Вход

Регистрация

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

 

= Мир MS Excel/сводная как определить первую строку - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » сводная как определить первую строку (Макросы/Sub)
сводная как определить первую строку
Udik Дата: Четверг, 18.08.2016, 15:59 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Собственно такой вопрос: имеется сводная таблица с несколькими группами типа аа. В каждой группе есть повторяющиеся названия. Можно как-то определить к какой подгруппе относится название. Например, что tovar1 на 4 строке относится к aa, а tovar1 на 7 к as?
К сообщению приложен файл: 0t.xlsx(13Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеСобственно такой вопрос: имеется сводная таблица с несколькими группами типа аа. В каждой группе есть повторяющиеся названия. Можно как-то определить к какой подгруппе относится название. Например, что tovar1 на 4 строке относится к aa, а tovar1 на 7 к as?

Автор - Udik
Дата добавления - 18.08.2016 в 15:59
Manyasha Дата: Четверг, 18.08.2016, 17:08 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
Евгений, а что Вам потом с этими данными нужно делать? Можно ведь из исходных данных списки получить. Покажите, в каком виде результат хотите видеть.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеЕвгений, а что Вам потом с этими данными нужно делать? Можно ведь из исходных данных списки получить. Покажите, в каком виде результат хотите видеть.

Автор - Manyasha
Дата добавления - 18.08.2016 в 17:08
Udik Дата: Четверг, 18.08.2016, 17:28 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Да дело в том, что за таблицей к строкам привязаны данные. В источнике для сводной могут добавляться/удаляться строки. Тогда при обновлении сводной всё съезжает. Сперва сказали, что данные второго столбца (артикул) не повторяются. Я этот столбец сделал первичным ключом. Соответственно запомнил, обновил сводную, по ключу прописал данные. А теперь выяснилось, что оный артикул не совсем уникальный %) Вот и придумываю как первичный ключ составить. В реальной сводной строки подгруппы в отдельном столбце, но я воспроизвести не сумел.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Четверг, 18.08.2016, 17:29
 
Ответить
СообщениеДа дело в том, что за таблицей к строкам привязаны данные. В источнике для сводной могут добавляться/удаляться строки. Тогда при обновлении сводной всё съезжает. Сперва сказали, что данные второго столбца (артикул) не повторяются. Я этот столбец сделал первичным ключом. Соответственно запомнил, обновил сводную, по ключу прописал данные. А теперь выяснилось, что оный артикул не совсем уникальный %) Вот и придумываю как первичный ключ составить. В реальной сводной строки подгруппы в отдельном столбце, но я воспроизвести не сумел.

Автор - Udik
Дата добавления - 18.08.2016 в 17:28
Manyasha Дата: Четверг, 18.08.2016, 18:18 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
что-то я все равно не поняла, что нужно, может так?
[vba]
Код
Function getRowItem(cell As Range, numberItem) 'в этом примере 1 или 2
    If cell.PivotCell.PivotCellType = xlPivotCellValue Then
        getRowItem = cell.PivotCell.RowItems(numberItem)
    End If
End Function
[/vba]
В реальной сводной строки подгруппы в отдельном столбце, но я воспроизвести не сумел

Вкладка Работа со свод. таблицами - Конструктор - Макет отчета - Показать в табличной форме, не это?
В файле внизу еще одна сводная с этими настройками
К сообщению приложен файл: 0t-1.xlsm(25Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениечто-то я все равно не поняла, что нужно, может так?
[vba]
Код
Function getRowItem(cell As Range, numberItem) 'в этом примере 1 или 2
    If cell.PivotCell.PivotCellType = xlPivotCellValue Then
        getRowItem = cell.PivotCell.RowItems(numberItem)
    End If
End Function
[/vba]
В реальной сводной строки подгруппы в отдельном столбце, но я воспроизвести не сумел

Вкладка Работа со свод. таблицами - Конструктор - Макет отчета - Показать в табличной форме, не это?
В файле внизу еще одна сводная с этими настройками

Автор - Manyasha
Дата добавления - 18.08.2016 в 18:18
Pelena Дата: Четверг, 18.08.2016, 19:50 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 9850
Репутация: 2254 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
А доп. столбец в исходной таблице добавить не вариант? Типа
Код
=B2&" ("&A2&")"
К сообщению приложен файл: 5053419.xlsx(14Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеА доп. столбец в исходной таблице добавить не вариант? Типа
Код
=B2&" ("&A2&")"

Автор - Pelena
Дата добавления - 18.08.2016 в 19:50
Udik Дата: Пятница, 19.08.2016, 13:05 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Спасибо, похоже вариант Manyasha, самый подходящий. Теперь под себя допилю. У Pelena, тоже интересный, но не хотелось бы заставлять обычных юзеров лишние телодвижения совершать, ибо чревато :) .

Конструктор - Макет отчета - Показать в табличной форме, не это?

Да, оно самое.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Пятница, 19.08.2016, 13:08
 
Ответить
СообщениеСпасибо, похоже вариант Manyasha, самый подходящий. Теперь под себя допилю. У Pelena, тоже интересный, но не хотелось бы заставлять обычных юзеров лишние телодвижения совершать, ибо чревато :) .

Конструктор - Макет отчета - Показать в табличной форме, не это?

Да, оно самое.

Автор - Udik
Дата добавления - 19.08.2016 в 13:05
Udik Дата: Пятница, 19.08.2016, 13:56 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Чет какая-то засада. Не хочет определять подгруппу для столбца В. Или функция работает только для ячеек поля Сумма по полю?
К сообщению приложен файл: 0t.xlsm(20Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеЧет какая-то засада. Не хочет определять подгруппу для столбца В. Или функция работает только для ячеек поля Сумма по полю?

Автор - Udik
Дата добавления - 19.08.2016 в 13:56
Manyasha Дата: Пятница, 19.08.2016, 14:15 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
она работает только для данных таблицы, т.е. те, что под названием столбцов и справа от области строк.


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеона работает только для данных таблицы, т.е. те, что под названием столбцов и справа от области строк.

Автор - Manyasha
Дата добавления - 19.08.2016 в 14:15
Udik Дата: Пятница, 19.08.2016, 14:19 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Э, так ячейка В2 в таблицу входит, или я чего-то не так понимаю?
Вроде конструкция
Код
=getRowItem($B2;1)

должна работать, но не работает.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Пятница, 19.08.2016, 14:22
 
Ответить
СообщениеЭ, так ячейка В2 в таблицу входит, или я чего-то не так понимаю?
Вроде конструкция
Код
=getRowItem($B2;1)

должна работать, но не работает.

Автор - Udik
Дата добавления - 19.08.2016 в 14:19
Manyasha Дата: Пятница, 19.08.2016, 14:29 | Сообщение № 10
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
Нет, ячейка В2 входит в группу строк. В тело таблицы входит то, что выделяется этим:
[vba]
Код
[a1].PivotTable.DataBodyRange.Select
[/vba]
Что-то я туплю, ведь можно же в каждой строке возвращать группу строк: Вкладка Работа со свод. таблицами - Конструктор - Макет отчет - Повторять все подписи элементов :p
К сообщению приложен файл: 0t-2.xlsm(21Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеНет, ячейка В2 входит в группу строк. В тело таблицы входит то, что выделяется этим:
[vba]
Код
[a1].PivotTable.DataBodyRange.Select
[/vba]
Что-то я туплю, ведь можно же в каждой строке возвращать группу строк: Вкладка Работа со свод. таблицами - Конструктор - Макет отчет - Повторять все подписи элементов :p

Автор - Manyasha
Дата добавления - 19.08.2016 в 14:29
Udik Дата: Пятница, 19.08.2016, 14:49 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Ага, спасибо, так проще всего будет. :)
Если разрешите, еще маленький вопрос: как развернуть все подгруппы сводной? А то вдруг, случайно свернут парочку и весь алгоритм полетит.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеАга, спасибо, так проще всего будет. :)
Если разрешите, еще маленький вопрос: как развернуть все подгруппы сводной? А то вдруг, случайно свернут парочку и весь алгоритм полетит.

Автор - Udik
Дата добавления - 19.08.2016 в 14:49
Manyasha Дата: Пятница, 19.08.2016, 14:54 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 1586
Репутация: 662 ±
Замечаний: 0% ±

Excel 2007, 2010
Правой кнопкой мышки по любой ячейке нужного поля (напр. pole1) - Развернуть/Свернуть - развернуть все поле


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеПравой кнопкой мышки по любой ячейке нужного поля (напр. pole1) - Развернуть/Свернуть - развернуть все поле

Автор - Manyasha
Дата добавления - 19.08.2016 в 14:54
Udik Дата: Пятница, 19.08.2016, 15:12 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1209
Репутация: 153 ±
Замечаний: 0% ±

Excel 2013
Спасибо, на макрорекодере посмотрю как это на ВБА-ом языке будет :) .


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеСпасибо, на макрорекодере посмотрю как это на ВБА-ом языке будет :) .

Автор - Udik
Дата добавления - 19.08.2016 в 15:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » сводная как определить первую строку (Макросы/Sub)
Страница 1 из 11
Поиск:

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