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

Вход

Регистрация

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

 

= Мир MS Excel/Группировка в сводную таблицу - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Группировка в сводную таблицу (Формулы/Formulas)
Группировка в сводную таблицу
enzo Дата: Среда, 16.03.2016, 14:46 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день всем, из 1с делается выгрузка с уровнями группировок. Есть ли какая нибудь формула распознающая уровни группировок ? или макрос ? Хотелось бы информацию собрать удобную для сводной таблицы . Т.е самый первый уровень группировки в первом столбце 2-й во втором и тд.

Надеюсь смог объяснится
К сообщению приложен файл: 6963688.xlsx(10Kb)
 
Ответить
СообщениеДобрый день всем, из 1с делается выгрузка с уровнями группировок. Есть ли какая нибудь формула распознающая уровни группировок ? или макрос ? Хотелось бы информацию собрать удобную для сводной таблицы . Т.е самый первый уровень группировки в первом столбце 2-й во втором и тд.

Надеюсь смог объяснится

Автор - enzo
Дата добавления - 16.03.2016 в 14:46
SLAVICK Дата: Среда, 16.03.2016, 15:19 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2002
Репутация: 673 ±
Замечаний: 0% ±

2007,2010,2013,2016
Можно так:
[vba]
Код
Function d(r As Range) As Double
d = r.Rows.OutlineLevel
End Function
[/vba]
К сообщению приложен файл: 6963688.xlsm(15Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеМожно так:
[vba]
Код
Function d(r As Range) As Double
d = r.Rows.OutlineLevel
End Function
[/vba]

Автор - SLAVICK
Дата добавления - 16.03.2016 в 15:19
_Boroda_ Дата: Среда, 16.03.2016, 15:20 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11297
Репутация: 4661 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Функция пользователя. Дает уровень группировки. А дальше что хотите делайте.
[vba]
Код
Function UrGr(a As Range)
    UrGr = Rows(a.Row).OutlineLevel
End Function
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеФункция пользователя. Дает уровень группировки. А дальше что хотите делайте.
[vba]
Код
Function UrGr(a As Range)
    UrGr = Rows(a.Row).OutlineLevel
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 16.03.2016 в 15:20
abtextime Дата: Среда, 16.03.2016, 15:42 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
Рабоче-крестьянский вариант

Школы
Код
=ЕСЛИ(ЛЕВБ(A15;5)="Школа";A15;C14)

Классы
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("класс";A15));D14&"";ЕСЛИ(ЛЕВБ(A145;5)="Школа";"";A15))

Классы с буквами
Код
=ЕСЛИ(D16=A16;"";ЕСЛИ(СЖПРОБЕЛЫ(ЛЕВБ(СЖПРОБЕЛЫ(A16);2))=ПОДСТАВИТЬ(D16;" класс";"");СЖПРОБЕЛЫ(A16);E15))

Ученики
Код
=ЕСЛИ(ИЛИ(A15=C15;A15=D15;СЖПРОБЕЛЫ(A15)=E15);"";A15)
К сообщению приложен файл: _6963688.xlsx(11Kb)
 
Ответить
СообщениеРабоче-крестьянский вариант

Школы
Код
=ЕСЛИ(ЛЕВБ(A15;5)="Школа";A15;C14)

Классы
Код
=ЕСЛИ(ЕОШИБКА(ПОИСК("класс";A15));D14&"";ЕСЛИ(ЛЕВБ(A145;5)="Школа";"";A15))

Классы с буквами
Код
=ЕСЛИ(D16=A16;"";ЕСЛИ(СЖПРОБЕЛЫ(ЛЕВБ(СЖПРОБЕЛЫ(A16);2))=ПОДСТАВИТЬ(D16;" класс";"");СЖПРОБЕЛЫ(A16);E15))

Ученики
Код
=ЕСЛИ(ИЛИ(A15=C15;A15=D15;СЖПРОБЕЛЫ(A15)=E15);"";A15)

Автор - abtextime
Дата добавления - 16.03.2016 в 15:42
SLAVICK Дата: Среда, 16.03.2016, 15:47 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2002
Репутация: 673 ±
Замечаний: 0% ±

2007,2010,2013,2016
_Boroda_, только небольшое уточнение:
Ваша функция будет некорректно работать, если ее вставить в другой лист - а у мну правильно ^_^ см. файл. (это пример когда от перестановки слагаемых сумма меняется :D )
Для этого примера - возможно подойдет а вообще ее лучше немного дополнить:
[vba]
Код
UrGr = a.Parent.Rows(a.Row).OutlineLevel
[/vba]
К сообщению приложен файл: 6963688-3-.xlsm(18Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Среда, 16.03.2016, 15:50
 
Ответить
Сообщение_Boroda_, только небольшое уточнение:
Ваша функция будет некорректно работать, если ее вставить в другой лист - а у мну правильно ^_^ см. файл. (это пример когда от перестановки слагаемых сумма меняется :D )
Для этого примера - возможно подойдет а вообще ее лучше немного дополнить:
[vba]
Код
UrGr = a.Parent.Rows(a.Row).OutlineLevel
[/vba]

Автор - SLAVICK
Дата добавления - 16.03.2016 в 15:47
_Boroda_ Дата: Среда, 16.03.2016, 15:52 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11297
Репутация: 4661 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вполне возможно. Я не думал про это, написал первое, что в голову пришло. Более того, сначала вообще почему-то стал не по группировке делать, а по отступу.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВполне возможно. Я не думал про это, написал первое, что в голову пришло. Более того, сначала вообще почему-то стал не по группировке делать, а по отступу.

Автор - _Boroda_
Дата добавления - 16.03.2016 в 15:52
enzo Дата: Четверг, 17.03.2016, 07:25 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Простите уважаемые, вот сижу уже пол часа и не понимаю как это работает ? Открываю Эксель, ALT+F11 , ставлю макрос, закрываю , но =UrGr() , как формулу не видит. Что я делаю не так ?

P.S. сам тоже пока ищу решение но по формуле
Код
=ЕСЛИ($E5=СТОЛБЕЦ(A$1);$A5;F4)

во 2"б" классе (3-й уровень) тоже Сидоров появился, а по факту во 2" б" такого нет

[moder]Тег нужно не только открывать, но и закрывать. Поправил.


Сообщение отредактировал _Boroda_ - Четверг, 17.03.2016, 09:21
 
Ответить
СообщениеПростите уважаемые, вот сижу уже пол часа и не понимаю как это работает ? Открываю Эксель, ALT+F11 , ставлю макрос, закрываю , но =UrGr() , как формулу не видит. Что я делаю не так ?

P.S. сам тоже пока ищу решение но по формуле
Код
=ЕСЛИ($E5=СТОЛБЕЦ(A$1);$A5;F4)

во 2"б" классе (3-й уровень) тоже Сидоров появился, а по факту во 2" б" такого нет

[moder]Тег нужно не только открывать, но и закрывать. Поправил.

Автор - enzo
Дата добавления - 17.03.2016 в 07:25
enzo Дата: Четверг, 17.03.2016, 07:31 | Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
abtextime, ))конкретно для данного варианта) Но употребление названий в формуле сильно ограничивает... не всегда в уровнях группировки "классы" ( примерно бывают - класс , полукласс, отряд, группа - и таких много)
 
Ответить
Сообщениеabtextime, ))конкретно для данного варианта) Но употребление названий в формуле сильно ограничивает... не всегда в уровнях группировки "классы" ( примерно бывают - класс , полукласс, отряд, группа - и таких много)

Автор - enzo
Дата добавления - 17.03.2016 в 07:31
китин Дата: Четверг, 17.03.2016, 07:39 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4329
Репутация: 673 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
А вы куда вставляете? Надо ALT+F11 Insert Module и туда вставлять. а потом нажать вставить функцию (fx кнопочка) а там выбрать функции определенные пользователем


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
СообщениеА вы куда вставляете? Надо ALT+F11 Insert Module и туда вставлять. а потом нажать вставить функцию (fx кнопочка) а там выбрать функции определенные пользователем

Автор - китин
Дата добавления - 17.03.2016 в 07:39
enzo Дата: Четверг, 17.03.2016, 07:59 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Мой прокол , день седня начался удачно) через Insert Module сделал вставилась функция)) осталось только

P.S. сам тоже пока ищу решение но по формуле
Код
=ЕСЛИ($E5=СТОЛБЕЦ(A$1);$A5;F4)

во 2"б" классе (3-й уровень) тоже Сидоров появился, а по факту во 2" б" такого нет
 
Ответить
СообщениеМой прокол , день седня начался удачно) через Insert Module сделал вставилась функция)) осталось только

P.S. сам тоже пока ищу решение но по формуле
Код
=ЕСЛИ($E5=СТОЛБЕЦ(A$1);$A5;F4)

во 2"б" классе (3-й уровень) тоже Сидоров появился, а по факту во 2" б" такого нет

Автор - enzo
Дата добавления - 17.03.2016 в 07:59
SLAVICK Дата: Четверг, 17.03.2016, 10:13 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2002
Репутация: 673 ±
Замечаний: 0% ±

2007,2010,2013,2016
во 2"б" классе (3-й уровень)

Потому что Вам нужно оставлять только последний - в Вашем случае 4-й уровень, тогда все будет ОК :D .
см пример - выделил зеленым цветом.
К сообщению приложен файл: 6963688-4-.xlsm(16Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
во 2"б" классе (3-й уровень)

Потому что Вам нужно оставлять только последний - в Вашем случае 4-й уровень, тогда все будет ОК :D .
см пример - выделил зеленым цветом.

Автор - SLAVICK
Дата добавления - 17.03.2016 в 10:13
abtextime Дата: Четверг, 17.03.2016, 11:16 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 427
Репутация: 60 ±
Замечаний: 0% ±

Excel 2010
enzo
Зато мой вариант работает и при отсутствии группировок :)
Просто задача показалась интересной, было по приколу решить ее формулами, без VBA. А уж как это решение Вам пригодилось, или нет, не столь важно. Везде нужна сноровка, закалка, тренировка :)
 
Ответить
Сообщениеenzo
Зато мой вариант работает и при отсутствии группировок :)
Просто задача показалась интересной, было по приколу решить ее формулами, без VBA. А уж как это решение Вам пригодилось, или нет, не столь важно. Везде нужна сноровка, закалка, тренировка :)

Автор - abtextime
Дата добавления - 17.03.2016 в 11:16
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Группировка в сводную таблицу (Формулы/Formulas)
Страница 1 из 11
Поиск:

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