質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Power BI

Power BIは、マイクロソフト社が提供しているBIツールです。レポートの作成・共有、エクセルや会計システムなどさまざまなソフトウエアのデータをグラフやチャートに変換。データの分析・解析などにも利用できます。

Q&A

解決済

1回答

2724閲覧

PowerQueryで一つ上の行を計算させたい

atk233

総合スコア13

Power BI

Power BIは、マイクロソフト社が提供しているBIツールです。レポートの作成・共有、エクセルや会計システムなどさまざまなソフトウエアのデータをグラフやチャートに変換。データの分析・解析などにも利用できます。

0グッド

0クリップ

投稿2022/12/19 04:45

前提

PowerQueryで一つ上の行を計算をさせる方法を知りたいです。

実現したいこと

サンプルデータとして、以下のようなデータがあったとします。

日付月初の在庫販売量
10/1100
10/5-10
10/20-5

それを、月初の在庫から引き算を順繰りに行い、以下のような「現在の在庫数」という列を追加したい。

日付月初の在庫販売量現在の在庫数
10/1100
10/5-1090
10/20-580

試したこと

インデックス列を追加をして、その番号を起点に以下のような数式を書いてみたのですが、
10/5の時点のデータは表示されましたが、後ろに続く数量がnullで出てしまいました。
nullではなく、想定の上記のような80を出したいのですが、どなたかご教示いただけないでしょうか。

試した式と、出力結果イメージは以下です。

カスタム= if DATA[月初の在庫]<>null then DATA[月初の在庫]{[インデックス]-1}-[販売量] else DATA[現在の在庫数]{[インデックス]-1}-[販売量]
日付月初の在庫販売量インデックス現在の在庫数
10/11000error
10/5null10190
10/20null52null

最初の行のerrorは、最後に0として置き換えをしようとしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atk233

2022/12/19 05:02

出したい結果は90-5なので、85になります。 失礼いたしました。
guest

回答1

0

ベストアンサー

PowerQuery

1let 2 //テーブルの参照 3 Source = Excel.CurrentWorkbook(){[Name="テーブル名"]}[Content], 4 //各列の型定義 5 ChangedType = Table.TransformColumnTypes(Source,{{"日付", type date}, {"月初の在庫", Int64.Type}, {"販売量", Int64.Type}}), 6 //インデックス列の追加 7 AddedIndex = Table.AddIndexColumn(ChangedType, "インデックス", 1, 1, Int64.Type), 8 //行ごとに[月初の在庫]列の累計値を返すカスタム列[入庫数の累計]の追加 9 AddedCumulativeInventories = Table.AddColumn(AddedIndex, "入庫数の累計", each List.Sum(List.FirstN(AddedIndex[月初の在庫],[インデックス]))), 10 //行ごとに[販売量]列の累計値を返すカスタム列[出庫数の累計]を追加 11 AddedCumulativeSales = Table.AddColumn(AddedCumulativeInventories, "出庫数の累計", each List.Sum(List.FirstN(AddedIndex[販売量],[インデックス]))), 12 //行ごとに[入庫数の累計]と[出庫数の累計]の差を返すカスタム列[現在の在庫数]の追加 13 AddedCurrentInventories = Table.AddColumn(AddedCumulativeSales, "現在の在庫数", each [入庫数の累計] - [出庫数の累計]), 14 //列の並べ替え 15 ReorderedColumns = Table.ReorderColumns(AddedCurrentInventories,{"インデックス", "日付", "月初の在庫", "販売量", "入庫数の累計", "出庫数の累計", "現在の在庫数"}) 16in 17 ReorderedColumns

こんな感じのクエリを作成なさればよろしいのではないかと。

投稿2022/12/20 01:55

sk.exe

総合スコア1059

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

atk233

2022/12/21 04:43

ありがとうございます。累計にしてしまうことで解決ができました。やりたかったことも解決しました! お知恵ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問