Хорошо, я сгенерировал некоторые случайные данные в Excel и вставил их в качестве источника мощного запроса:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("dZRLDsQwCEPv0nUXQNJ8zlLN/a8xGjWQ0UPdWhgbQ3Lfh0o/zsNEp4zjc/6AsgCVB1CvUFuAOaUtykDFbuoVE4A6RZwiDpRVUR3QBVysSNaV1r2prh5irz0uzCJvlB2QUsVACdnmPSozFVYMAFFhNHZRtkAlKkI2Qp4PYEKKwodG047Nxfgdq9QJYwG4rPIchLtNiW1jhefg41dSjLutVOHBbB/KgDpOOy07AqpsKvSRAipMXRHyPjqnNK5hcPz0gCYXJXC676NBVpLKIMBzCOtCCv8PS2+ff5CQsnsMpB63nh7h/y/1+QI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Customer = _t, #"Purchase YearMonth" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", Int64.Type}, {"Purchase YearMonth", Int64.Type}})
in
#"Changed Type"
Я думаю, что эффективный подход - это просто использовать DAX для добавления столбца в ваш набор данных, который будет «помечать» каждую строку самой ранней датой покупки. Это вычисляемый столбец, а не мера.
Earliest Purchase YearMonth =
CALCULATE(
MIN('Sales'[Purchase YearMonth]),
FILTER(
'Sales',
Sales[Customer] = EARLIER(Sales[Customer])
))
Затем просто используйте матричный визуал с самой ранней датой покупки в заголовках строк, датой покупки в заголовках столбцов и числом, отличным от значения Customer в качестве значений.
Надеюсь, это поможет!