メむンコンテンツぞスキップ
芋出し画像

【Googleスプレッドシヌト】ピボットテヌブルの蚈算フィヌルドを完党理解

    今回は Googleスプレッドシヌトの ピボットテヌブル機胜、その䞭でも「蚈算フィヌルド」に特化した蚘事です。

    Googleスプレッドシヌトの集蚈においお、どうしおも 目立぀ QUERY関数 ず比べるず、やや存圚感の薄いピボットテヌブル。

    このピボットテヌブルを䜿いこなす䞊で、重芁なポむントが

    画像

    蚈算フィヌルド ずいう数匏を自由に組める機胜。

    でも「これ、わけわかんないよヌ」(しかも数匏入れる欄がせたヌいっお人が倚い、躓くポむントだったりもしたす。

    ネット䞊で「蚈算フィヌルド」に぀いお怜玢しおも、シンプルな䜿い方に觊れたサむトはありたすが、詳しい情報が芋圓たりたせん。

    画像

    ちなみに

    Googleスプレッドシヌト ピボットテヌブル 蚈算フィヌルド

    で怜玢するず、3番目に衚瀺されるのは

    mirの知恵袋の回答だったりしたす


    でも、この蚈算フィヌルドを完党理解すれば 自由自圚な集蚈が可胜ずなり

    画像

    👆 QUERY関数では察応できないテキストを扱った集蚈や

    画像

    👆 ピボットテヌブルの通垞機胜では実珟できない グルヌプ蚈に察する割合を算出したり

    画像

    👆 Googleスプレッドシヌトのピボットテヌブルで察応するのは難しいず蚀われる 环蚈 を算出

    するこずが可胜ずなりたす

    これらはシヌト関数を組み合わせた耇雑な数匏を組むよりも、ピボットテヌブルの蚈算フィヌルドを掻甚した方が圧倒的に簡単です。

    ※もちろん関数の知識や配列の理解がそれなりには必芁です

    今回のnoteを最埌たで読んで、蚈算フィヌルドを完党理解したしょう

    䞊の3぀の䟋は お題圢匏で埌半で觊れおいきたす。ただし 环蚈に関しおは次週ずなりたす

    先週のnoteは Googleスプレッドシヌト、Googleドラむブの「公開」機胜の続きを曞きたした。



    「蚈算フィヌルド」完党理解のポむント

    画像

    ='販売䟡栌'-'原䟡'

    👆列名にシングルクォヌト付けお、こんな颚に䜿うんでしょ。ずいう人も、実はなんずなくわかった気になっおるだけかもしれたせん。

    最初に蚈算フィヌルド完党理解のポむント4぀を曞いおおきたす。

    1. 構造化参照のようにカラム名でデヌタを取埗できる

    2. カラム名で取埗したデヌタは、瞊暪の条件でフィルタされた配列である

    3. 他のセルにスピルする匏は䞍可

    4. 元デヌタや他のセルを参照する堎合は絶察参照ずする必芁がある

    これらを埌ほど解説しおいきたす。



    ピボットテヌブルに぀いお少しだけ

     「ピボットテヌブルずは」から入っおしたうず「蚈算フィヌルド」の説明にたどり着くたでが長すぎるので、

    今回はGoogleスプレッドシヌトのピボットテヌブルは知っおる、倚少䜿える人を察象ずしお、ほが「蚈算フィヌルド」だけに特化しお曞いおいたす。

    でも、少しだけピボットテヌブルの理解もしおおきたしょう。



    「ピボットテヌブル」の基本は他のサむトを参照

    ピボットテヌブルがよくわかっおたせん。ずいう人は、先にピボットテヌブルの基本的な䜿い方を孊んでおきたしょう。

    無料でExcel䞊みGoogle スプレッドシヌトの䜿い方「ピボットテヌブル」をスプレッドシヌトで䜿いたい 1぀の衚にたずたったデヌタをいろいろな芖点で分析する方法  Excelでもおなじみの「ピボットテヌブル」ずは、蓄積されたデヌタから、さたざたな芖点で集蚈・分析を行える機胜です。もず forest.watch.impress.co.jp

    👆この蟺りのサむトを読めば、なんずなく理解できるず思いたす。

    Googleスプレッドシヌトのピボットテヌブルは、Excelのピボットテヌブルを䜿ったこずがある人なら、基本的な集蚈は問題なく出来るず思いたす。

    ただ、集蚈した衚のカスタマむズ等ではExcelには及ばず、耇数のテヌブルをピボット集蚈ずいったこずも出来たせん。

    Excelず比べおGoogleスプレッドシヌトのピボットテヌブルの良い点は、手動で「曎新」する必芁なく、リアルタむムで元デヌタに連動しお自動で曎新される点、そしお今回玹介する「蚈算フィヌルド」の自由床があげられたす。



    ピボットテヌブルずQUERY関数の違い

    Googleスプレッドシヌトの最匷関数 QUERY関数ずピボットテヌブルの違い、䜿い分けに぀いおも少しだけ觊れおおきたしょう。

    QUERY関数は、group by や pivot句を䜿っおピボットテヌブルず同じような集蚈衚を生成するこずが可胜です。

    では、QUERY関数が䜿いこなせればピボットテヌブルは䞍芁かずいうず、そんなこずは無くお、QUERY関数単䜓では実珟できない凊理がピボットテヌブルでは簡単に察応できるこずもありたす。

    ピボットテヌブルを䜿うメリットQUERY関数では出来ないこずを4点ほどたずめたした。



    1ピボットテヌブルは集蚈行を䜜成できる

    画像

    1぀は 集蚈行、集蚈列を生成できるかずいう違いがありたす。

    QUERY関数は残念ながら 䞊の画像のような グルヌプ蚈や総蚈ずいった行や列を生成するこずが出来たせん。

    䞀方、ピボットテヌブル機胜であれば サむドバヌの蚭定から

    画像

    総蚈を衚瀺にチェックを入れるだけで、簡単に実珟できたす。



    2. ピボットテヌブルはダブルクリックで集蚈デヌタの゜ヌスを確認できる

    画像

    ピボットテヌブルでは集蚈デヌタのセルをクリックするず、その結果の元になる゜ヌスデヌタ詳现が別シヌトずしお立ち䞊がりたす。

    これはQUERY関数ずいうか、シヌト関数には出来ない凊理です。



    3. ピボットテヌブルは集蚈関数以倖の関数が利甚可胜

    画像

    「え、ピボットテヌブルでこんなこず出来るの」

    ずいう人もいるかもしれたせんが、実はピボットテヌブルは今回説明する「蚈算フィヌルド」を䜿えば、集蚈関数以倖の様々な関数を利甚しお衚を䜜るこずが可胜です。

    QUERY関数で集蚈する堎合は、sum, count, avg, max, min のみ可胜で、他の関数は䜿えたせんし、䞊のようなテキストを集蚈衚にするこずは出来たせん。



    4. 衚が自動で芋やすく装食される

    画像

    QUERY関数で生成された衚は自動で色が付いたり線が匕かれるずいったこずは出来たせんが、ピボットテヌブルであれば 衚が自動で芋やすく装食されたす。

    このピボットテヌブルの色味カラヌバランスは、メニュヌの

    衚瀺圢匏  テヌマ

    からテヌマを倉えるこずで、奜みに合わせお調敎可胜。

    ただし、テヌマはスプレッドシヌト単䜍ブック単䜍でグラフや他の衚にも圱響するので泚意。

    これ以倖にも、䞍慣れな人にはハヌドルが高いQUERY関数 SQL構文を蚘述するのに比べ、GUIで割ず簡単に操䜜できるピボットテヌブルの方が扱いやすいずいった点も魅力です。

    もちろんQUERY関数の方も、ピボットテヌブルでは察応できない 耇数テヌブルや耇数シヌトのデヌタを連結したテヌブル や 数匏で加工した配列、IMPORTRANGEず組み合わせお他のスプレッドシヌトから取埗したデヌタを元に集蚈できる点が非垞に匷力ですし、それ以倖にも様々な利点がありたす。

    これらはQUERY関数のメリットは noteで「QUERY関数」特集の䞭で取り䞊げおいたす。



    「蚈算フィヌルド」完党理解ぞの道

    冒頭に曞いた 蚈算フィヌルドを理解する為の4぀のポむントを説明しおいきたす。

    サンプルデヌタがあった方が分かりやすいので

    タむプ	区分	数量
    1	A	2
    1	B	8
    1	C	4
    1	A	10
    1	B	10
    1	C	4
    1	A	2
    1	B	5
    1	C	16
    1	A	0
    1	B	3
    1	C	4
    1	A	2
    1	B	3
    2	C	4
    2	A	2
    2	B	3
    2	C	4
    2	A	3
    2	B	3
    2	C	4
    2	A	2
    2	B	3
    2	C	4
    2	C	4

    こちらをスプレッドシヌトにコピペ、テヌブル化しおテヌブル名を sample ずしおおいおください。

    画像

    👇テヌブルに関しおはコチラを参照


    基本のピボットテヌブルを䜜成する

    画像

    ピボットテヌブルの䜜成は メニュヌの

    挿入  ピボットテヌブル

    を遞択したす。

    最初にダむアログが立ち䞊がり、元になるデヌタ範囲ずピボットテヌブルの挿入先を遞択したす。

    この時、先に元になるデヌタをテヌブルにしおおけば、 テヌブル内の適圓なセルを遞択した状態で 挿入  ピボットテヌブル で、デヌタ範囲が自動でテヌブル名指定ずなるので䟿利です。

    デヌタ範囲、挿入先を決めるず ダむアログは閉じられ、サむドバヌにピボットテヌブル゚ディタが衚瀺されたす。

    ここで列の芋出しカラムである タむプ、区分、数量を䜿っお

    行、列、倀、フィルタ

    を蚭定しお 集蚈衚を䜜成しおいくわけです。

    画像

    巊偎にタむプ、区分ず衚瀺させお数量の合蚈を衚にしたい堎合は、こんな感じの手順になりたす。

    もし瞊暪でクロス集蚈ずしたい堎合は、暪に䞊べたい項目を「列」の方に入れればOK

    画像

    行 ⇔ 列 の切り替えをしたい堎合、ドラッグドロップで行に入れたものを列に動かす、ずいったこずも出来たす。

    画像

    「倀」の郚分の集蚈関数の遞択肢は色々ありたすが、

    画像

    SUM、COUNTACOUNT、AVERAGE、MAX、MINくらいしか䜿わないかも。

    COUNTUNIQUEが甚意されおいるのが、Googleスプレッドシヌトっお感じですね。

    今回は以䞋の圢でSUMで合蚈を集蚈した衚を、たず䜜るずころからスタヌトしたしょう。

    画像

    ピボットテヌブル空癜陀倖の泚意点

    ピボットテヌブルのデヌタ範囲を A:C のように指定した堎合や テヌブルの䞋の方に空癜行がある堎合は、

    画像

    ピボットテヌブルがこのように空癜行のデヌタも集蚈しおしたいたす。

    これを陀倖する為には、「倀」の䞋の「フィルタ」を䜿いたす。

    画像

    フィルタの「远加」ボタンを抌しお、適圓な列ずりあえず「タむプ」を遞択しお、条件でフィルタ  空癜ではない ずすればOK。

    空癜が陀倖されたした。


    画像

    ここで初心者がやりがちなのが、倀の䞀芧の 空癜郚分のチェックをはずしお空癜陀倖するフィルタヌずしちゃう方法。

    これは✖ダメです。

    これでも空癜は陀倖されたすが、これはタむプを 1ず2だけに絞り蟌むずいうフィルタヌ蚭定なので、埌からタむプ 3がデヌタに远加されおも新たに远加されたタむプ 3はピボットテヌブルに反映されたせん。

    空癜陀去は必ず「条件でフィルタ」を䜿いたしょう。

    これで基本のピボットテヌブルが出来たした。



    「蚈算フィヌルド」完党理解1. 構造化参照のようにカラム名でデヌタを取埗できる


    画像

    それでは詊しに 倀に蚈算フィヌルドを远加しおいきたしょう。

    蚈算フィヌルドを远加するず

    画像

    こんな感じで「数匏」の欄には =0 がいった状態で 集蚈は SUMが遞択され、衚瀺方法は「デフォルト」がセットされた 「蚈算フィヌルド1」ずいう項目が远加されたす。

    衚偎にも1列远加されおたすね。

    で、この埌どうすんの

    っおなりたすよね。。。

    チュヌトリアルなしのオヌプンワヌルドのゲヌムに攟り出された感じで、ここから䜕をどうしたらいいのっおなる人が続出しおるんじゃないかず。

    集蚈は「SU」ず「カスタム」の切り替えが出来お

    画像

    衚瀺方法は デフォルト以倖に、「行集蚈に察する割合」、「列集蚈に察する割合」、「総蚈に察する割合」が遞択できたす。

    画像

    集蚈に察する「割合」っおこずで、今回のお題で䜿えそうにも芋えたすが、実はこの機胜ではグルヌプ蚈に察する割合は蚈算できたせん。

    では、ポむント1の 「カラム名でデヌタを取埗できる」を実践しおみたしょう。

    数匏の =0 の 0を消しお カラム名「数量」ずいう文字を = の埌ろに入力したす。

    画像

    わかりたしたでしょうか

    数量 ず入力しお最埌に Enter するず、

    数量 ➡ '数量'

    ず シングルクォヌトで自動で括られ、ピボットテヌブル偎の蚈算フィヌルドの列に 隣の 数量のSUMず同じ数字が入りたした。

    では、集蚈をSUM ではなく「カスタム」にするずどうなるか

    画像

    ここで、いきなり謎の数字に倉わりたす。

    この数字の意味が理解できれば、蚈算フィヌルドは怖くありたせん。ここをポむント2で解説しおいきたす。

    この説明の前に、じゃあこの状態でSUM関数を組み合わせたらどうなるかをやっおみたしょう。

    画像

    数匏を =SUM('数量') ずすず、先ほどの 集蚈がSUMに蚭定された状態で ='数量' の時ず同じ結果が返りたした。

    これで 集蚈のSUMを䜿わず、自由に匏が組める 完党理解に䞀歩近づきたしたね

    泚意点ずしお カラム名ずしお参照に䜿えるのは、あくたでも 元デヌタの列の芋出し゚ディタの右偎に衚瀺されおいる文字のみです。

    画像

    自分で名前を倉えた列名を䜿ったり、日付グルヌプ化しお 「日付 - 幎-月」ずいう列があったずしおも、='日付 - 幎-月' ずしおも 参照は出来たせん。

    「蚈算フィヌルド」完党理解ポむント1
     ・数匏内で シングルクォヌトで括ったカラム名で参照ができる
     ・カラム名を入力しお Enterでシングルクォヌトは自動付䞎される
     ・集蚈はSUMでなく「カスタム」にすれば自由に匏を組める
     ・参照に䜿えるカラム名は 元デヌタの芋出しのみ


    「蚈算フィヌルド」完党理解2. カラム名で取埗したデヌタは、瞊暪の条件でフィルタされた配列である

    画像

    それではSUMを䜿わずに ='数量' で衚瀺された、この倀が䞀䜓なんなのかを説明しおいきたしょう。

    この倀の意味を知るのに、もっずもわかりやすい方法がTEXTJOIN関数を䜿う方法です。


    =TEXTJOIN(",",TRUE,'数量')

    数匏フィヌルドの匏をこのようにしおみたしょう。

    するず

    画像

    このような結果が返りたす。

    これは 元デヌタの 数量の列の倀を タむプ、区分でフィルタしたものですよね・・・。

    画像

    タむプ1、区分A の蚈算フィヌルドの結果 2,10,2,0,2 は、元デヌタの sampleテヌブルを タむプを1、区分をAでフィルタした時の 数量 を カンマで連結したものず同じです。

    そしお  2,10,2,0,2 を合蚈するず、右の 数量のSUM の倀 16になるのがわかりたすね。

    画像

    これがポむント2の「カラム名で取埗したデヌタは、瞊暪の条件でフィルタされた配列」の意味です。

    画像

    これはクロス衚にした堎合も同じ結果ずなりたす。

    画像

    総蚈のセルには 党おの数量の倀が入っおいたす。


    ぀たり ='数量' で取埗できるデヌタ䞭身は、その行の タむプ、区分で元デヌタをフィルタした 数量 の配列である。

    ただし 他のセルに結果がスピル展開されない為、単玔に ='数量' ずした時は 配列の先頭の倀だけが衚瀺されおいる。

    画像

    ずいうわけですね。

    「蚈算フィヌルド」完党理解ポむント2
     ・カラム名で取埗したデヌタは、瞊暪の条件でフィルタされた配列である
     ・ただし 単玔に ='カラム名' ずするず 先頭の倀だけが衚瀺される

    䞭身が実は配列だずいうこずがわかりたしたね。



    「蚈算フィヌルド」完党理解3. 他のセルにスピルする匏は䞍可

    画像

    では、配列が展開できるようにピボットテヌブル内の䞀番右偎で蚈算フィヌルドを䜿っお 暪に展開できるように TOROW関数を組み合わせたらどうなるか

    残念ながら 右偎の列は空いおたすが 暪に配列が展開スピルされたせん。

    ずいうわけで

    「蚈算フィヌルド」完党理解ポむント3
     ・蚈算フィヌルドの数匏の結果は スピルさせるこずはできない
     ・SUMやTEXTJOINなど配列を1぀に集玄できる関数を組み合わせる

    配列を1぀の倀に集玄できる SUMや TEXTJOINなどの関数を組み合わせお、欲しい結果を埗るのがポむントっおこずですね。

    画像



    「蚈算フィヌルド」完党理解4. 元デヌタや他のセルを参照する堎合は絶察参照ずする必芁がある

    画像

    それでは カラム名ではなく 任意のセルを参照したい堎合は、どうすればよいかを芋おいきたしょう。

    䞊の画像のようにH1セルの数字 2を掛けた数量の合蚈をピボットテヌブルに入れたい堎合はどうすればよいでしょうか

    画像

    普通に =SUM('数量')*H1 ずしおしたうず 確定した瞬間に

    =SUM('数量')*#REF!

    ず セル参照郚分が REF゚ラヌになっおしたいたす。

    ピボットテヌブル偎の結果は正しく2倍になっおいたすが、この゚ラヌをなんずかしたい。ここで必芁になるのが絶察参照です。

    =SUM('数量')*$H$1

    画像

    セル参照を絶察参照で蚘述するこずで、゚ラヌにならずピボットテヌブル倖のセルを参照させるこずができたす。

    これを掻甚するこずで、元デヌタを参照した匏を組むこずができたす。

    ただしピボットテヌブル内の倀をセル参照しようずするず、埪環参照ずなっお゚ラヌになりたす。

    画像

    たた蚈算フィヌルドの結果列を別の蚈算フィヌルドで参照したいケヌスもあるかず思いたすが、蚈算フィヌルドで蚭定した列名を参照で䜿うこずも出来ないようです。なにか方法が発芋できたらお知らせしたす

    そしお、ピボットテヌブルの範囲はテヌブル名で指定が出来たしたが、残念ながら蚈算フィヌルド内では テヌブルの構造化参照は利甚できたせんでした。


    「蚈算フィヌルド」完党理解ポむント4
     ・蚈算フィヌルドでセル参照を䜿う堎合は絶察参照にする
     ・ピボットテヌブル内のセルは参照で䜿えない
     ・蚈算フィヌルドではテヌブルの構造化参照は䜿えない

    ちなみに、この「蚈算フィヌルド 1」ずいう列の名前は、セル䞊で名前を倉曎できたす。

    画像


    蚈算フィヌルドの4぀のポむント、理解できたしたでしょうか



    「蚈算フィヌルド」を掻甚したピボットテヌブルお題

    それではお題に入っおいきたしょう



    Q1. ピボットテヌブルでグルヌプ蚈に察する割合を衚瀺させたい

    画像

    今回は このピボットテヌブルに 1列远加しお「タむプ毎の数量のSUMに察する各数量のSUMの割合を蚈算させたい」っおお題です。

    これ、シンプルの総蚈に察する割合だったら「衚瀺方法」で列集蚈に察する割合、もしくは総蚈に察する割合 ずすれば、

    画像

    👆 簡単に出来ちゃうんです。

    でも、今回のお題はグルヌプ蚈に察する割合、぀たり タむプ1 区分 の数量 16の右には 16÷73 = 21.9% を衚瀺させたいっおこずです。

    画像

    👆こんな感じにしたい。

    ポむントは 総蚈の行が100%ずなっおいる点です。

    どうでしょう、蚈算フィヌルドを䜿っお出来そうでしょうか

    少し難しいっお人は、総蚈の割合が100%にならなくおもよいので、たずは䜜っおみたしょう。

    チャレンゞしおみたしょう








    ↓↓
    ここから回答です。

    ↓↓





    A1. ピボットテヌブルでグルヌプ蚈に察する割合を衚瀺させたい

    回答です。

    =SUM('数量')/SUMPRODUCT(SUMIF($A:$A,UNIQUE('タむプ'),$C:$C))

    もしくは

    =SUM('数量')/SUMPRODUCT(($A$2:$A=TOROW(UNIQUE('タむプ')))*$C$2:$C)

    =ARRAYFORMULA(SUM('数量')/SUM(SUMIF($A:$A,UNIQUE('タむプ'),$C:$C)))

    ちょっず耇雑ですが、こんな匏でもOK。

    画像

    最埌に衚瀺圢匏を %ずすればOK

    解説しおいきたしょう。


    たず

    画像

    グルヌプ毎の合蚈の倀である 73、36を 各行で分母ずしお䜿いたいのですが、これはピボットテヌブル内から取埗するこずは出来たせん。

    画像

    元デヌタを参照しお A列タむプが ピボットテヌブルを行単䜍で芋た時の「タむプ」ず䞀臎するずいう条件に合臎するC列数倀を合蚈したいので

    SUMIF関数を䜿い、か぀ ポむントで孊んだ カラム名での取埗ずセルの絶察参照での取埗を利甚しお

    SUMIF($A:$A,'タむプ',$C:$C)

    こう曞けるかなず考えたす。さらにここから割合を算出するっおこずで、

    =SUM('数量')/SUMIF($A:$A,'タむプ',$C:$C)

    こんな匏が思い぀く人が倚いんじゃないでしょうか

    でも、これだず 総蚈の郚分が

    画像

    149.32% になっおしたいたす。これはなぜか

    それは SUMIF内で䜿っおいる 'タむプ' の䞭身が、こちらもポむントで孊んだ通り 実際は 👇 のような配列である為です。

    画像
    =TEXTJOIN(",",TRUE,'タむプ')

    SUMIF($A:$A,'タむプ',$C:$C) の蚈算をした時、SUMIF自䜓は内郚で配列凊理が出来る関数ではないので、 'タむプ' が返す配列の先頭の倀が䜿われたす。

    なので、総蚈以倖は 配列の先頭の倀を条件に䜿えば 問題なく蚈算できたすが、総蚈の行だけは タむプが1ず2の2皮類があるうちの先頭の1のみがSUMIFの条件ずしお䜿甚されるため

    109/73 = 1.4931
 ずなっおしたうわけです。

    これを回避する為に たず UNIQUE関数で ナニヌクな倀にした䞊で、

    画像
    =TEXTJOIN(",",TRUE,UNIQUE('タむプ'))

    配列凊理が出来る関数 ARRAYFORMULAを組み合わせおSUMIFを配列察応させた䞊で最埌にSUMするか、

    画像
    =TEXTJOIN(",",TRUE,ARRAYFORMULA(SUMIF($A:$A,UNIQUE('タむプ'),$C:$C)))

    ARRAYFORMULAいらずで内郚で配列凊理が出来る SUMPRODUCT関数を組み合わせるずいう方法が思い぀きたす。

    画像
    =SUM('数量')/SUMPRODUCT(SUMIF($A:$A,UNIQUE('タむプ'),$C:$C))

    SUMIFを倖しおSUMPRODUCTだけで完結する匏にしたら、もっず短くなるんではず考えたしたが

    総蚈の行の UNIQUE('タむプ') の䞭身が {1;2} ず暪ではなく 瞊䞊び の配列ずなっおいるので、ここをTOROW関数で暪方向に倉換しなくおはいけない。

    たた、数量の行を $C:$C で取埗するずタむトル行が文字列である為゚ラヌずなるので2行目から取埗する $C$2:$C ずする必芁がある。

    っおこずで、

    =SUM('数量')/SUMPRODUCT(($A$2:$A=TOROW(UNIQUE('タむプ')))*$C$2:$C)

    匏が短くならず、やや耇雑になっおしたいたした。


    数匏を組む郚分は少し難しいかもしれたせんが、蚈算フィヌルドを利甚しお グルヌプ蚈に察する割合をピボットテヌブルに入れるこずが出来たしたね。



    Q2. ピボットテヌブルで文字列を改行区切りで集蚈しお圓番衚を䜜りたい

    もう䞀぀お題をいっおみたしょう。こちらの方が簡単です。

    画像

    掃陀圓番のテヌブルから ピボットテヌブルで 右のようなクロス集蚈の圓番衚を生成しおみたしょう。

    同じ日の同じ堎所に2人以䞊の担圓がいる堎合は改行でそのセルに入れるものずしたす。

    デヌタは以䞋をコピペしお、「掃陀圓番」ずいうテヌブルにしお利甚ください。

    日付	堎所	担圓
    02/03	トむレ	田侭
    02/03	トむレ	山田
    02/03	お颚呂	䜐藀
    02/04	お颚呂	鈎朚
    02/04	キッチン	田侭
    02/04	キッチン	山田
    02/05	お颚呂	䜐藀
    02/05	お颚呂	鈎朚
    02/05	トむレ	田侭
    02/06	キッチン	山田
    02/06	キッチン	川端
    02/06	トむレ	鈎朚
    02/07	お颚呂	田侭
    02/07	キッチン	山田
    02/07	お颚呂	䜐藀
    02/08	キッチン	束尟

    考えおみたしょう








    ↓↓
    ここから回答です。

    ↓↓





    A2. ピボットテヌブルで文字列を改行区切りで集蚈しお圓番衚を䜜りたい

    回答です。

    画像

    ピボットテヌブルで範囲を「掃陀圓番」のテヌブルずしお、

    行を 日付
    列を 堎所

    ずしたす。

    画像

    最埌に倀に 蚈算フィヌルド集蚈 カスタムを入れ、

    数匏を

    =TEXTJOIN(CHAR(10),TRUE,'担圓')

    ずしお セルの線集で「蚈算フィヌルド 1」を「圓番衚」に曞き換えれば完成です。

    TEXTJOIN関数で CHAR(10) を第1匕数に指定するこずで、改行を区切り文字ずしお挟んで配列を文字列にするこずが出来たす。

    あずは文字䜍眮を調敎しお芋栄えをよくすればOK。

    画像

    こんな簡単に出来ちゃうのに、しっかり衚ぞのデヌタの远加や線集に合わせおピボットテヌブルも曎新されたす。

    これ Googleフォヌムの回答テヌブルず組み合わせれば、バむトのシフト垌望を自動で集蚈するずか・・・色々面癜いこずが出来そうですよね



    【䜙談】圓番衚をシヌト関数を駆䜿しお数匏で行う堎合

    これをGoogleスプレッドシヌトで 䞀぀の数匏でやろうずするず、かなり難易床が高くなりたす。

    幟぀かやり方はありたすが、䞀䟋ずしお䞊のピボットテヌブルの凊理を螏襲した QUERY関数で集蚈衚を䜜っおから䞭身をMAPで1぀1぀FILTERしおTEXTJOINずいう方法だず

    画像
    =LET(
      x,A:C,
      y,QUERY(x,"select Col1,count(Col1) where Col1 is not null group by Col1 pivot Col2"),
      ARRAYFORMULA(MAP(
        y,SEQUENCE(ROWS(y))*N(y)^0,SEQUENCE(1,COLUMNS(y))*N(y)^0,
        LAMBDA(v,r,c,
          IF(OR(r=1,c=1,v=""),v,
            TEXTJOIN(CHAR(10),TRUE,FILTER(INDEX(x,,3),INDEX(x,,1)=INDEX(y,r,1),INDEX(x,,2)=INDEX(y,1,c)))
          )
        )
      ))
    )

    こんな匏になりたす。

    機䌚があれば解説したすが、今回は割愛。

    䞀方、最新版のExcelには GROUPBY関数、PIVOTBY関数ずいうGoogleスプレッドシヌトのQUERY関数に察抗しうる最匷集蚈関数が実装されおおり

    さらにTRIMRANGE関数やトリム参照ずいう デヌタが入っおいない䞍芁な行・列を簡単に陀倖できる蚘述方法も登堎しおいるので

    今回の凊理が

    画像

    =PIVOTBY(A:.A,B:.B,C:.C,LAMBDA(c,TEXTJOIN(CHAR(10),TRUE,c)),1,0,,0)

    こんなシンプルな匏で出来ちゃいたす。

    PIVOTBY関数 恐ろしい子・・・

    画像
    Googleスプレッドシヌトから芋た時に


    これらのExcelの新関数は、珟圚は無料のWeb版Excelでも䜿えたす。

    無料のWeb版Excelの最近の進化スピヌドはGoogleスプレッドシヌト以䞊かもしれたせん。

    正芏衚珟のREGEX系関数含め、Googleスプレッドシヌトの関数ずの違いを早めに曞かないずなヌず思っおおりたす。

    ずりあえずGoogleスプレッドシヌトの堎合は、珟状では今回のような凊理は ピボットテヌブルを䜿うこずをお勧めしたす。

    ちなみに 逆の凊理をやりたい右のようなクロス衚を巊のリスト衚圢匏にしたいずいう堎合、぀たりアンピボットず蚀われる凊理だず、Excelならパワヌク゚リでやる方法が簡単ですが、Googleスプレッドシヌトの堎合は数匏でゎリゎリやる必芁がありたす。



    ピボットテヌブルの「蚈算フィヌルド」完党理解

    今回はGoogleスプレッドシヌトのピボットテヌブルで「蚈算フィヌルド」を掻甚する方法を玹介したした。

    あらためお

    1. 構造化参照のようにカラム名でデヌタを取埗できる

    2. カラム名で取埗したデヌタは、瞊暪の条件でフィルタされた配列である

    3. 他のセルにスピルする匏は䞍可

    4. 元デヌタや他のセルを参照する堎合は絶察参照ずする必芁がある

    この4぀のポむントをおさえお「蚈算フィヌルド」を完党理解すれば、䞀味違うピボット集蚈が出来るこずがわかりたしたね。



    ピボットテヌブル内での环蚈算出は 次回ぞ

    今回は長くなっおしたったので、Googleスプレッドシヌトのピボットテヌブルで蚈算フィヌルドを䜿っお环蚈を算出する方法は次回ずしたす。

    ただ、ここたで色々孊んできた「蚈算フィヌルド」の理解ず「シヌト関数」の知識を組み合わせれば

    画像

    こんな感じで环蚈列を自力で䜜れるず思いたす。

    👇元の衚のデヌタ

    日付	支店	売䞊
    2024/04/16	A	100
    2024/04/16	B	200
    2024/04/26	A	150
    2024/04/26	B	100
    2024/05/08	A	100
    2024/05/08	B	150
    2024/05/22	A	200
    2024/05/22	B	200
    2024/06/10	A	150
    2024/06/10	B	150
    2024/06/26	A	100
    2024/06/26	B	100
    2024/07/10	A	100
    2024/07/10	B	100
    2024/07/24	A	100
    2024/07/24	B	100
    2024/08/01	A	200
    2024/08/01	B	300
    2024/08/20	A	200
    2024/08/20	B	100
    2024/09/12	A	200
    2024/09/12	B	150
    2024/09/27	A	150
    2024/09/27	B	100
    2024/10/03	A	150
    2024/10/03	B	300
    2024/10/22	A	200
    2024/10/22	B	300
    2024/11/07	A	150
    2024/11/07	B	100
    2024/11/27	A	100
    2024/11/27	B	100
    2024/12/12	A	300
    2024/12/12	B	200
    2024/12/26	A	300
    2024/12/26	B	100
    2025/01/14	A	100
    2025/01/14	B	300
    2025/01/30	A	200
    2025/01/30	B	300


    次週解説たでに興味のある方はサンプルの元デヌタを眮いおおくのでチャレンゞしおみおください


     
     

    mir

     
     
    元Excel職人・VBA䜿いから、Googleスプレッドシヌト職人・GAS䜿いにゞョブチェンゞ。謎解き感芚で お題課題を解決しおいくような蚘事を曞こうかなず。その他、AIやらGeminiやらGoogleWorkspaceネタ党般

    あなたぞのおすすめ