- EXCELを使って業務を効率化したい方
- EXCELでデータの前処理をしたい方
▶ 以下の記事でPowerQueryを使った自動処理を紹介しています。


はじめに
EXCELでデータを集計しているときに縦持ちデータを横持データにしたい、あるいは、逆に横持データを縦持ちデータにしたい、ということはないですか?今回はパワークエリを使って縦持ち、横持ちを入れ替える方法を基本から解説します。
縦持ち⇔横持ちを入れ替える方法
縦持ち・横持ちとは
縦持ち・横持ちデータとはどのようなデータでしょうか?1行に1つの情報のみを格納したテーブルのことを縦持ちデータ、属性を横に並べたテーブルのことを横持ちデータと言います。
たとえば、以下は縦持ちデータです。

「科目」列で英語・数学・国語といった属性が縦方向に並んでおり、1行で各属性の得点の情報が1つのみ格納したテーブル構造になっています。たとえば「1行目はらくださんの英語の情報のみ」「2行目はらくださんの数学の情報のみ」「3行目はらくださんの国語の情報のみ」が表現されています。
一方で以下は横持データの例です。

英語・数学・国語といった属性が横方向に並んでおり、1行でこれらの得点の情報をすべて格納したテーブル構造をしています。
これらの入れ替えをみていきましょう。
縦持データ⇒横持ちデータ
まずパワークエリにデータを読み込みましょう。今回、サンプルのデータは既にEXCELのSheetに準備しているので、「データ」メニューの「データの取得と変換」のリボンから「テーブルまたは範囲から」を選択してテーブルを指定します。

「テーブルの作成」ダイアログが開くので、データがある範囲を指定して「OK」をクリックします。

すると、Power Queryエディターが開きます。

属性が縦に並んでいる列を選択し(①)次に「変換」メニュー、「任意の列」リボン(②)の中から「列のピボット」(③)を選択します。すると、列のピボットのダイアログが開きます。

ここでは「科目」列に属性、英語・数学・国語を新しい列とするときの値はどれであるかを指定します。今回は「得点」を選択して「OK」とします。

うまくいきました。あとは、「ホーム」メニューの「閉じて読み込む」を選択します。

テーブルとして読み込む場合は「閉じて読み込む」で構いません。データモデルを作る場合は、「閉じて次に読み込む」を選択しましょう。

「テーブルのインポート」のダイアログが表示されます。データモデルを作成する場合は赤枠内にチェックを入れます。また、テーブルも作成する場合は「テーブル」にチェックを、テーブルは不要であれば「接続の作成のみ」にチェックを入れておくとよいでしょう。設定できたら「OK」をクリックしてください。

縦持ちデータ→横持ちデータができました。次に、同じ要領で横持データ⇒縦持ちデータを見ていきましょう。
横持ちデータ⇒縦持ちデータ
今度はPower Queryエディタに取り込むまでの手順は省略します。先ほど示した横持データを取り込んでPower Queryエディタを立ち上げた画面から説明します。

まず縦持ちにしたい列項目(ここでは英語・数学・国語)を選択します。次に、「変換」メニューの「任意の列」リボンの「列のピボット解除」をクリックします。
これで完成です。今回は「列のピボット解除」をそのままクリックしましたが、プルダウンメニューを表示させると、次のようにピボット解除させる列の選択方法を選ぶことができます。

ピボット解除を実行すると以下のように縦持ちデータとなります。

あとは先ほどと同じ要領で読み込みを実行するだけです。簡単ですね。
まとめ
今回は縦持ちデータ⇔横持ちデータの入れ替え方法を紹介しました。データ分析をしていると、どちらの形式も目にすることがあると思います。いつでも入れ替えられるようにしておきましょう。
コメント