web-dev-qa-db-ja.com

Power Query M.Language FormulasでCountifs / Sumifsを実行する方法は?

Powerquery数式でExcelのCountifs/Sumifs数式を実行することは可能ですか? [Column1]を「Criteriarange」、[Column2]を「Criteria」(基準の例[Column2]のテキストに「Product」が含まれている)があり、新しいカスタム列([Column3 ])

5
Behnam2016

次の式を試してみてください。

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

sUMIFほど柔軟ではありませんが、Column2の現在の行にあるWordを含むColumn1のレコードの数をカウントします。

2
ImkeF

フィルタを使用して条件に基づいてフィルタリングし、[変換]リボンタブの[行数をカウント]を使用できます。フィルタリングは、列の矢印をクリックして実行できます。

または、列をフィルタリングしてから、GroupByを使用してカウントまたは合計を計算することもできます。

COUNTIFのPowerQuery Editorでこの関数を使用していますが、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

これがお役に立てば幸いです:)

1
Jay Killeen

この例を見てください: ここ に示すように4列(Serial、Team、Name、Role)のテーブルがあり、列(Team、HasAdmin?、CountOfMembers)の要約テーブルを作成したいと思います。

示されているように、私は3つのステップでそれを行います:

ステップ1ここ に示すように、conditional columnリボンのAdd Columnボタンを使用して2つの新しい列を追加します。 =および ここ

ステップ2:図のように新しい列のタイプを「整数」に変更します ここ

ステップ3:[チーム]列を選択し、HomeリボンのGroup Byボタンをクリックして、図のように入力します- ここ

終了!

「sumif」の場合、手順1で「1」の代わりにセル値を入力できます

0
hadi ahadi

私はこの質問を解決したと思います。

Csvを作成しました。 [Sumifstest.csv]そしてクエリをこのファイルにリンクしました。

これはソーステーブルで、次のようになります:[Header] {rows}

[アルファ1] {A A A A A A A A A}

[アルファ1] {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}

しましょう
Source = Csv.Document(File.Contents( "D:\ Power BI\Tests\Sumifs test.csv")、[Delimiter = "、"、Encoding = 1252])、
# "Promoted Headers1" = Table.PromoteHeaders(Source)、
# "変更されたタイプ" = Table.TransformColumnTypes(# "Promoted Headers1"、{{"Num1"、Int64.Type}、{"Num2"、Int64.Type}、{"Value"、Int64.Type }})、

Phase1 =# "変更されたタイプ"、
# "Grouped Rows" = Table.Group(# "Changed Type"、{"Alpha1"、 "Alpha1_1"}、{{"Values"、each List.Sum([Value])、type number} })、

MyList = List.Buffer(# "Grouped Rows" [Values])、
Custom1 =# "グループ化された行"、

# "追加されたカスタム" = Table.AddColumn(Custom1、 "Acumulative"、each List.Sum(List.Select(MyList、(x)=> x> = [Values])))、

# "Grouped Rows1" = Table.Group(# "Added Custom"、{"Alpha1"}、{{"Values2"、each List.Sum([Values])、type number}})、

MyList2 = List.Buffer(# "Grouped Rows1" [Values2])、
Custom2 =# "Grouped Rows1"、

# "マージされたクエリ" = Table.NestedJoin(Phase1、{"Alpha1"}、Custom2、{"Alpha1"}、 "NewColumn"、JoinKind.LeftOuter)、
# "Expanded NewColumn" = Table.ExpandTableColumn(# "Merged Queries"、 "NewColumn"、{"Values2"}、{"NewColumn.Values2"})、Phase2 =# "Expanded NewColumn"、

# "Merged Queries2" = Table.NestedJoin(Phase2、{"Alpha1_1"}、Custom1、{"Alpha1_1"}、 "NewColumn"、JoinKind.LeftOuter)、

# "Expanded NewColumn1" = Table.ExpandTableColumn(# "Merged Queries2"、 "NewColumn"、{"Values"}、{"NewColumn.Values"})

# "Expanded NewColumn1"

0
Tamas