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

BYROW関数などを甚いお条件に合ったデヌタ数を数える[Googleスプレッドシヌト]

    先日、このような蚘事を曞きたした。

    この件に関しおはもう䞀぀実珟したいこずがありたした。
    それは「耇数の郚眲にたたがっおいる案件数を数えたい」です。

    デヌタはこちら。前回ず同じデヌタです

    画像

    数えたいのは「耇数の郚眲にたたがっおいる案件」であり、「同䞀郚眲で課がたたがっおいる案件」は数えたせん。

    画像

    今回のお題も自分では解決できず、所属しおいるコミュニティのメンバヌに教えお頂きたした。ありがずうございたす
    たた先日こちらの蚘事で教えお頂いた「COUNTUNIQUEIFS関数」も取り入れお、今埌も応甚できるよう自分なりにたずめおみたす。


    結論を先に蚀うず、今回はこちらの関数匏で実珟できたした。

    =COUNTIF(BYROW(UNIQUE(B4:B),LAMBDA(案件名,COUNTUNIQUEIFS(C4:C,B4:B,案件名))),">=2")

    画像

    BYROW関数 苊手でしお䞀向に習埗できそうにありたせん 
    「このケヌスならBYROWを䜿おう」ず思い぀くこずが出来るようなレベルに是非到達したいです。

    今回も分解しながら理解しおいきたす。

    【1】BYROW関数の範囲

    BYROW関数ではたず「行単䜍でグルヌプ化する配列たたは範囲」を指定したす。今回は「UNIQUE(B2:B)」ずし、列Bにある案件名の䞀意の倀を指定したす。

    【1】
    =UNIQUE(B2:B)

    関数がどう䜜甚しおいるかを可芖化したす。

    画像

    【2】COUNTUNIQUEIFS関数の理解

    次に芖点を関数匏の埌半に移し、
    「COUNTUNIQUEIFS(C4:C,B4:B,案件名」の郚分を確認したす。

    ここでは第䞉匕数「案件名」を、先皋抜出した䞀意の案件名に䞀぀ず぀眮き換えるずどのような倀が返るのかを確認したす。

    【2】
    =COUNTUNIQUEIFS(C4:C,B4:B,"AAA")
    =COUNTUNIQUEIFS(C4:C,B4:B,"BBBB")
    =COUNTUNIQUEIFS(C4:C,B4:B,"CCC")
    


    画像

    この郚分では、第䞉匕数で指定した案件名を条件ずし、列Bで条件に合臎するレコヌドを絞り、その䞭で列Cの䞀意の倀の個数を返したす。
     皆さん぀いおきおいたすかヌかくいう私もあやしいです...

    確かに、列C「担圓郚眲」が2぀にたたがる案件名では「2」が返されおいるこずがわかりたす。

    【3】BYROW関数ずLAMBDA関数を甚いお぀なげる

    以䞊の2぀の関数匏を、BYROW関数ずLAMBDA関数を甚いお぀なげたす。

    【3】
    =BYROW(UNIQUE(B4:B),LAMBDA(案件名,COUNTUNIQUEIFS(C4:C,B4:B,案件名)))

    これにより、列B「案件名」の䞀意の倀を䞀぀ず぀埌半の匏に枡すこずが出来たす。

    図匏にするずこのような感じでしょうか。

    画像

    「名前」に代入するものずしお、「UNIQUE(B2:B)䞀意の案件名」を指定したす。
    その名前を「案件名」ずし、LAMBDA関数匏の䞭で甚いたす。

     難しいですよね 
    BYROW関数の簡単な䜿い方も掲茉しおおきたす。これがないず私も思い出せない

    以䞋の䟋では「範囲B2:E4の各行を1行ず぀「x」に枡し蚈算するこの堎合はSUM関数で総和を返す」ずいうこずが実珟できおいたす。

    画像

    話を本題に戻し、前出の以䞋の関数匏を可芖化しおみたす。

    【3】
    =BYROW(UNIQUE(B4:B),LAMBDA(案件名,COUNTUNIQUEIFS(C4:C,B4:B,案件名)))

    画像

    䞊から順に、「たたがっおいる郚眲の数」が返されたした。

    ※なお最埌に「0」が返っおきおいたすが、これは範囲の末尟を指定しなかったために返ったようです。
    「BYROW(UNIQUE(B4:B)」の範囲を「(B4:B18)」ず指定するず「0」は衚瀺されたせんでした。
    䜆しここではデヌタベヌスが远加される実務を想定しお末尟の範囲を指定しないこずずしたす。

    【4】COUNTIF関数

    最埌にCOUNTIF関数でくくり、「郚眲が耇数にたたがる」を刀定するために条件を「>=2」ずしカりントしたす。

    【4】
    =COUNTIF(BYROW(UNIQUE(B4:B),LAMBDA(案件名,COUNTUNIQUEIFS(C4:C,B4:B,案件名))),">=2")

    画像
     
     
    72幎東京生たれ。䞻に備忘録ずしおnoteを䜿甚。2026幎6月30日技術評論瀟より「Googleスプレッドシヌト完党攻略 最高効率の歊噚になる」刊行。