Цитата |
---|
Андрей VG написал: можно использовать вспомогательную таблицу. Выбор в которой в фильтре или срезе будет использоваться во всех мерах таблицы, показывать или не показывать то или иное значение, если ваша контрольная мера совпадает со значением выбора. |
Цитата |
---|
Андрей VG написал: И описание структуры данных и их взаимосвязи и что и как вы считаете там тоже есть? |
В модели есть 6 таблиц:
Source_Data - основная таблица, содержит данные по продажам и остаткам ряда организаций (organizations - их три) в ряде городов (Area - их три) по ряду продуктов (products - их три). Таблица два раза в месяц пополняется данными, поэтому каждая строка в этой таблице имеет значение в столбце "Date" - это дата данных.
Каждая организация (organization) может состоять только в одной сети (Chain) и быть только в одном городе , но продавать и иметь на остатках разные продукты
Сеть может включать несколько организаций, в т.ч. и из разных городов
Одна организация может находится только в одном городе (Area)
Описание столбцов таблицы:
Organization - | Наименование организации (аптеки) |
Chain - | Сеть, которой принадлежит организация |
Area - | Город, в котором расположена организация |
Products | Наименование товара |
Date - | дата, на которую актуальна строка данных. Данные загружаются дважды в месяц: в средине месяца и в последний день месяца |
Stocks,units - | Количество штук товара на остатке, целое число от 0 до 15 |
Sales,units - | Количество проданного товара в штуках, целое число от 0 до 15 |
AssortmentPlan - | Принимает значение 1, если товар входит в ассортиментную матрицу в конкретной организации, и принимает значение 0 - если не входит |
HaveStock - | Принимает значение 1, если значение 'Stocks,units'>0, и принимает значение 0 - если 'Stocks, units'=0 |
Таблица "Organization_qty" - это общее количество организаций в разрезе городов и сетей. Количество может изменяться из месяца в месяц, таблица пополняется данными 1 раз в месяц - новые данные - с актуальной датой.
Остальные табицы являются вспомогательными:
Products - содержит один одноименный столбец с перечнем уникальных продуктов (товаров)
Areas - содержит один одноименный столбец с перечнем уникальных городов
Chains - содержит один одноименный столбец с перечнем уникальных сетей
Dates - содержит два столбца: дата (30.04.2020, 15.05.2020, 30.05.2020); и столбец Report_period - принимает значения FULL или HALF в зависимости от того - дата представляет конец или середину месяца соответственно.
Касательно того, что и как я здесь считаю:
На листе "AssortNeeded" сложена сводная таблица таким образом, чтоб видеть ассортиментную матрицу (AssortmentPlan) в разрезе городов, сетей, организаций и продуктов. В столбце F отображаются значения меры 'SalesYEAR', которая суммирует значение 'Sales, units' в разрезе FULL-периодов (т.е. суммирует значения SalesUnits за даты 30.04.2020 и 30.05.2020)
Логика в том, что мы отображаем ассортиментную матрицу аптек на текущий момент, выводим в соседнем столбце данные о продажах в разрезе данной аптеки и продукта за все FULL-периоды и на основании этой информации пытаемся оценить - должна ли каждая конкретная строка входить в ассортиментную матрицу или не входить
Оценка выполняется с помощью меры AssortAnalysis1, которая может принимать три значения:
1) AssortAnalysis1 = "AssortNeeded": если выполняются оба условия: AssortmentPlan=0; SalesYEAR>=3
2) AssortAnalysis1 = "AssortNotNeeded": если выполняются оба условия AssortmentPlan=1; SalesYEAR=0
3) AssortAnalysis1 = *пустое значение* : во всех остальных случаях
Мера AssortAnalysis1 работает корректно, в столбце "H" листа "AssortNeeded" я выполнил проверку с помощью формул в ячейках, и все сошлось.
Проблема, которая осталась - это невозможность использовать строки "AssortNeeded" и "AssortNotNeeded" в фильтре, а также области строк/столбцов сводной таблицы.