メインコンテンツへスキップ
見出し画像

[ダメEXCEL]セル結合してはいけないもう一つの理由(SUMIFS/COUNTIFS/XLOOKUP関数等における列指定の際のトラップ)

    ▶MAP▶PDF版▶表示▶関数▶ショトカ▶操作/コピー▶実務▶NG▶検索


    関連記事:やってはいけない、様式や入力表の作成、XLOOKUP関数
    、SUMIF・SUMIFS関数、COUNTIF・COUNTIFS関数

    【まとめ】
    ・「セル結合」すると、コピペやフィルターがうまくできないだけでなく、関数での列指定がうまくできない(SUMIFS/COUNTIFS/XLOOKUP関数など)。
    ・センタリングしたければ、セル結合ではなく「選択範囲で中央」にする。
    ・セル結合していいのは、集計表の見映えを整えるときだけ。

    【説明】
    「セル結合」は、エクセルの「してはいけない」「御法度」の筆頭かもしれません。
    ネットにも多々記事があります。
    「セル結合」「してはいけない」で検索

    主な理由は・・・
    ・コピぺ(範囲指定)がうまくできない。
    ・フィルターがうまくできない
    などです。

    これらは確かに大きな問題です。

    しかし、セル結合により、もう一つ困った問題が生じます。

    「セル結合」により列範囲がうまくできない


    それは、SUMIFSやCOUNTIFS、XLOOKUP関数などでの列範囲がうまくできない、ということです。

    先日、以下の記事を掲載しました。
    [EXCEL] セルを行番号で範囲指定してはいけない(SUMIFS/COUNTIF/XLOOKUP関数等)

    行番号でセルを範囲指定せず、列のみで指定する方がいい、という内容ですが、思わぬトラップがあります。
    それは「セル結合」されているセルを含んで範囲指定すると、計算式がうまく機能しないというものです。

    どういうことか。
    以下をご覧ください。

    画像

    この表では、SUMIFS関数を使って、「あ」以下の項目別の数値の合計を出しています(条件は一つですが、SUMIFS関数を使ってはいけません)。
    その際、C列とB列は、列全体を範囲指定してます。
    F3セルの計算式は、以下の通りです。
    =SUMIFS(C:C,B:B,E3)

    C列が合計する数値で、B列がE3と同じものみを合計する、という計算式です。


    この表には「データ一覧」というタイトルが付いています(実際は 令和〇年度 〇〇〇の状況一覧」みたいな長いものでしょう)。

    このタイトルで「セルの結合」がなされていると(センタリングされていても、いなくても)・・・

    画像

    下図のとおり、計算式がうまく機能しません。
    結果は「0」となっていますが、これは正しくありません。

    画像

    なぜか?

    計算式を見てみると・・・

    画像

    =SUMIFS(B:C,B:C,E3)
    となっています。

    =SUMIFS(の次に、数値の合計欄としてC列を選択しようとするのですが・・・

    画像

    B:Cとなってしまい、C列だけでなく、B列も一緒に選択されてしまっています。
    これは、B列とC列がセル結合されているためです。

    ここで問題なのは、本来は1列(C列)だけ選択しようとしたのに2列(B列とC列)が選択されてしまったのにもかかわらず、計算式自体はエラーにならない、ということです。
    エクセルは計算式の記述に間違いがあると、すぐにエラー表示がでるのですが、これは出ません。
    検索する項目の列としてB列を選択しようとしてC列まで選択されてしまっても、こちらもエラーは出ません。
    結果として、計算式はちゃんとセルに収まります(通常、エラーが出ると計算式はセルに収まらない)。

    そして、結果は該当がないので「0」。
    これは間違った答えです。
    このぐらいの表なら、すぐに間違いであることに気づきますが、大きくて複雑な表の場合は、ぱっと見気づかないかもしれません。
    あるいは、数値の計が出ないのはおかしいと気づいても、その理由が分からない。
    データ側の問題かと思って調べて・・・迷宮に。なんてこともあります。


    私もこのトラップには過去何度もやられました(今はトラップだと分かっているため、すぐに気づきます)。
    自分で作る表ならセル結合は基本的にしないのですが、人からもらったデータや、WEBから落としたデータは、なぜかタイトルがセル結合されてセンタリングされているものが多く、そこでトラップに引っかかってしまうのです。


    この問題を生じさせないためには、とにかく「セル結合」をしないこと。
    「セル結合」されていないか注意すること。
    「セル結合」をしないことで他のトラップ(コピーができない等)もなくなります。
    逆に、「セル結合」をしないことで生じるデメリットはほとんどありません(とはいえ、いきなりすべてのセル結合を解除すると、表がぐちゃぐちゃになってしまう場合があるので、注意が必要です)。


    というわけで、SUMIFSやCOUNTIFS,XLOOKUP関数等で、列で範囲指定する場合は、タイトル行等がセル結合されていないか、余計な列まで含んだ指定になっていないか、に注意しましょう。

    「セル結合」による列範囲の指定で起きるトラップについて、指摘するサイトはほとんどみたことがありません。
    そもそも、SUMIFS関数などで、列指定した方がいい、という記事もほとんど見かけたことがないので、しょうがないのかもしれません。


    ちなみに、「だったら列で範囲指定しないで、行番号で範囲指定した方がいいのでは?」という考えもあるでしょう。

    でも、行で範囲指定するのは面倒です。

    「セル結合」トラップがあるとしても、それに注意しつつ、列で範囲指定した方が、楽&誤りが少なくなります。


    セル結合しないでセンタリングするには


    タイトルをセル結合する人の心理は、多分、「タイトルをセンタリング(中央寄せ)したいから」だと思います。

    でも、そもそも、一覧(データ)に付けるタイトルはセンタリングすべきではありません。
    なぜなら、大きな表で、タイトルをセンタリングすると、表の頭(A1セル)にカーソルを置いたとき、タイトルが見えないから。

    A1セルからタイトルが始まれば(かつ、ウィンドウ枠の固定が適切になされていれば)、表のタイトルがすぐに(’常に)見えます。
    (集計表ではなく、データ一覧には、そもそもタイトルはいらない、という考え方もありますが、さすがにタイトルがないと分かりづらいでしょう。ヘッダーに入れるのもよし悪しです。)


    もし、どうしても、タイトルをセンタリングしたい場合は、以下の方法があります。
    ①センタリングしたい範囲を指定
    ②「セルの書式設定」(Ctrl + 1)を開き、
    ③「配置」の「横位置」で「選択範囲で中央」を選択

    画像

    これにより、「セル結合」による「センタリング」をしなくても、見た目は同じになります。

    これにより、計算式での列選択の際も、問題なく指定したい列だけ指定できます(下図)。

    画像

    この方法は、「セル結合してはいけない」との対比であちこち(インスタのリールでも)見かけるので、ご覧になった方も多いでしょう(でも、いまだ散見。セル結合のデメリットを知らない&意識もしたことがない人が多過ぎ、ということでしょう)。


    以上、クドクドと書いてきましたが、要は
    「セル結合はしない」、
    これに尽きます。
    そして、自分以外の手によるデータを扱うときは「セル結合されているかもしれない」と思ってかかることです。
    (上でも同じことを書いていますが、大事なので再度書いてしまいました。)



    セル結合は使ってもいい場合がある



    セル結合は使ってはいけないと書いてきましたら、個人的には、よく使う例が一つあります。

    集計表の左上の部分。

    画像

    これについても、ネットで情報が溢れていますので、ご覧になった方も多いでしょう。

    詳細は略しますが、いずれ集計表のところで触れたいと思います。


    以上、参考になれば幸いです。
    もし、ご覧になって、何か発見があったなら、スキまたはフォローしていただけると嬉しいです。

    (作業 1日2H)







    数値の欄として、C列を選択するつもりが

    あなたへのおすすめ