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

Вход

Регистрация

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

 

= Мир MS Excel/Сводная таблица через VBA - Мир MS Excel

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

Excel 2016
Добрый день.
Помогите, пожалуйста, с написанием небольшого кода для формирования сводной таблицы из имеющегося диапазона данных.
Дано: 4 столбца данных: длина стены, высота стены, цвет стены с одной стороны, цвет стены с другой стороны.
Задача: получить сводную таблицу по каждому цвету, найденному в таблице, с перечислением соотв. длины и высоты, отсортированную по высотам т.е.
синий: 2700(д); 3000(в)
6000(д); 2500 (в)
и т.д.
красный: 2700(д); 2500(в)
и т.д.
Количество строк динамическое.
Все стандартные методы вроде комбинаций с ВПР/ИНДЕКС/ПОИСКПОЗ очень громоздкие, с множеством пустых (нулевых) ячеек и лишних костылей и промежуточных таблиц. А в VBA это кажется простейшим набором циклов (ключевое слово Кажется, - конечно).
Готовых решений я не нашел, т.к., как правило, это либо замена ВПР, что не совсем отражает суть, либо не тот тип сведения.
К сожалению, в VBA я ничего не понимаю, хоть и попытался разобраться с массивами и циклами. К результату не пришел.
Буду крайне признателен за любую помощь.
К сообщению приложен файл: 0620656.xlsx(11.0 Kb)


Сообщение отредактировал denberestov - Среда, 28.08.2019, 21:23
 
Ответить
СообщениеДобрый день.
Помогите, пожалуйста, с написанием небольшого кода для формирования сводной таблицы из имеющегося диапазона данных.
Дано: 4 столбца данных: длина стены, высота стены, цвет стены с одной стороны, цвет стены с другой стороны.
Задача: получить сводную таблицу по каждому цвету, найденному в таблице, с перечислением соотв. длины и высоты, отсортированную по высотам т.е.
синий: 2700(д); 3000(в)
6000(д); 2500 (в)
и т.д.
красный: 2700(д); 2500(в)
и т.д.
Количество строк динамическое.
Все стандартные методы вроде комбинаций с ВПР/ИНДЕКС/ПОИСКПОЗ очень громоздкие, с множеством пустых (нулевых) ячеек и лишних костылей и промежуточных таблиц. А в VBA это кажется простейшим набором циклов (ключевое слово Кажется, - конечно).
Готовых решений я не нашел, т.к., как правило, это либо замена ВПР, что не совсем отражает суть, либо не тот тип сведения.
К сожалению, в VBA я ничего не понимаю, хоть и попытался разобраться с массивами и циклами. К результату не пришел.
Буду крайне признателен за любую помощь.

Автор - denberestov
Дата добавления - 28.08.2019 в 21:15
gling Дата: Среда, 28.08.2019, 23:47 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1968
Репутация: 488 ±
Замечаний: 0% ±

2010
Здравствуйте. Вариант формулами. Не знаю, будут ли тормозить на ваших данных.
Код
=ЕСЛИОШИБКА(ИНДЕКС(Данные!$C$1:$C$17;СУММПРОИЗВ(НАИБОЛЬШИЙ((Данные!$A$1:$E$17=A$9)*(СТРОКА(Данные!$A$1:$E$17));СЧЁТЕСЛИ(Данные!$A$1:$E$17;A$2)-СТРОКА(A1)+1)));"")
Код
=ЕСЛИОШИБКА(ИНДЕКС(Данные!$D$1:$D$17;СУММПРОИЗВ(НАИБОЛЬШИЙ((Данные!$A$1:$E$17=A$9)*(СТРОКА(Данные!$A$1:$E$17));СЧЁТЕСЛИ(Данные!$A$1:$E$17;A$2)-СТРОКА(A1)+1)));"")
К сообщению приложен файл: 3282543.xlsx(13.1 Kb)


ЯД-41001506838083

Сообщение отредактировал gling - Среда, 28.08.2019, 23:52
 
Ответить
СообщениеЗдравствуйте. Вариант формулами. Не знаю, будут ли тормозить на ваших данных.
Код
=ЕСЛИОШИБКА(ИНДЕКС(Данные!$C$1:$C$17;СУММПРОИЗВ(НАИБОЛЬШИЙ((Данные!$A$1:$E$17=A$9)*(СТРОКА(Данные!$A$1:$E$17));СЧЁТЕСЛИ(Данные!$A$1:$E$17;A$2)-СТРОКА(A1)+1)));"")
Код
=ЕСЛИОШИБКА(ИНДЕКС(Данные!$D$1:$D$17;СУММПРОИЗВ(НАИБОЛЬШИЙ((Данные!$A$1:$E$17=A$9)*(СТРОКА(Данные!$A$1:$E$17));СЧЁТЕСЛИ(Данные!$A$1:$E$17;A$2)-СТРОКА(A1)+1)));"")

Автор - gling
Дата добавления - 28.08.2019 в 23:47
denberestov Дата: Четверг, 29.08.2019, 10:15 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
gling, спасибо Вам за помощь и низкий поклон.
Признаюсь, у меня с помощью формул выходило куда неряшливее.
Буду пользоваться результатом Ваших трудов, пока объем данных будет позволять и не найдется кто-то, кто сможет сделать это еще изящнее с помощью VBA.
 
Ответить
Сообщениеgling, спасибо Вам за помощь и низкий поклон.
Признаюсь, у меня с помощью формул выходило куда неряшливее.
Буду пользоваться результатом Ваших трудов, пока объем данных будет позволять и не найдется кто-то, кто сможет сделать это еще изящнее с помощью VBA.

Автор - denberestov
Дата добавления - 29.08.2019 в 10:15
denberestov Дата: Четверг, 29.08.2019, 14:15 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
есть, правда, в этом решении проблема - нет сортировки по высотам и, как следствие, возвращаемся к промежуточным таблицам
 
Ответить
Сообщениеесть, правда, в этом решении проблема - нет сортировки по высотам и, как следствие, возвращаемся к промежуточным таблицам

Автор - denberestov
Дата добавления - 29.08.2019 в 14:15
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сводная таблица через VBA (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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