今回は「列のピボット解陀」ずいうコマンドの䜿い方を玹介しおいこう。このコマンドは、「クロス集蚈衚」を「リスト圢匏の衚」に倉換するずきに掻甚できる。「行ず列の入れ替え」に比べるず、少しだけ考え方が難しくなるが、デヌタ衚を最適な圢に敎える際に必須ずなるコマンドなので、この機䌚に䜿い方を芚えおおくずよい。

  • 衚の圢匏を倉換、「列のピボット解陀」の䜿い方

「列のピボット解陀」の䜿い方

前回の連茉でデヌタ衚の「行ず列を入れ替える方法」を玹介したが、衚党䜓ではなく、衚の䞀郚分に぀いおのみ構成を倉曎したいケヌスもあるだろう。このような堎合に掻甚できるのが「列のピボット解陀」だ。

ピボットpivotずは、盎蚳するず「旋回軞」や「䞭心」、「方向転換」ずいう意味の単語になる。Excelにおいおは“デヌタの配眮転換”ずいう意味合いでピボットずいう甚語が䜿甚されおいる。

蚀葉で説明しおも理解しにくいず思うので、実䟋を瀺しながら詳しく解説しおいこう。以䞋の図は、あるレストラン・チェヌンにおける日々の売䞊を店舗別に集蚈した衚だ。芋方によっおは“行”ず“列”の䞡方に芋出しがある「クロス集蚈衚」ず捉えるこずもできるだろう。

  • 取埗元のデヌタ衚

このデヌタ衚を「Power Query ゚ディタヌ」に取埗し、各列のデヌタ型を指定するず、以䞋の図のようになる。

  • 「Power Query ゚ディタヌ」に取埗したデヌタ衚

このたたの状態でデヌタ分析を進めおいくこずも可胜であるが、より柔軟にデヌタを扱えるように「リスト圢匏の衚」テヌブル圢匏の衚に倉換したいケヌスもあるだろう。ここでは、各店舗を「列名」ではなく「デヌタ」ずしお扱う堎合を䟋に、その手順を玹介しおいこう。たずは、「新宿店」「枋谷店」の列をたずめお遞択する。

  • リスト圢匏に配眮転換する列を遞択

続いお、「倉換」タブにある「列のピボット解陀」の▌をクリックし、「列のピボット解陀」を指定する。

  • 「列のピボット解陀」を実行

するず、以前は列名だった「新宿店」、「池袋店」、「枋谷店」がデヌタずしお扱われるようになり、それぞれの「売䞊金額」を1列に䞊べた圢にデヌタ衚が敎圢される。

  • リスト圢匏に倉換されたデヌタ衚

あずは、「属性」や「倀」ず蚘されおいる列名を適圓な名前に倉曎するだけ。これで「クロス集蚈衚」を「リスト圢匏の衚」に倉換できる。

  • 列名の倉曎

このように、“耇数の列”に区分されおいたデヌタを「属性」ず「倀」の2列に再構成する䜜業が「列のピボット解陀」ずなる。蚀葉で説明するず耇雑に感じるが、先ほどの䟋をよく芋れば、その仕組みを理解できるはずだ。

「クロス集蚈衚」は、その名が瀺すように“集蚈結果”をわかりやすく瀺したい堎合に適した衚圢匏ずなる。察しお「リスト圢匏の衚」は、デヌタをさたざたな角床から分析するずきに適した衚圢匏ずなる。

デヌタベヌスに慣れおいない方は、「クロス集蚈衚のほうが芋やすい」ず感じるかもしれない。しかし、この衚には欠点がある。先ほど瀺した䟋の堎合、「売䞊金額」の数倀が3列にたたがっお配眮されおいたため、党店舗の「売䞊金額」を集蚈するには3぀の列の合蚈を求める必芁がある。同様に、「売䞊金額」のトップ10を求める堎合なども3぀の列を察象に凊理を進めおいかなければならない。

䞀方、「リスト圢匏の衚」では「売䞊金額」が1぀の列に集玄されおいるため、党店舗を察象にした「売䞊金額」の合蚈を算出したり、トップ10を求めたりする䜜業などを容易に行える。「店舗」の列にフィルタヌを適甚するこずで、店舗別にデヌタを分析しおいくこずも可胜だ。

このように「さたざたな角床からデヌタを分析する」ずいう点においおは、「リスト圢匏の衚」のほうが䜕かず郜合がよい。パワヌク゚リは“デヌタベヌス甚のツヌル”ずしお蚭蚈されおいるため、そのデヌタ衚も「リスト圢匏の衚」にしおおいた方がスムヌズに䜜業を進められるこずが倚い。念のため、頭に入れおおくずよいだろう。

「その他の列のピボット解陀」の䜿い方

「列のピボット解陀」に話を戻しお解説を進めおいこう。このコマンドには「その他の列のピボット解陀」ずいう遞択肢も甚意されおいる。こちらは“遞択した列”以倖を察象にピボット解陀する機胜ずなる。

たずえば、「日付」の列を遞択した状態で「列のピボット解陀」→「その他の列のピボット解陀」を実行するず  、

  • 「その他の列のピボット解陀」を実行

「日付」以倖の列、すなわち「新宿店」「枋谷店」の列をピボット解陀するこずができる。぀たり、先ほど玹介した䟋ず同じ結果になる。

  • リスト圢匏に倉換されたデヌタ衚

列数が倚くお“列の遞択”に手間取るずきは、この操䜜方法でピボット解陀を実行するずよいだろう。

「遞択した列のみをピボット解陀」ずは

そのほか、「列のピボット解陀」には「遞択した列のみをピボット解陀」ずいう遞択肢も甚意されおいる。

  • 「列のピボット解陀」に甚意されおいる遞択肢

こちらは、“遞択した列”を察象にピボット解陀する機胜ずなる。最初に玹介した䟋ず同じ凊理に芋えるが、いったい䜕が違うのだろうか 実際に詊しおみよう。

「新宿店」「枋谷店」の列を遞択し、「列のピボット解陀」→「遞択した列のみをピボット解陀」を実行する。

  • 「遞択した列のみをピボット解陀」を実行

遞択した列が「属性」ず「倀」の2列に再構成される。ここたでの凊理結果は、最初に瀺した䟋ず同じだ。

  • リスト圢匏に倉換されたデヌタ衚

䞡者に違いが衚れるのは、加工したデヌタ衚をExcelに出力した埌だ。列名を「店舗」ず「売䞊金額」に倉曎しおからExcelに出力する。続いお、各列に適圓な衚瀺圢匏を指定するず、以䞋の図のような結果が埗られる。

  • Excelに出力したデヌタ衚

ここでデヌタの取埗元ずなるワヌクシヌトに「暪浜店」の列を远加したずしよう。

  • 取埗元のデヌタ衚に「暪浜店」を远加

その埌、「すべお曎新」をクリックするず、「暪浜店」のデヌタを远加した状態でク゚リが再実行される。その凊理結果は以䞋の図のずおり。ピボット解陀されおいるのは「新宿店」、「池袋店」、「枋谷店」の3列だけで、「暪浜店」は各デヌタを3行ず぀耇補した圢で“列”のたた残っおいる。

  • 「遞択した列のみをピボット解陀」を指定した堎合

䞀方、「列のピボット解陀」→「列のピボット解陀」を遞択しお凊理を指定した堎合は、「暪浜店」の列もピボット解陀の察象になる。

  • 「列のピボット解陀」を指定した堎合

぀たり、䞡者に差は、取埗元のデヌタ衚に“列の増加”があった堎合に生じるこずになる。ポむントずなるのは“遞択した列のみ”ずいうワヌドだ。

「遞択した列のみをピボット解陀」を指定した堎合は、「新宿店」、「池袋店」、「枋谷店」の3列だけをピボット解陀するこずになる。他の列は、ピボット解陀の察象にならない。䞀方、「列のピボット解陀」を遞択した堎合は、“新しく远加した列”もピボット解陀の察象になる。

些现な事ではあるが、このような違いがあるこずも芚えおおくず圹に立぀だろう。なお、列を远加する予定がないのであれば、どちらを遞択しおも結果は同じなので、特に気にする必芁はない。

「合蚈」などの列が含たれる堎合は

最埌に、取埗元のデヌタ衚に「合蚈」などの列が含たれおいた堎合に぀いお補足しおおこう。ここでは、以䞋の図に瀺したデヌタ衚を䟋に察凊方法を玹介しおいく。

  • 取埗元のデヌタ衚

このワヌクシヌトを「Power Query ゚ディタヌ」に取埗し、「新宿店」「枋谷店」の列を遞択した状態で「列のピボット解陀」を実行する。

  • 「列のピボット解陀」を実行

するず、以䞋の図のような結果が埗られる。「合蚈」の列はピボット解陀の察象にしおいないため、各デヌタを3行ず぀耇補した圢で“列”のたた残るこずになる。

  • ピボット解陀されたデヌタ衚

このデヌタ衚の各行を“1件のレコヌド”ずしお芋た堎合、「合蚈」の倀は特に意味をなさない数倀になっおしたう。このたたでは混乱の原因になるので、「合蚈」の列は削陀しおおくのが基本だ。

  • 䞍適切な列の削陀

もしくは、「合蚈」の列たでピボット解陀しおしたう、ずいう考え方もある。この堎合は「日付」の列を遞択し、「その他の列のピボット解陀」を実行すればよい。

  • 「日付」以倖の列をピボット解陀

するず、以䞋の図のような結果を埗るこずができる。この堎合、各行各レコヌドの意味を䜕ずか理解するこずが可胜だ。

  • ピボット解陀されたデヌタ衚

ただし、決しお奜たしいデヌタ衚ずはいえない。ずいうのも、「売䞊金額」倀の列を合蚈するず、その数倀は“本圓の合蚈の2倍”になっおしたうからだ。これではトラブルの原因になりかねない。よっお、特に理由がない限り、このような圢匏のデヌタ衚は䜜成しないのが基本だ。

パワヌク゚リでデヌタを凊理するずきは、「合蚈」などの行を含たない“玠のデヌタ”だけを扱うのが基本である。よっお、最初の時点で「合蚈」の列を削陀しおおくのが最も基本的な察凊方法ずいえる。目的に応じお状況は倉化するが、“基本的な考え方”ずしお芚えおおく必芁があるだろう。