Добавить настраиваемый столбец на основе строки в другом столбце - PullRequest
2 голосов
/ 06 мая 2020
    Source data:

Market  Platform        Web sales $ Mobile sales $  Insured
FR      iPhone          1323        8709              Y
IT      iPad            12434       7657              N
FR      android         234         2352355           N
IT      android         12323       23434             Y

Есть ли способ оценить продажи застрахованных устройств?

if List.Contains({"iPhone","iPad","iPod"},[Platform]) and ([Insured]="Y") then [Mobile sales] else "error"

Что-то в этом роде, просто не знаю, как к этому подойти

1 Ответ

1 голос
/ 06 мая 2020

Прямой ответ на ваш вопрос:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    SumUpSales = Table.AddColumn(Source, "Sales of insured devices", each if List.Contains({"iPhone","iPad","iPod"}, _[Platform]) and Text.Upper(_[Insured]) = "Y" then _[#"Mobile sales $"] else null, type number)
in
    SumUpSales

Однако я хотел бы подчеркнуть несколько вещей.

Во-первых, лучше преобразовать значения в столбце [Insured] в логическое первый. Таким образом вы сможете обнаружить ошибки до того, как они незаметно повредят ваши данные. В моем примере этого не происходит, все, что он делает, - это отрицание регистра букв в [Insured], поскольку PowerM является языком с учетом регистра.

Во-вторых, вам лучше использовать null, а не текстовое значение ошибка . Затем вы можете установить тип столбца и произвести вычисления с его значениями, например суммировать их. В случае смешанных текстовых и числовых значений вы получите ошибку в этом и многих других случаях.

И последнее. Вероятно, это лучший способ использовать сводную таблицу для визуализации подобных данных. Вам просто нужно добавить столбец, который группирует все устройства Apple (и / или другие) вместе на основе одного и того же logi c, но исключая [Insured]. Сводные таблицы более гибкие, и лично мне они очень нравятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...