Power BI Запуск по горизонтали - PullRequest
0 голосов
/ 16 октября 2018

Я работаю с таблицами Power BI и не могу рассчитать баланс «Промежуточный итог» так, как мне нужно.

Я искал в переполнении стека и на других веб-страницах, и я всегда нахожу одно и то же решение дляочень похожая ситуация, которая не такая.

Прежде всего, это моя таблица:

First table

Я нашел в этоми другие сайты то же решение:

Running Total COLUMN =
    CALCULATE (
        SUM ( 'My table'[Accounting Balance] ),
        ALL ( 'My table' ),
       'My table'[Date] <= EARLIER ( 'My table'[Date] ))

Это будет работать всякий раз, когда мне нужно будет суммировать строки по вертикали, что не в моем случае.Действительно, мне нужно суммировать значение по горизонтали:

Second table

Есть предложения?

Редактировать 1 :

Это то, что мне нужно:

Result table

Так что, если вы внимательно посмотрите на эту таблицу, в ней будет вычисление каждого столбца.для каждого продавца, например:

  1. Поставщик 1 задолжал $ 200 за январь 2017 года
  2. Поставщик 1 задолжал $ 0 за февраль 2017 года, потому что он сделал200 долларов США
  3. Поставщик 1 должен 50 долларов в марте 2017 года, потому что $ 0 + $ 50
  4. Продавец 1 должен 50 долларов в апреле 2017 года, потому что он не сделалЛюбой платеж.
  5. Поставщик 1 должен 50 долларов в общей сложности.
  6. и т. д.

Ответы [ 3 ]

0 голосов
/ 16 октября 2018

Это делается в Power Query, поскольку у меня нет BI, но я предполагаю, что M-код будет работать так же хорошо.Он также будет автоматически корректироваться, если вы обновляете запрос при добавлении / удалении столбцов, поэтому нет необходимости ссылаться на каждый столбец отдельно.

Вы добавляете пользовательский столбец, который суммирует все столбцы, кроме «Поставщик / месяц»"

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Vendor/Month", type text}, {"Jan-17", Int64.Type}, {"Feb-17", Int64.Type}, {"Mar-17", Int64.Type}, {"Apr-17", Int64.Type}}),
    #"Sum" = Table.AddColumn(
    #"Changed Type",
      "Total",
  each List.Sum(
    Record.ToList(
      Record.SelectFields(
      _,
      List.RemoveItems(Table.ColumnNames(#"Changed Type"), {"Vendor/Month"})))))
in
    #"Sum"

Это диалоговое окно" Пользовательский столбец ":

enter image description here

И вот результат:

enter image description here

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

Как было предложено ранее Алексисом Олсоном, вы должны импортировать «таблицу», полученную из OLAP-куба, в редактор Power Query Editor и отключить ее.Вы начнете с этого:

enter image description here

Используйте такой скрипт:

let
    Source = Excel.Workbook(File.Contents("C:\Users\927085\Documents\Marco\SO\SO18-10-1.xlsx"), null, true),
    Sheet3_Sheet = Source{[Item="myTable",Kind="Sheet"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Sheet3_Sheet,{{"Column1", type text}, {"Column2", type any}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}, {"Column6", type any}}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
    #"Removed Columns" = Table.RemoveColumns(#"Promoted Headers",{"Totals"}),
    #"Removed Bottom Rows" = Table.RemoveLastN(#"Removed Columns",1),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Bottom Rows", {"Vendor/Month"}, "Attribute", "Value"),
    #"Added Custom" = Table.AddColumn(#"Unpivoted Other Columns", "Custom", each "1-"&[Attribute]),
    #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", type date}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Custom", "Month"}}),
    #"Removed Columns1" = Table.RemoveColumns(#"Renamed Columns",{"Attribute"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns1",{{"Value", Int64.Type}}),
    #"Renamed Columns1" = Table.RenameColumns(#"Changed Type2",{{"Value", "Accounting Balance"}, {"Vendor/Month", "Vendor"}})
in
    #"Renamed Columns1"

И полученная таблица будет такой:

enter image description here

Затем создайте следующее maesure:

RunningTotal = 
CALCULATE (
    SUM ( myTable[Accounting Balance] ),
    FILTER (
        ALLEXCEPT ( 'myTable', myTable[Vendor] ),
        'myTable'[Month] <= SELECTEDVALUE ( myTable[Month] )
    )
)

В матричном визуальном элементе поместите Vendor в строки, Month в столбцы и[RunningTotal] по значениям.

enter image description here

0 голосов
/ 16 октября 2018

Я делаю здесь большое предположение: столбцу «Итого» НЕ нужна строка «Итого».

Если нет, то столбец не определяется так, как показано:

Totals = Table1[Jan-17]+Table1[Feb-17]+Table1[Mar-17]

PowerBI Totals Column

...