web-dev-qa-db-ja.com

クエリエディターのPowerBIで、条件付きの複数の列に基づいて重複する値を削除します

私はPowerBIを初めて使用するため、直面している問題を解決するためにあなたの助けが必要です。

基本的に私は以下のように3つの列を考慮に入れています:

enter image description here

質問:条件 "" Time "、" IDに等しい値に基づいて、上記のテーブルから重複する値を削除したい画像に示されているように、「費やされた時間」の絶対差は「1」以下です。強調表示された行はこのカテゴリに分類されます。

条件に基づいて、これらの下の行を削除したいと思います。

enter image description here

質問:画像に表示されているように、「「時間」、「ID」の値が等しく、「費やした時間」の絶対差が1以下」という条件に基づいて、上記の表から重複する値を削除したいと思います。このカテゴリに分類されます。

条件に基づいて、これらの下の行を削除したいと思います。

enter image description here

数式=IF(AND(A3=A2,B3=B2,ABS(F3-F2)<1),"problem",0)を使用して4番目の列を作成し、probelmとしてマークされた行を除外することで、Excelでこれを実行できます。助けてください!!

よろしく

マヒ

3
Mahi

@Alexis Olsonからの提案は問題なく機能するに違いありませんが、_Query Editor_について具体的に言及しているので、ここでそれを行う方法を説明します。


  1. 以下のようにデータをロードし、_Changed Type_で行われた変更を受け入れます。

enter image description here

_Query Settings_の下の他のステップについて心配する必要はありません。最終的にはそれに到達します。

  1. _Add Column_を選択し、_Index Column_をクリックすると、次のようになります。

enter image description here

  1. _Add Column_を選択し、_Custom Column_をクリックして、表示されるダイアログボックスTable.AddColumn(#"Added Index", "Custom", each #"Added Index"[Time Spent]{[Index]}-#"Added Index"[Time Spent]{[Index]-1})にこの小さな数式を挿入します。

enter image description here

  1. OKをクリックし、これを取得していることを確認します。

enter image description here

  1. この手順は少し奇妙だと思いますが、列の[テーブル]をクリックする必要があります。

enter image description here

  1. 最初の行にエラーメッセージが表示されますが、その列を右クリックして_Remove Errors_をクリックするとエラーメッセージを削除できます。

enter image description here

  1. これで、カスタム列のドロップダウンメニューをクリックし、[数値フィルター]を選択して_Does Not Equal_を選択できます。

enter image description here

  1. そして、0を挿入するか、ダイアログボックスのドロップダウンメニューから0を選択します。

enter image description here

  1. これで、必要な数を除外する必要があります。

enter image description here

ただし、インデックス作成の最初のステップが原因で最初の値が失われるため、この手順にはコストがかかることに注意してください。これの残りがあなたが使うことができるものであるならば、私たちはその最後の小さな部分も修正できるかどうか見ることができます。

1
vestland

「重複」値のリストで最大値または最小値を取得することにより、各一意の行セットから代表的な[Time Spent]値を選択できます。このようなカスタム列の式を次に示します。これを[Min Time]と呼びます。

= List.Min(
      Table.SelectRows(#"Previous Step",
          (C) => (C[Time] = [Time] and
                  C[ID] = [ID] and
                  Number.Abs(C[Time Spent] - [Time Spent]) < 1)
      )[Time Spent])

このカスタム列を作成したら、[Time][ID]、および[Min Time]でグループ化して重複をロールアップし、[Min Time]列の名前を[Time Spent]に変更できます。 。

0
Alexis Olson