【Excel】元表の変更を別表にも自動反映するなら、コピペじゃなくて「データの取得と変換」:Tech TIPS
元の表を加工せず、値を加えたり、順番を並べ替えたりした表をグラフ化したいようなことはないだろうか。こうした場合、元の表のシートをコピーして、コピーした表を加工するのが一般的だ。しかし、この方法では元の表の値を変更した場合、コピーした表に手動で反映しなければならない。実は、このような場合、「データの取得と変換」機能を使うとよい。その使い方を紹介しよう。
対象:Excel 2016/2019/365
「データの取得と変換」機能を使って元の表をそのままに値を加工する
元の表はそのままに、値を加工してグラフを作成したような場合、表をコピーするのではなく、「データの取得と変換」機能を使って元の表とリンクしたテーブルを作成するとよい。画面のデータは、「東京都 新型コロナウイルス感染症検査陽性者の状況」。
「Microsoft Excel(エクセル)」で表をグラフにする際、そのままの値を使えればいいが、場合によっては幾つかの値を合計したり、並べ替えを行ったりした結果を用いたいこともあるだろう。
このような場合、表を別のシートにコピーして、そのコピーで計算した結果を作成して、グラフ化することが多いのではないだろうか。しかし、表をコピーしてしまうと、元の表で値の変更が行われた場合、コピーした表にその変更を手動で反映しなければならない。場合によっては、コピーした表で行った作業が無駄になってしまうこともある。
このような場合、元の表をコピーするのではなく、「データの取得と変換」機能を使って「テーブル」を別シートに作成し、そこからグラフを作るとよい。こうして作られたテーブルは、元のセル範囲と同一のデータを維持しながら、並べ替えや書式を別に設定できるからだ。
グラフ以外にも、ソート順や書式設定、あるいは一部を隠した表など、1つの表から複数のバリエーションを作る場合にも利用できる。「データの取得と変換」を使って作られたテーブルは、元データと常に同じになるため、複数の表やグラフがあってもデータの修正、訂正は元データだけを編集すれば済むので、手動で別の表に反映する必要はない。
「テーブル」機能とは
Excelには、「テーブル」と呼ばれる機能がある。「テーブル」は、セル範囲に対して設定する。テーブルにすると、集計行/列などを簡単に挿入できるようになるなどの特殊な機能が有効になる。こうした機能の1つに「データの取得と変換」を使ったテーブルの作成がある(作成手順は後述)。
「リンクされたテーブル」の作成手順では、複数のシートやセル範囲がかかわるため、ここで説明のための用語を整理しておく。あるシートに表形式のデータが入っているセル範囲があるとする。以降では、これを「元表」、Excelの「データの取得と変換」を使って「元表」から別のシートに作成したテーブルを「リンクされたテーブル」と呼ぶ(あくまでも解説のための用語であり、Excelの用語ではないことに注意されたい)。「データの取得と変換」では、元表の状態を監視し、編集があれば、それを「リンクされたテーブル」に反映させる。
こうして作られた「リンクされたテーブル」は、元のセル範囲に対して行った編集(セルの書き換え、行や列の挿入など)が反映される。しかし、「リンクされたテーブル」と「元表」は、個別に並べ替えや書式設定を行うことができる。
「元表」から「リンクされたテーブル」を作る手順
では、具体的に表から「リンクされたテーブル」を作る手順を解説しよう。Microsoft 365版Excel(以下、Excel 365)とExcel 2016では基本的な手順は同じだが、表示されるダイアログに多少の違いがある。記事中の画面は、Excel 365のものである。
既にシート上に表データがあるとして、これを「元表」にして「リンクされたテーブル」を作成する。それにはまず、「元表」を選択する。データが入った表全体を選択するのであれば、表内のセルを選択して[Ctrl]+[A]キーを押せばよい。
この状態で、[データ]タブにある[データの取得と変換]−[テーブルまたは範囲から](Excel 365)/[取得と変換]−[テーブルから](Excel 2016)をクリックする。
Excel 365では、ここで元表の範囲を確認する[テーブルの作成]ダイアログが表示されるので、[OK]ボタンで先に進む。Excel 2016では、アクティブセルが表内にない場合のみ、このダイアログが表示される。
その後「Power Queryエディター」の画面が表示される。ここでは、左ペインの領域にある元表の範囲が正しいかどうかを確認した後、右ペインの「クエリ設定」にある「プロパティ」欄の「名前」を設定する(デフォルトは「テーブル<数字>」)。ここで指定したものがリンクしたテーブルの名前になる。またExcel 365では、リンクしたテーブルが置かれる新規シートの名前にもなる。
Excel 2016では、他のシートと同じく「Sheet<数字>」となる。名前以外は設定する必要がないので、Power Queryの[ホーム]タブの[閉じる]−[閉じて読み込む]を使ってPower Queryを閉じる。
すると新しいシートが追加され、そこに「リンクしたテーブル」が作成される。このテーブルは、「元表」とリンクしており、「元表」に対して行った変更が自動的に反映される。
ただし、「リンクされたテーブル」の更新は、バックグラウンド処理でExcelがアイドル状態になったときなどに実行される。そのため、即座に反映させたい場合には、[データ]タブの[クエリと接続]−[更新]または[すべて更新]を使う。
作成されたテーブルは、「フィルター」が設定され、「テーブルスタイル」(色など)が設定されているが、これは解除することが可能だ(解除してもテーブルの機能には影響がない)。
また、元表もテーブルに変換されるため、同じくテーブルスタイルが設定され、フィルターが有効になる。テーブルスタイルは、テーブル内のセルを選択した状態で、[テーブルデザイン]タブの[テーブルスタイル]グループで変更できる。ここで、[テーブルスタイル]を一番上までスクロールして、[なし]のスタイルを選択すると、色などが付かないテーブルスタイルになり、テーブル変換前の体裁に戻る(テーブル変換後でも元表の書式は維持される)。
フィルターは、セルのデータそのものには影響がないため、これを使って一部を省略表示させた表にすることも可能だ。フィルター機能は、[データ]タブの[並べ替えとフィルター]−[フィルター]で解除が可能だ。
テーブルスタイルを「なし」にしても、テーブル範囲の右下には緑の小さなインジケーターが表示されており、テーブルになっていることが分かる。基本的には、テーブルのままでも普通のセル範囲と同様に利用できるため、テーブルを解除する必要はない。
また、クエリでリンクされたテーブルの更新を可能にするためには、「元表」もテーブルになっている必要がある。そのため、「元表」のテーブルを解除してしまうと、「リンクされたテーブル」との関係も切れてしまうので注意してほしい。
どうしてもテーブルを解除したい場合には、テーブル内で右クリックメニューを開き[テーブル]−[範囲に変換]を選択する。テーブルを範囲に変換してもクエリは残るが、これも削除することも可能だ。
「リンクされたテーブル」を使ってグラフを作成する
次にグラフを作ってみよう。テーブルであっても、グラフの作り方は同じだ。「リンクされたテーブル」で範囲を選択して[挿入]タブのグラフから種類を選択すれば、グラフが作成できる。グラフを作るとき、「リンクされたテーブル」で並べ替えや表示形式を変えても元表には影響がない。
「リンクされたテーブル」を使ってグラフを作成する(1)
「リンクされたテーブル」を必要に応じて加工する。ここでは、新型コロナウイルスの累積患者数(「B」列)から、日々の新規患者数(「C」列)を計算する。この際、「C」列は、元の表には影響しない。また、元表で値の変更があった場合は、「リンクされたテーブル」に反映される。
「リンクされたテーブル」を使ってグラフを作成する(2)
日付(「A」列)と計算した「C」列で新規患者数の推移をグラフ化する。このように「リンクされたテーブル」を使えば、「元表」に変更を加えずに、自由に値を加工してグラフを作成できる。
また、テーブルには自動的にフィルターが有効になるので、見出し行のセルにある[▼]部分をクリックして、不要なデータのチェックを外すことで、データを隠すこともできる。これを使えば、表の一部のみを利用してグラフを作ることも可能だ。
もし、「リンクされたテーブル」のシートが邪魔に感じるのであれば、非表示にすることも可能だ。これには、[シート]タブ上で右クリックメニューを開き、[非表示]を選択する。再度表示させるには、他のシートタブの上で[再表示]を選択する。
クエリを使って表をテーブルとして別シートに作成することで、並べ替えなどが自由に行えるリンクされたテーブルを利用できるようになる。また、グラフが作りやすくなるだけではなく、1つの表を並べ替える、フィルター機能で一部のデータだけの表を作るといったことが簡単に行える。
これを覚えると、1つの表から複数パターンの表を作成して、それぞれを自由に加工できるため、応用範囲が広い。単純な表のコピーと違い、「元表」とデータがリンクしており、作業中に「元表」が変更になっても、テーブル側をゼロから作り直す必要がないというメリットがある。
Copyright© Digital Advantage Corp. All Rights Reserved.