テーブル状態の保持


「取得と変換」の結果はテーブル形式になります。しかし実務では、結果として得られたテーブルだけで済むとは限りません。「取得と変換」で得られた結果のテーブルに対して、あれこれと編集を加えることが多いです。それら自由に行った編集などは、テーブルを更新したときに、ちゃんと保持されるのでしょうか。それを試してみます。

元のデータは上図のようなテーブルです。これをPower Queryエディタに読み込みます。

[日付]列のデータ型が「日付/時刻」になっていますので、これを「日付」にします。さらに[コード]列の文字列をハイフン(-)で分割します。

このままの状態で、シートに読み込みます。

上図が、読み込んだ直後の標準状態です。今回は、オートフィルタのテストもしたいので、元データとは別のシートに読み込みました。さて、ここに、あれこれと編集してみましょう。まずは、テーブルのデザインを変更します。

次に、列幅を変更します。

新しく計算式を入力します。

表示形式(書式)を設定します。ここでは、次のように設定しました。

  • A列 → 年月日
  • C列 → 桁区切り
  • D列 → 文字列
  • E列 → 桁区切り+ユーザー定義で"円"

C列を昇順で並べ替えます。

B列をオートフィルタで絞り込みます。

セルの塗りつぶし文字色を変更します。

今日は、このくらいでかんべんしてやりましょう。新しいデータを追加します。

新しいデータの記号は"A"ですから、オートフィルタの絞り込み結果に表示されるはずです。また、コードの先頭を"2000"としましたので、並べ替えの結果は先頭に表示されるはずです。さあ、これでテーブルを更新します。結果は下図のようになりました。

新しく入力したデータは、正しく反映しました。設定した表示形式も大丈夫です。挿入した計算式も残っています。並べ替えの結果やオートフィルタの絞り込みも、更新前の状態を保持しています。気になるのは、セルの塗りつぶしや文字色です。でもこれは、しかたないでしょう。色を設定したのはテーブルではなく、単体のセルです。それぞれセルB4とセルD5に設定したのですから、それがそのまま生きています。まぁ、これは良しとしましょう。保持されず、元に戻ってしまったのは列幅です。結果を整理してみましょう。

編集 結果
テーブルのデザイン 保持される
列幅 保持されない
計算式(新しく挿入した列) 保持される
表示形式 保持される
並べ替えの結果 保持される
オートフィルタの絞り込み 保持される
色などの書式 保持される

列幅以外は、すべて変更した内容が保持されました。実は、列幅は保持されないだろうなというのは、予想どおりでした。「取得と変換」の結果をシート上に表示するのは、Excelに昔からあるデータ接続の機能です。データ接続で、Accessのデータやテキストファイルをシート上に読み込んだとき、元データが更新されると標準では列幅が元に戻ってしまいます。今回のも、同じ挙動です。これを変更して、元データが更新されても列幅を保持するには、Power Queryエディタではなく、Excelの「データ接続」プロパティを変更してやります。テーブル内にアクティブセルを移動して、[データ]タブ[クエリと接続]グループの[プロパティ]をクリックします。

実行すると[外部データのプロパティ]ダイアログボックスが表示されます。ここの[列の幅を調整する]オプションは、標準でオンになっています。だから、元データを更新すると列幅が元に戻ってしまうのです。ここをオフにすると、列幅も保持されるようになります。