[PowerQuery]エラーになる日付を除く
2021-02-07
はじめに
年,月,日が別セルに入っているデータをクエリで読込んで,日付型のデータに変えてひとつのセルに入れる.
元データ
変換後データ
11月31日は存在しないので、変換後データからは除外する。
結論
変換できない日付はnull
にして、フィルタでnull
を除く。Error
のままだとフィルタで除けない。 nullに変換する方法は以下の2通り。
- 日付に変換する際に
try ~ otherwise
を使い,変換できない値はnull
にする - 一旦全部日付に変換して,
Error
をnull
にする
元データの準備
年、月、日が別セルに入っているデータを想定する。存在しない日(11月31日)も入っている。
元データを読込む
元データを選択した状態で、クエリを使ってデータを読込む.手順は以下の通り。
- 「データ」タブ
- データの取得
- その他にデータソースから
- テーブルまたは範囲から
- 元データの範囲を指定して読込む.
読込んだデータ.
日付型にできない値をnullに(try ~ otherwise)
まず,カスタム列を追加する.
日付型に変換する式を追加する。追加する式は以下の通り。
try #date([年], [月], [日]) otherwise null
変換できなかった日付にはnull
が入る。
フィルタでnullを除く
列「日付」のフィルタでnullを除く。
日付型に変える
日付型に変更後,「閉じて読み込む」ボタンを押すと、存在しない日付を除いた一覧がワークシートにできる。
Errorをフィルタで除いたら
try~otherwiseを使わずに,11月31日のような存在しない日付を日付型に変更すると,Error
となる。
Error
はフィルタで除くことができない(リストに出てこない)。
日付型にできない値をnullに(日付型に変換してからErrorをnullに変える)
try~otherwiseを使わずに,全ての値を日付型に変換した後でError
をnull
変えることもできる.まず,日付型に変換するためのカスタム列を追加する.
日付型に変換する式を追加する。追加する式は以下の通り(try ~ otherwiseは使わない)。
#date([年], [月], [日])
変換できなかった日付にはError
が入る。
「変換」タブの「値の変換」から「エラーの変換」を選ぶ.
Error
をnull
に変換する.
Error
になった,変換できなかった日付はnull
になる。
後はフィルタでnullを除き,日付型に変えれば完了.
環境
- Windows 10 Pro
- Excel 365