PowerBIDesktopで、ひとつ前の行を参照したいニーズがあった。具体的に、以下のようなニーズ。
Index | 取得したい列 | 取得した列 |
---|---|---|
1 | 山田 | Error |
2 | 田中 | 山田 |
3 | 石崎 | 田中 |
4 | 来生 | 石崎 |
5 | 井沢 | 来生 |
6 | 滝 | 井沢 |
DAXに慣れてないので、PowerQuery側で何とかしてみようと思い、ChatGPT大先生に聞くと、以下のようにすればいいよ!って回答あり。
・最初に、インデックスを作る (0スタートのもの)
・以下のようにカスタム列を作る
追加されたインデックス[取得したい列]{[インデックス] - 1}
PowerQuery上で試してみると、うまくいった。
さすがChatGPT大先生!と思って、適用させたところ、問題発生。
適用が終わらん。。
前提条件
今回、読み込むソースはCSVファイルで、ローカルPC上に置いている。
なお、ファイルは4つに分かれている為、PowerQuery上で事前に結合させている。
なお、ファイルの容量は以下の通り。これは伏線なので、軽く覚えておいてほしい。
起こっていたこと
ファイル読み込みウィンドウを見てみると、データの読み込みはしてくれている。
ただひとつおかしいのは、用意したCSVファイルの容量をはるかに超えるデータ量を、読み取っているということ。
1GB?なして??
訳が分からずに、天井知らずでどんどんデータ量は膨れ上がっていた。
原因
やり方が悪いと思うんだけど、なんでだろう?
だれかわかる人いましたら、お教えいただきたい。。
対策
とりあえず、違う方法を試みた。
・最初に、インデックスを作る (0スタートのもの)
・もういっこ、インデックスを作る (1スタートのもの)
・下の絵のように、マージする
マージってコスト重いとかいうし不安やなーって思ってたけど、すぐ終わった。
結果
狙い通りの処理ができるようになって満足。
でも原因不明。