Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Создание набора полей в сводной
 
Доброго времени суток!

Есть исходные данные, меры, которые считают нужные значения, на базе которых строится сводная таблица.
Проблема в том, что я могу построить 2 сводные  таблицы:
1. сводит значения по мерам
2. сводит значения по месяцам на основании исходных значений
но я ни как не могу объединить, как показано на вкладке Результат с сохранением функционала сводной таблицы

предполагаю, что это решается через наборы по аналогии с постом в этом форуме
тут
но никак не могу добавить нужные поля
Помогите решить задачу по созданию набора полей в сводной или может быть есть другой путь?
 
muxey, может я чего то не понимаю, но зачем вам дублировать значения? Или даже не так: какая цель такого отображения информации? Вот вы развернули по месяцам, зачем еще раз выводить Топ3? Сумм и Среднее еще могу как то понять..
 
muxey, видимо вам что-то подобное надо будет
Код
NewMax 1:=IF(HASONEVALUE('ПЛАН_ПРОИЗВОДСТВА'[Дата (Месяц)]);BLANK();[Max1])
 
Цитата
StepanWolkoff написал:
Или даже не так: какая цель такого отображения информации?
наглядная прослеживаемость расчета (какие именно месяцы использованы для расчета) и построение в дальнейшем графика
ЗЫ файл урезан по вычисляемым мерам (их больше), хочу понять алгоритм объединения (все еще считаю что нужен этот инструмент) в наборы
 
muxey, Я вот так вижу это
 
StepanWolkoff,

я не совсем понял условие вводимой вами меры
Код
NewMax 1:=IF(HASONEVALUE('ПЛАН_ПРОИЗВОДСТВА'[Дата (Год-Месяц)]);
BLANK();
[Max1])
тестово вставил временную временную шкалу, и обнаружил ошибку в выведение данных - если период взять апрель-май, то не происходит расчет новых мер по этому типу, в тоже время данные в базовых мерах считаются и должны выводится в сводной
 
muxey, логика такая: Если для указанного измерения имеется только одно значение, тогда выводить пусто, иначе вывести меру. Соответственно пример: вы выбрали период апрель-май, у вас в сводной будут данные 2018-04 и 2018-05, при этом сумма по полю количество в 2018-04 есть для всех наименований кроме Пластина KL1111111, а в 2018-05 соответственно  наоборот, т.е. мы попадаем в ситуацию, что у нас в расчете только 1 месяц со значениями, поэтому и не выводится.
Вот почитайте разбор этого приема: HASONEVALUE vs. ISFILTERED vs. HASONEFILTER
Ну и у себя попробуйте сделать:
Код
=IF(ISFILTERED('ПЛАН_ПРОИЗВОДСТВА'[Дата (Год-Месяц)]);BLANK();[Max1])
Изменено: StepanWolkoff - 30 Мар 2018 16:20:01
 
StepanWolkoff,
прочитал статью, но все таки не все понял, это похоже на "трюк", который может показывать верные данные исходя из заданной группировки полей, но если ее изменить (а в действительности полей для группировки больше, это подразделение, назначение, вид), то выбранный вариант с использованием ISFILTERED может вывести не все/не верные данные - верно?

еще вопрос для закрепления материала - почему меры, которые есть изначально нельзя вывести в такую последовательность в сводной таблице, а через IF можно?
 
Цитата
muxey написал:
почему меры, которые есть изначально нельзя вывести в такую последовательность в сводной таблице, а через IF можно?
Указанные вами меры - это по сути Итоги в сводной таблице, упрощенный пример: январь = 1, февраль = 2, март = 3, апрель = 4, Итого максимальное значение = 4. Но как объяснить сводной таблице, что это Итоги? Вот для этого и используется IF вместе с ISFILTERED или  HASONEVALUE. Проверяя условие, что по данному измерению в данном контексте получается Итог, мы выводим значение, иначе "пусто", а "пустые" меры не отображаются в сводной таблице, что дает нам возможность построить такой формат отчета.
 
Цитата
muxey написал:
выбранный вариант с использованием ISFILTERED может вывести не все/не верные данные - верно?
И да, и нет. Если оставить те меры, которые я сделал в файле примере и изменить группировки, то будет неверно, если изменить меры под возможные группировки, то будет верно. В вашем варианте будет просто несколько проверок для каждого уровня группировки от меньшего к большему: IF(ISFILTERED(вид)...IF(ISFILTERED(назначение)...IF(ISFILTERED(подразделение)...)))
 
Цитата
StepanWolkoff написал:
В вашем варианте будет просто несколько проверок для каждого уровня группировки от меньшего к большему:
и если изменить последовательность группировки - то будет вывод не корректных данных? нужно будет править меру под каждый случай?
Изменено: muxey - 2 Апр 2018 11:26:22
 
Цитата
muxey написал:
нужно будет править меру под каждый случай?
ну, почему, я думаю, что можно создать универсальную меру, просто для этого нужно точно знать кто и как будет использовать данный функционал отчета, какие варианты могут быть и исходить из этого при создании отчета и разработки мер.
 
StepanWolkoff, допустим пользователь только один, и варианты использования могут быть:
1. только Номенклатура
2. Вид номенклатуры-Номенклатура
3. Организация - ВидНомеклатуры-Номенклатура
4. Организация - Номенклатура
5. Номенклатура - Организация

При этом периоды могут быть 1 месяц, 2 месяца...год ...n-месяцев

ЗЫ оставил пока просто IF без вложений, ошибку пока не выявил, но и массив данных в тесте мал...я просто пока не понял, в том числе и по приведенной вами статье, в каком случае ISFILTERED дает не правильное значение в промежуточных итогах?
 
muxey, ну как минимум от вас нужен пример, в котором будут "Организация - ВидНомеклатуры-Номенклатура", а то пока только номенклатура, придумывать другие измерения желания нет.
 
StepanWolkoff, во вложении
 
muxey, а почему вы решили, что по виду и организации считает не правильно? Вам же надо найти первые три максимальных значения за период? Поэтому нам надо изменять "итоги" только по временной шкале, а контекст измерений номенклатуры должен работать как обычно. Т.е. по измерению Вид мы за месяц(январь, февраль, март, апрель) сложили значения по всем номенклатурам, из полученных значений выбрали 3 максимальных и из них получили среднее - среднее за период, правильно?
Хотя если только вы допустим Вид перенесете в столбцы сводной, тогда да, надо переписывать меру...
Изменено: StepanWolkoff - 2 Апр 2018 15:01:48
 
Цитата
StepanWolkoff написал:
а почему вы решили, что по виду и организации считает не правильно?
я как раз и написал, что ошибки не нашел
Цитата
muxey написал:
оставил пока просто IF без вложений, ошибку пока не выявил, но и массив данных в тесте мал.
но так как ошибка возможна (а это следует из приведенной статьи), я и спросил
Цитата
muxey написал:
в каком случае ISFILTERED дает не правильное значение в промежуточных итогах?
Цитата
StepanWolkoff написал:
Хотя если только вы допустим Вид перенесете в столбцы сводной, тогда да, надо переписывать меру...
если это допустить, то как должна быть изменена мера?
Цитата
StepanWolkoff написал:
правильно?
да
 
muxey, поигрался с вашей моделью.
1. Если указанные вами измерения(Организация - ВидНомеклатуры-Номенклатура) находятся в строках, то уже созданные меры будут работать так, как вы хотите.
2. Если какое-то из этих измерений вы перенесете в столбцы, например "Организация", а "ВидНомеклатуры-Номенклатура" оставите в строках, то уже сама сводная поменяет свой вид и будет отличаться от той формы, которая была указана вами изначально, но меры будут считать по прежнему верно, только поля в столбцах надо будет расставить "красиво" "Организация -Значения - Год-месяц".
3. Если же вы решите использовать вместо измерения Дата(Год-Месяц) отдельные измерения Дата(Год) и Дата(Месяц), тогда для "корректного" отображения мер в том виде, как вы хотите, они будут выглядеть так
Код
=IF(ISFILTERED('ПЛАН_ПРОИЗВОДСТВА'[Дата (Месяц)]);BLANK();IF(ISFILTERED('ПЛАН_ПРОИЗВОДСТВА'[Дата (Год)]);BLANK();[Max1]))
или
Код
=SWITCH(TRUE();ISFILTERED([Дата (Месяц)]);BLANK();ISFILTERED([Дата (Год)]);BLANK();[Max1])
 
StepanWolkoff, огромное спасибо.
у меня маленький вопрос,
Цитата
StepanWolkoff написал:
поля в столбцах надо будет расставить "красиво"
я правильно понял, что наименование столбцов  с новой мерой (а именно слова Итого) я исправить/удалить не могу?
 
muxey, ну разве что макросом наверное. Если честно у меня не стояло никогда такой задачи, вывести в такую форму, чисто "спортивный" интерес, поэтому за имена полей не заморачивался.
 
StepanWolkoff,можно как то вот так (ниже), но мозгов пока не хватает как использывать
Код
PivotTable.GrandTotalName=""
 
Добрый день! Прошу помощи в создании сводной таблицы.
У меня есть по каждой группе строк и столбцов промежуточный итог в строке. И при создании сводной таблицы он выдает пустой строкой, но с указанием суммы, которая увеличивает общий итог. Выделила цветом данные по которым необходим свод.
 
Виктория Назарова, а почему вы решили задать свой вопрос в данной теме? У вас абсолютно другая проблема никак не пересекающаяся с данной. Сформулируйте четко название темы и создайте новую.
 
Виктория Назарова,решние на коленке ниже
 
StepanWolkoff, потому-что я пользователь совсем не опытный, особенно в форумах. За помощь признательна.
 
muxey, огромное спасибо!!!!
 
StepanWolkoff, и еще вопрос, применяю набор новых мер к большему по размеру данных файлу и выводит в не заданной последовательности столбцы, а столбец меры рядом с каждым месяцем... вы что то еще поменяли в примере?
 
Цитата
muxey написал:
применяю набор новых мер
полный текст любой из мер скиньте, которую сейчас используете. Либо, если применили меры из сообщения #18, тогда проверьте, что у вас в столбцах измерения Дата(Год) и Дата(Месяц), а не просто Дата(Год-месяц). В сообщение #18 написано про это.
 
StepanWolkoff,
вот так выглядит исходная мера
Код
Max1:=SUMMARIZE(
FILTER(
ADDCOLUMNS(
SUMMARIZE('ПЛАН_ПРОИЗВОДСТВА'; 'Календарь'[ГГГГ-ММ]; "mounth sum"; SUM('ПЛАН_ПРОИЗВОДСТВА'[Количество]));
"mounth sum rank"; RANKX(SUMMARIZE('ПЛАН_ПРОИЗВОДСТВА'; 'Календарь'[ГГГГ-ММ]; "mounth sum"; SUM('ПЛАН_ПРОИЗВОДСТВА'[Количество])); [mounth sum]; [mounth sum]; 0));
[mounth sum rank] = 1);
[mounth sum])
вот так преобразованная
Код
_Max1:=IF(ISFILTERED('ПЛАН_ПРОИЗВОДСТВА'[ДатаПлана(гггг-мм)]);BLANK();[Max1])
пробовал менять ДатаПлана(гггг-мм) на Календарь'[ГГГГ-ММ] - итог тот же
 
StepanWolkoff, решил задачу "подбором", но пока не понял почему это влияет...
разница между тестовым файлом (рассмотренным на форуме) и рабочем в последовательности строк в  группе СТОЛБЦЫ
Для нужного эффекта нужно чтобы было (сверху-вниз) Значение, ДатаПлана(гггг-мм), у меня автоматом устанавливалось наооборот ДатаПлана(гггг-мм), Значение.
Если в тестовом файле поменять - будет тоже самое...
Страницы: 1 2 След.
Читают тему (гостей: 1)