Доброго дня, уважаемые. Возникла такая проблема, в модели данных имеются 2 таблицы, в обеих есть ключевое поле, но оно в них обеих не уникальное. Из-за этого связь между таблицами настроить не могу. Что хочу: в модели данных в таблицу Продажи из примера подставить значения поля Остатки на начало дня из сгруппированной по полю Ключ таблицы Остатки Возможно ли такое чудо? Прошу помочь с направлением раскопок. Скажите хоть какие функции использовать, а дальше если буду сильно тупить - уточню. Заранее спасибо.
Доброе время суток. Думаю, лучше при помощи power query сделать обобщенную твблицу измерение по столбцам код, товар, Отобрав, только уникальные пары в ней. Потом в модели данных соединить её с исходными
Пробовал, в реальной таблице 177 тыс строк, из них 165 тыс имеют уникальный идентификатор в столбце ключ. Группировку в PQ по этой таблице приходится делать по трем полям. И вот тут-то PQ подыхает, т.е. он просто не может выполнить Table.Group по такой таблице с такими параметрами за приемлимое время. По крайней мере я ждал минут 20 запрос так и не отработал. Вот думаю как объехать проблему.
PooHkrd написал: Группировку в PQ по этой таблице приходится делать по трем полям
А зачем, если по файлу примеру у вас ключ код, ну, и дополняющее для человека название товара? Если всё же три, тогда надо думать как создать уникальный ключ и разместить их не только в таблице измерений, но и фактах.
Что-то не очень вериться в тормоза с Table.Group. Попробуйте так
На самом деле ключ у меня код и город, но почему-то расчетный столбец в модели данных отсутствует, наверное не сохранил. Короче победил проблему по-другому: Сцепил через разделитель все три поля, которые нужно было получить в итоговой таблице, Сгруппировал по сцепке После группировки разделил столбцы В результате получил таблицу с уникальным ключом, и всеми нужными столбцами теперь могу связывать таблицы. Андрей, спасибо за подсказки. Проблема в общем-то решена.
По поводу тормозов Table.Group - это факт если нужно сгруппировать серьезный массив по трем полям и более. Так что сегодняшний вариант группировки со сцеплением-расцеплением возьму на вооружение. По одному полю данная функция работает очень быстро.
Но все таки то что я описал в первом посте реально ли сделать на DAX в принципе?
В принципе, да, если одна из факт таблиц содержит полный набор ключей и вам доступна https://www.sqlbi.com/articles/propagate-filters-using-treatas-in-dax/, можно попробовать и INTERSECT, если Максим Зеленский заглянет, то наверняка предложит ещё варианты. Но, по той же статье сравните скорость выполнения, использование таблицы изменения будет быстрее и заметно
Короче, попробовал. TREATAS у меня в Экселе нету, но оно и c INTERSECT отлично сработало. Очень круто, буду закреплять, а то закидывать в модель по две-три почти одинаковых здоровых таблицы просто ради наличия физических связей между ними - слишком тяжелые файлы получаются. С другой стороны увлекаться такой ерундой тоже не желательно, потом через месяц другой без поллитры в связях между таблицами не разберешься. Буду соблюдать баланс.