【Excel】1つのセルに複数項目…普通の関数で集計できない問題をAIと解決した話

AI × 業務改善

「Excel 複数項目 集計できない」――もしあなたが今、こんなキーワードで検索してこの記事にたどり着いたのなら、たぶん私と同じ壁にぶつかっています。

先日、私はクラウドワークスであるお仕事の相談を見かけました。

内容をざっくり言うと、こうです。

勤務管理表のR列・S列に「内容」と「時間数」が入っているが、1つのセルの中に複数の項目が表示されていて、うまく集計できない。マクロは使わず、計算式だけで直してほしい。

読んだ瞬間、「あ、これ分かる」と思いました。

経理で日々スプレッドシートと格闘している私にとって、”1つのセルに複数の情報が詰まっていて集計できない”のは、あるあるの困りごとだからです。

でも――。

じゃあどう直すのか、と聞かれると、私には答えが浮かびませんでした。

そこで私は、いつものようにAI(Claude)に相談しました。

この記事では、そのやり取りで見つけた解決策と、途中で私が踏んでしまった”落とし穴”を、同じように困っている方のために全部書きます。

技術的な内容ですが、関数はSUMくらいしか使わないという方でも読めるように、専門用語はできるだけ噛み砕いて進めます。


そもそも何が問題だったのか

まず、何が起きていたのかを整理します。

この勤務管理表では、R列に「休日出勤」「有給休暇」といった勤怠の内容が、S列にその日数や時間数が入る仕組みでした。

普通なら、1行に1つの内容が入ります。

ところが――。

1日に複数の事情が重なると(たとえば「休日出勤して、さらに別の申請もした」など)、1つのセルの中に、改行で複数の項目が詰め込まれることがあったんです。

具体的には、こんな感じです。

R列のセル:休日出勤(改行)その他 S列のセル:1(改行)1.0

見た目は1つのセルですが、中身は2つ分の情報が入っている。

しかも、R列の1番目「休日出勤」とS列の1番目「1」、R列の2番目「その他」とS列の2番目「1.0」が、それぞれ対になっている――。

この「1セルに複数、しかも上下で対応している」という構造が、すべての元凶でした。


なぜ普通の関数(SUMIF)だと集計できないのか

こういう「条件に合うものだけ合計する」場面で、まず思いつくのが SUMIFSUMIFS です。

SUMIF……指定した条件に合う行だけを合計してくれる関数

たとえば「休日出勤の日数を合計したい」なら、こう書きます。

=SUMIF(R列, "休日出勤", S列)

「R列が”休日出勤”の行だけ、S列を合計してね」という意味です。

一見、これで解決しそうに見えます。

でも、ここに落とし穴があります。

SUMIF は、セルの中身が”休日出勤”と”完全に一致”しているかで判定します。

つまり、休日出勤 だけのセルは拾ってくれますが、休日出勤/その他 のように複数入っているセルは――。

「”休日出勤”とは違う文字列だ」と判断して、まるごと無視してしまうんです。

その結果、複数入りのセルだけがごっそり集計から抜け落ちる。

これが「集計されない」の正体でした。

今回のケースでは、有給休暇・時間有給・半日有休・欠勤・特別休暇・休日出勤・遅刻・早退という8つの項目を集計する必要があったのですが、複数入りのセルが混ざることで、あちこちで数字が合わなくなっていたわけです。


解決の核は「n番目を取り出す」こと

では、どうするか。

考え方はシンプルです。

改行で区切られた1番目・2番目・3番目…を、1つずつバラバラに取り出せれば、あとはいつも通り集計できる。

実は新しいバージョンのExcelには、TEXTSPLIT という「区切り文字でセルを分割する」便利な関数があります。

これを使えば一発です。

……が、今回はそれが使えませんでした。

理由は、クライアントから「古い環境でも動くようにしてほしい」という要望があったからです。

TEXTSPLIT のような新しい関数は、古いExcelやGoogleスプレッドシートでは動きません。

そこで私は、AIに「古いExcelでも動く方法で」とお願いしました。

返ってきたのが、SUBSTITUTEREPTMID という、昔からある関数を組み合わせた”n番目を取り出す”テクニックでした。

雰囲気だけ、こんな式です。

=TRIM(MID(SUBSTITUTE(セル, 改行, スペースの塊), 取り出す位置, 長さ))

やっていることは、「改行を大量のスペースに置き換えて、そこから狙った位置の文字だけ切り出す」という、なかなかトリッキーな処理です。

正直、私はこの発想を自分では思いつけませんでした。

古いExcelのやり方を知らなかったので、最初は「本当にこんなので動くの?」と半信半疑。

でも実際に動くのを見て、「なるほど……こういうやり方もあるのか」と素直に感心しました。


2つの作り方を用意した

AIに相談する中で、解決策は2つの方向性にまとまりました。

① 作業列方式

表の右側(印刷されない範囲)に、R列・S列を「1番目・2番目…」に分解する作業用の列を追加し、そこから普通の SUMIF で集計する方法です。

処理の流れが目で追えるので、後から直しやすいのが利点。

作業列は非表示にできるので、見た目は元の表のまま保てます。

② 単一式方式

作業列を一切増やさず、集計するセルに直接、長い式を書き込む方法です。

追加の列がゼロなので、見た目が一番すっきりします。

ただし式がかなり長くなるため、後からの手直しはやや大変です。

なぜ2つ用意したのか。

それは、どちらが正解かは相手の好み次第だからです。

「ロジックが見える方が安心」という人もいれば、「余計な列は増やしたくない」という人もいる。

だから両方を提示して、選んでもらう形にしました。

――そして実は、この「2つ作った」ことが、後で私自身を救うことになります。

実際に作った2つのファイルは、こちらからダウンロードできます。中の数式を直接見られるので、「n番目を取り出す」処理がどう書かれているか、気になる方はのぞいてみてください。


【本題】AIが書いた式が、一部だけ間違っていた

ここからが、この記事で一番伝えたい話です。

最初に完成した単一式方式のファイル。

動いているように見えました。

数字もちゃんと出ている。

私は「よし、できた」と思っていました。

ところが――。

念のため、作業列方式と単一式方式、両方の数字を並べて見比べたとき、異変に気づきます。

数字が、合わない。

有給日数・欠勤日数・特休日数・休日日数の合計が、2つの方式で食い違っていたんです。

しかも、気味が悪かったのはここです。

遅刻・早退の”回数”だけは、両方ともピタリと同じ数字。

一部だけ合っていて、一部だけ間違っている。

全部間違っているなら「式が壊れてるな」と一発で分かります。

でも、一部だけ合っていると、逆に「どっちが正しいんだ?」と混乱するんです。

動いているように見えて、一部だけ間違っている――。 これが、AIを使ううえで一番怖いところだと、私は改めて思い知りました。


なぜ”一部だけ”間違ったのか

原因を切り分けていくと、はっきりした違いがありました。

正しかった「遅刻・早退の回数」は、ただ数を数えているだけ

間違っていた「日数の合計」は、取り出した値を足し算している

違いは、”値を数字として計算する処理”をしているかどうか、でした。

最初の式は、その数値化のために IFERRORVALUE という関数を使っていました。

※ ざっくり言うと「文字を数字に変換し、失敗したら0にする」処理です

ところが、この書き方が、SUMPRODUCT という集計処理の中に入ると――。

古いExcelでは、全部のデータではなく”先頭の1つ”だけを見て止まってしまうことがあるんです。

だから、数える処理(回数)は無事で、合計する処理(日数)だけが狂っていた。

この理屈にたどり着いたのも、AIとのやり取りの中ででした。

そして直し方は、意外とシンプル。

問題の IFERRORVALUE を使うのをやめて、取り出した文字の頭に”0″を足すだけの書き方に変えたところ――。

2つの方式の数字が、ピタリと一致しました。


この失敗が教えてくれたこと

今回の一件で、私が改めて痛感したことが2つあります。

1つ目:AIは、頼まない限り”検算”してくれない

もし私が「この式、合ってる?」と確認しなければ、間違った式のまま納品していたかもしれません。

AIは、こちらが「チェックして」と明示しない限り、自分の出した答えを自分で検算はしてくれない。

これは、AIを使う以上ずっと付き合っていく前提だと思います。

2つ目:間違いに気づけたのは、”2通りの方法で作った”から

今回、私が異変に気づけた理由はただ一つ。

作業列方式と単一式方式、2つの答えを突き合わせたからです。

もし1つしか作っていなかったら、間違いに気づかないまま出していたでしょう。

検算は、「もう一つの作り方」で答え合わせをするのが、一番確実。

これは、電卓で計算を2回やるのと同じ発想ですよね。

経理の世界では当たり前の”ダブルチェック”を、AIの成果物にもやるだけ。

実はこれ、以前私が書いた記事で伝えたことと、まったく同じ教訓でした。

5児の父・経理マンの私が、AIで絶対にやらないこと3選

この記事で私は「AIの回答を鵜呑みにしない」「重要な数字は必ず検算する」と書きました。

今回は、まさにその言葉に自分が救われた形です。


まとめ:検算さえすれば、AIは非エンジニアの武器になる

最後に、正直に書きます。

今回のこのお仕事、受注には至りませんでした

せっかく解決策まで用意したのに、と、少し悔しい気持ちもあります。

でも――。

このお仕事を通じて得た「解決策」と「失敗からの気づき」は、確実に私の中に残りました。

そして、実際に作ったファイルは、ポートフォリオとして公開しています。

案件は落としても、経験と成果物は残る。

副業を続けるうえで、これはこれで悪くない結果だと、今は思っています。

この記事を読んでくださっているあなたが、もし「自分には技術力が足りない」と感じているなら、伝えたいことがあります。

足りない技術は、AIで補えます。

現に、古いExcelの発想も知らなかった私が、AIと組むことで実務レベルの集計表を作れました。

ただし――。

最後の”検算”だけは、人間の仕事です。

その一手間さえ惜しまなければ、AIはあなたの成果物を、信頼できるものに引き上げてくれる。

非エンジニアにとって、これほど心強い武器はないと、私は思っています。

「AIに任せて、人間が確かめる」。

このスタンスで、これからも一緒に、賢くAIを使っていきましょう。


▶ あわせて読みたい

タイトルとURLをコピーしました