Получить значения из одной таблицы и поместить в другую таблицу на основе другого столбца DAX / Power Query M - PullRequest
0 голосов
/ 18 сентября 2018

Мне нужна помощь. У меня есть одна таблица A с 2 столбцами - первая - просто какое-то имя, а другая - значение У меня также есть таблица B с 3 столбцами - первый с некоторыми именами, второй называется valMin и третий valMax. Я пытаюсь получить имя (col1) из таблицы B и поместить его в новый столбец в таблице A на основе значения в таблице A, чтобы значение val из таблицы A находилось между значениями valMin и valMax в таблице B. Пример:

TableA            TableB                     Result   
|NameA|valA|     |NameB|ValMin|ValMax|      |NameA|valA|NameB|
------------     ---------------------      ------------------  
|Name1| 7  |     |BBBB |  1   |  5   |      |Name1| 7  |CCCC |  
|NAme2| 3  |     |CCCC |  6   |  10  |      |NAme2| 3  |BBBB |

Можно ли это сделать с помощью DAX или Power Query M? Буду признателен за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Марко Руссо очень хорошо описывает это здесь: Шаблоны Dax: статическая сегментация

Перевод шаблона кода с этой страницы в соответствии с вашими требованиями даст что-то вроде:

[Name B] =
    CALCULATE (
        VALUES ( TableB[NameB] ),
        FILTER (
            TableB,
            TableA[valA] >= TableB[ValMin] 
            && TableA[valA] < TableB[ValMax] 
        )
    )
0 голосов
/ 18 сентября 2018

Попробуйте что-то вроде этого для вычисляемого столбца NameB в таблице результатов:

NameB =
CALCULATE (
    MAX ( TableB[NameB] ),
    FILTER (
        TableB,
        TableA[ValA] >= TableB[ValMin]
            && TableA[ValA] <= TableB[ValMax]
    )
)

Если диапазоны в TableB не перекрываются и не имеют дыр, формула всегда будет возвращать одно значение.Если есть перекрытия и возвращено более одного значения, функция MAX предотвратит ошибку.Если есть отверстия и не найдено никакого значения, возвращается пустое значение.

...