Quantcast
Channel: なんでもエクセル(Nandemo Excel)
Viewing all articles
Browse latest Browse all 60

Power Query:ソースの読み込みエラーを回避する(DataSource.Error)

$
0
0

皆さんは、クエリでソースを読み込もうとしたらエラーが起きたことはないでしょうか。私はよくあります。

固定のパスでフォルダを参照していると、ふとした拍子にリンクが切れてしまうことがあるからです。

こんな時は慌てずに、右上の「設定の編集」ボタン、もしくは「データ ソースの変更」から、正しいファイルパス(もしくはフォルダパス)に修正してあげましょう。

ただ、「もしAがダメならBを読み込んで欲しいんだよね」という場面もあるかもしれません。ところが、DataSource.Errorは「try~oherwise」では回避できないんですよね。

これじゃダメ
    接続1 = File.Contents("C:\……\……\A.xlsx"),     接続2 = File.Contents("D:\……\……\A.xlsx"),     ソース = Excel.Workbook(try 接続1 otherwise 接続2, null, true)

この方法では読み込みエラーが出ている場合でも、エラーとは判定してくれません。もちろん、HasErrorを使っても一緒です。

ではどうすればいいんでしょうか。読み込み方を下記のようにすれば判定できます。

こっちが正解
    接続1 = File.Contents("C:\……\……\A.xlsx"),     接続2 = File.Contents("D:\……\……\A.xlsx"),     ソース = Excel.Workbook(         if (try Binary.Length(接続1))[HasError] then 接続2 else 接続1,         null, true     )

「File.Contents」の結果はバイナリ型なので、Binaryデータを読み込む関数に入れてみて、結果がどう出るかでチェックすればいいんです。


Viewing all articles
Browse latest Browse all 60

Trending Articles