2016-02-11 1296 views

回答

2

您可以使用過濾器根據您的條件進行過濾,然後在「變換」功能區選項卡中使用「計數行」。可以通過單擊列中的箭頭來完成過濾。

或者,您可以過濾列,然後使用分組計算計數或總和。

+0

Group By很有幫助。謝謝! – Vasim

1

你可能想試試這個公式:

List.Count(List.FindText(Source[Column1], [Column2])) 

它並不像SUMIFS靈活,但計算的記錄在列1包含該站列2

+0

使用此,謝謝 – Behnam2016

-1

Powerquery的當前行中的單詞數量遵循更多的ETL方法。所以你不能在powerquery的情況下有一個活動的OLE。您可以將excel中的現有表格鏈接爲數據源,並可以爲您想要的內容生成一些特定摘要。如果你想實現類似於excel的功能,那麼有一些先決條件。

您的數據應該位於Excel表格中。 製作另一張包含您的搜索條件的表格。 現在您需要製作兩個表格,一個用於datasoure,第二個用於您的搜索條件

現在在您的現有數據中提取的表格中,您可以創建一個額外的指標列,您可以根據搜索條件輸出需要 如果Text.Contains(col1,search criteria1)和Text.Contains(col2,searchcriteria 2)比1 else 執行sumifs 如果Text.Contains(col1,search criteria1)和Text實現了countifs 。包含(col2,searchcriteria 2)than [sumcol] else 0 總結基於此列的表格,並在表單上爲輸出結果(這將是另一個單元格表格)選擇輸出範圍

如果您已經從其他來源獲取數據,只需爲搜索條件創建參數表,如果您的搜索條件是固定的,則只需跳過數據和搜索條件表並使用指標列。

不幸的是它的一個過程,沒有捷徑或公式。

1

我用這個功能我的力量查詢編輯器來COUNTIF,但我還沒有掌握COUNTIFS或SUMIFS:

let 
    countif = (tbl as table, col as text, value as any) as number => 
    let 
     select_rows = Table.SelectRows(tbl, each Record.Field(_, col) = value), 
     count_rows = Table.RowCount(select_rows) 
    in 
     count_rows 
in 
    countif 

然後我用它像

add_column = Table.AddColumn(
    last_expression, 
    "count", 
    each 
    f_countif(Product, "Id",[ProductId])) 

我寫這件事相當廣泛地在我的博客上,這是我喜歡的方式。

http://jaykilleen.com/posts/countif-in-power-query-or-powerbi-using-m-language

我希望這可以幫助您:)

+0

如果你找出SUMIFS請讓我知道 –

0

我想我解決了這個問題。

我創建了一個csv。 [Sumifs test.csv]並將查詢鏈接到此文件。

這是源表,看起來像這樣: [頁眉] {行}

[ALPHA1] {AAAAAAAAA}

[ALPHA1] {AA AA AA AA BB BB BB BB BB}

[NUM1] {1 1 1 1 1 1 1 1 1}

[NUM2] {11 11 11 11 22 22 22 22 22}

[數值] {1 2 3 4 5 6 7 8 9}


源= Csv.Document(File.Contents( 「d:\電源BI \測試\ SUMIFS test.csv」),[分隔符=」, 「編碼= 1252]),
#」 Promoted Headers1「= Table.PromoteHeaders(Source),
#」Changed Type「= Table.TransformColumnTypes(#」Promoted Headers1「,{{」Num1「,Int64.Type},{」Num2「,Int64.Type}, { 「值」,Int64.Type}}),

相位1 =# 「改變類型」,
# 「分組的行」= Table.Group(# 「更改的類型」,{ 「ALPHA1」, 「Alpha1_1」 },{{「Values」,每個List.Sum([Value]),類型編號}}),

MYLIST = List.Buffer(# 「分組的行」[值]),
自定義1 =# 「分組的行」,

# 「添加的自定義」= Table.AddColumn(自定義1, 「Acumulative」,每個List .Sum(List.Select(MyList,(x)=> x> = [Values]))),

#「Grouped Rows1」= Table.Group(#「Added Custom」,{「Alpha1」 {{ 「Values2」,每List.Sum([值]),型號}}),

MyList2 = List.Buffer(# 「分組Rows1」[Values2]),
特製2 =#「分組Rows1 「,

#「合併查詢」= Table.NestedJoin(Phase1,{「Alpha1」},Custom2,{「Alpha1」},「NewColumn」,JoinKind.LeftOuter),
#「Expanded NewColumn」= Table.ExpandTableColumn 「合併查詢」, 「NewColumn」,{ 「Values2」},{ 「NewColumn.Values2」}), 相位2 =# 「膨脹NewColumn」,

# 「合併Queries2」= Table.NestedJoin(階段2,{ 「Alpha1_1」},Custom1,{「Alpha1_1」}「NewColumn」,JoinKind.LeftOuter),

#「Expanded NewColumn1」= Table.ExpandTableColumn(#「Merged Queries2」,「NewColumn」,{「Values」 },{「NewColumn.Values」})

in

#「擴展NewColumn1」

0

請看下面的例子:我有如圖here並希望創建的彙總表4列(串行,隊名,角色)的表(團隊, HasAdmin?,CountOfMembers)

我做到這一點在3步驟,如圖所示:

步驟1:在Add Column織帶添加使用conditional column按鈕2新的列,如圖herehere

步驟2:改變新列的類型爲所示的「整體次數」 here

步驟3:塞萊茨t在[團隊]欄中點擊按鈕Home功能區,並填充如圖所示here

完成!

對於「sumif」,您可以在步驟1中將單元格值替換爲「1」