Добрый день, такой вопрос, загнавший в тупик. Во вложении кусок объемной модели данных с большим количество пересекаемых связей. Изначально вопрос решался в PowerBI и т.к. в нем есть возможность получать вычисляемые таблицы вопрос куда легче решить, но решили протестить в экселе.
deal_stage_history - таблица с историчностью перехода сделки со стадии на стадию, deals - сделки.
Нужно посчитать сумму сделок (из таблицы deals по полю "оплачено") для тех сделок, которые попали на стадию "счет выставлен", но т.к. каждая сделка может попасть на эту стадию несколько раз, то нужно посчитать для тех сделок, которые попали на стадию "счет выставлен" последний раз. Т.е. в отчете будет срез по дате из календаря, которая связана с полем Last_stage_deal_id_account (в этом поле получили последнее попадание на сделку для каждой deal_id), и, соответственно, выбранная дата, должна отфильтровать таблицу deal_stage_history по полю Last_stage_deal_id_account, а уже она в свою очередь должна отфильтровать по deal_id таблицу deal (двунаправленная связь между deal_stage_histiry и deals).
Можно ли как-то решить эту задачу без вычисляемой таблицы?
deal_stage_history - таблица с историчностью перехода сделки со стадии на стадию, deals - сделки.
Нужно посчитать сумму сделок (из таблицы deals по полю "оплачено") для тех сделок, которые попали на стадию "счет выставлен", но т.к. каждая сделка может попасть на эту стадию несколько раз, то нужно посчитать для тех сделок, которые попали на стадию "счет выставлен" последний раз. Т.е. в отчете будет срез по дате из календаря, которая связана с полем Last_stage_deal_id_account (в этом поле получили последнее попадание на сделку для каждой deal_id), и, соответственно, выбранная дата, должна отфильтровать таблицу deal_stage_history по полю Last_stage_deal_id_account, а уже она в свою очередь должна отфильтровать по deal_id таблицу deal (двунаправленная связь между deal_stage_histiry и deals).
Можно ли как-то решить эту задачу без вычисляемой таблицы?
Код |
---|
В вычисляемой таблице выводили список уникальных deal_id, у которых дата последнего перехода была равна дате, выбранной на срезе. Invoiced_deal_id_dimension_table = VAR T1 = CALCULATETABLE(deal_stage_history,DISTINCT(deal_stage_history[DEAL_ID]), deal_stage_history[Last_stage_deal_id_account] <> BLANK(), deal_stage_history[STAGE_NAME] = "СЧЕТ выставлен") VAR T2 = SELECTCOLUMNS(T1, "DEAL_ID", deal_stage_history[DEAL_ID]) RETURN T2 |