Пожалуйста, подскажите конструкцию вычисления среднего значения "Average Rate" за период (месяцы). Есть две таблички: первая набор "Pirep" по "Chapter" и "Month", вторая набор "FC" по "Month". Вычисление "Pirep Rate" происходит следующим образом, из таблицы "Pirep" берется сумма "Pirep" за месяц, умножается на 1000 и делится на сумму "FC" за месяц из таблицы "Utiliuzation". Теперь нужно вычислить среднее значение "Average Rate" = сумма "Pirep Rate" за все месяцы / количество месяцев. Таблички со сводной таблицей и желаемым результатом вложены.
ac1-caesar, а с какой целью вы меры называете сложными названиями, после чего в сводной их переименовываете в простые? Как помогающим угадывать какой формулой вы формируете значения в сводной? Вот даже такие нюансы влияют на скорость помощи. Если вы предоставили удобную и понятную модель, и остается только решить указанную вами проблему, то вопросов нет. А теперь помощники должны придумывать что и где вы имели ввиду. Лично у меня на это ни времени ни желания нет.
Обратите внимание на картинку: как называются меры в сводной и как в модели данных. По-разному, значит вы меняли их названия в сводной. Зачем? Почему нельзя было сразу назвать меру, так как вам нужно? Как теперь определить какая мера в сводной соответствует какой мере в модели данных? По смыслу? Увольте. Если хотите помощь - уважайте чужое время делайте понятные примеры - и будет вам счастье.
Уважаемый PooHkrd, Вы уже давно разобрались что к чему. Но продолжаете задавать вопросы - "зачем". Затем, что к примеру создавая меру вычисляющая сумму "Pirep", невозможно назвать уже существующим именем столбца, поэтому и названо "SumOfPireps". В первом своем посте все корректно описано. Не нравится названия мер в моем примере, переназовите как нравится. Важно что сами таблицы созданы, меры вычисления созданы, сводная построена. Нужен всего лишь алгоритм необходимого вычисления. А конкретно подкорректировать меру "AveragePirepRate" чтобы она таки вычисляла среднее значение меры "PirepRate" за все месяцы.
Согласен с PooHkrd, для себя конечно можно называть и переименовывать как угодно, но на форум лучше давать понятный пример максимально просто и понятно (хотя то, что ТС показывает в примере, что должно быть в итоге, уже огромный +). По теме: думаю не получится решить задачу в том ключе, каком хочет ТС. У Вас есть расчет меры вида:
Код
=DIVIDE([SumOfPireps]*1000;[SumOfFC_Utilization])
Вы сначала хотите сделать расчет мерой за месяц, затем итоги по месяцам сложить и разделить на кол-во месяцев. В народе подобный метод называется посчитать "СРЕДНЕЕ ПО СРЕДНЕМУ". С математической точки зрения это не правильно, поэтому такую логику реализовать не получится. Поправьте меня, если я не прав.
Vladimir Chebykin написал: Вы сначала хотите сделать расчет мерой за месяц, затем итоги по месяцам сложить и разделить на кол-во месяцев.
Vladimir Chebykin, да совершенно верно. Возможно с математической точки зрения не верная логика, но результат получить нужно. Если у Вас есть видение и возможность, поправьте пожалуйста либо логику вычисления, либо существующий алгоритм.
ac1-caesar написал: поправьте пожалуйста либо логику вычисления, либо существующий алгоритм
Если хотите суммировать значения нескольких периодов, так может стоит и исходные меры изменить и считать значения за указанный промежуток времени? Пример: 1. в мере "SumOfPireps" сумму считать не за конкретный месяц а за весь выбранный период. 2. аналогично в мере "SumOfFC_Utilization" сумму считать не за конкретный месяц а за весь выбранный период тогда уже вы может среднее посчитать за выбранный диапазон месяцев.
Но для реализации такого механизма нужен календарь! Я Вам уже писал об этом в предыдущих Ваших темах о его важности при работе с несколькими таблицами.
Vladimir Chebykin, следуя Вашему предложенному примеру, если брать сумму за весь период "SumOfPireps" и "SumOfFC_Utilization", то вычисления "PirepRate" будут некорректны (см. вложенный пример колонки "Total Pirep", "Total FC", "Ex. Rate"). Тут именно нужно посчитать "PirepRate" за каждый месяц, потом собрать их сумму за весь период и разделить на количество месяцев в периоде чтобы получить "Average Rate". Кстати, не могли бы Вы скинуть любой пример использования календаря? Спасибо.
ac1-caesar написал: Кстати, не могли бы Вы скинуть любой пример использования календаря? Спасибо.
вот здесь в Вашей теме ссылка от Андрей VG, есть пример с календарем
Цитата
ac1-caesar написал: нужно посчитать "PirepRate" за каждый месяц, потом собрать их сумму за весь период
Вот именно это я и имел ввиду про метод "СРЕДНЕЕ ПО СРЕДНЕМУ", когда по готовому вычислению делают еще дополнительное вычисление. Вы хотите в мере произвести следующие последовательные операции: 1. вывести итог за месяц по каждому значению строки сводной 2. просуммировать полученные результаты за указанный период и вычислить среднее. Я до конца не уверен в нижеследующем, но проблема заключается в том, что Power Pivot не умеет создавать виртуальную (сгруппированную) сводную таблицу с произведенными вычислениями, чтобы по ней еще наложить какие-либо вычисления. Виртуальная "плоская" таблица - пожалуйста, а виртуальная сводная - нет. Либо я еще не дорос до таких знаний в Power Pivot.
ac1-caesar написал: Вы уже давно разобрались что к чему.
Это не так - я даже не пытался, когда увидел, что имена в сводной и в модели не совпадают - у меня просто не было на это времени. Работаю я, а формулы эти - это так, хобби. Я не учу вас жить - жизнь сама научит. Но, вы получили бы решение вашей проблемы на пару дней раньше. Предлагаю как-то так:
Здесь при помощи функции CALCULATE снимаю фильтры сводной таблицы ALL(Pireps) и в этом контексте считаю количество уникальных значений по столбцу Pireps[Month]. Это будет количество месяцев. Если, скажем вы захотите наложить на этот столбец фильтрацию, то вместо ALL надо будет использовать ALLSELECTED. Дальше полученное внутри DIVIDE выражение помещаю в контекст со снятой фильтрацией со столбца Pireps[Month], что позволяет рассчитывать её одинаковой для всех месяцев в сводной.