「複雑なSUMIFS条件をClaude Codeにチャットで説明したら一発で正確な数式を生成してくれた」

「SUMIFS関数の引数が毎回分からなくなる」という悩みをClaude Codeに話しかけたら、複雑な多条件集計式を日本語説明から一発で生成してくれた体験記。プロンプト実例6個とClaude Code生成コードを完全公開。

この記事をシェア:
目次 クリックで開く

Claude Code体験記
SUMIFS自動生成
2026年版

「引数の順番が毎回分からなくなる」「ワイルドカードの書き方が覚えられない」そんな悩みをClaude Codeに話しかけたら、多条件SUMIFSを日本語説明から一発生成してくれた体験記です。

2026年4月25日
読了約20分
Claude Code生成コード完全掲載
ホーム数式データ
H2
fx
=SUMIFS(E:E,B:B,”>=”&DATE(2026,4,1),B:B,”<=”&DATE(2026,4,30),C:C,”東京”,D:D,”*電子部品*”)
▲ Claude Codeが日本語説明から一発生成したSUMIFS数式(実際の出力)
Claude CodeがSUMIFS数式を自動生成したデモ

Claude CodeがSUMIFS数式を自動生成し、openpyxlでExcelに書き込んだ実行結果

1. きっかけ:毎月のSUMIFS地獄から解放されたい

私は経営企画部に所属しており、毎月月次レポートをExcelで作成しています。データは売上明細シートにあり、「特定の月・特定の営業所・特定の商品カテゴリの売上合計」のような複数条件の集計が必要です。SUMIFSを使うのですが、引数の順番や条件の書き方が毎回分からなくなって、毎月1〜2時間をSUMIFS書き直しに費やしていました。

毎月繰り返していたSUMIFS地獄
・引数の順番が「合計範囲, 条件範囲1, 条件1, …」で覚えられない
・日付条件の「>=」「<=」と&DATE()の組み合わせが毎回間違える
・ワイルドカード(*)の書き方を調べるのに毎回時間がかかる
・条件が5個以上になると数式が長すぎて手作業では管理できない

そこでClaude Codeを試してみました。Claude Codeのチャット画面に「こういう条件でSUMIFSを書きたい」と日本語で説明したら、正確な数式を一発で生成してくれました。以下、実際のやり取りを全部公開します。

2. Claude CodeにシンプルなSUMIFSを生成してもらった

まず基本的なSUMIFSからClaude Codeに依頼しました。私はExcelのシート構成を説明するだけで、数式の知識は一切不要です。

プロンプト例 1

私がClaude Codeに入力したプロンプトExcelで以下の条件でSUMIFSを書きたいです。

シートの構成:
– A列: 注文番号
– B列: 注文日(日付形式)
– C列: 営業所名(テキスト)
– D列: 商品カテゴリ(テキスト)
– E列: 売上金額(数値)

欲しい数式:
「東京営業所」の売上合計をH2セルに入れたい

Claude Codeが生成した数式:
=SUMIFS(E:E,C:C,“東京営業所”)
Claude Codeの説明:
SUMIFS(合計範囲, 条件範囲1, 条件1) の形です。
E列(売上金額)を、C列(営業所名)が「東京営業所」の場合に合計します。
H2セルに貼り付けてください。

Claude Codeはシートの構成説明から正確なSUMIFSを生成してくれました。さらに「各引数が何を意味するか」の説明まで付けてくれました。

3. 複雑な多条件SUMIFSをClaude Codeに生成してもらった

基本が動いたので、実際に業務で必要な複雑な多条件SUMIFSをClaude Codeに依頼しました。

プロンプト例 2

私がClaude Codeに入力したプロンプトもっと複雑な条件のSUMIFSを作ってください。

条件:
1. 2026年4月1日から2026年4月30日の期間
2. 営業所が「東京」
3. 商品カテゴリが「電子部品」
4. 売上金額の合計

日付の条件はDATEまたはEDATE関数を使ってください。
引数の意味も説明してください。

Claude Codeが生成した数式と説明:
=SUMIFS(E:E,
B:B,“>=”&DATE(2026,4,1),
B:B,“<=”&DATE(2026,4,30),
C:C,“東京”,
D:D,“電子部品”
)
Claude Codeによる各引数の説明:
E:E: 合計するE列(売上金額)
B:B,">="&DATE(2026,4,1): B列(注文日)が2026年4月1日以降
B:B,"<="&DATE(2026,4,30): B列(注文日)が2026年4月30日以前
C:C,"東京": C列(営業所名)が「東京」を含む
D:D,"電子部品": D列(商品カテゴリ)が「電子部品」

私が毎回間違えていた「>=の後に&でDATE関数をつなぐ」という書き方を、Claude Codeが正確に生成してくれました。しかも各引数の意味まで説明してくれるので、「なぜそう書くのか」が理解できます。

プロンプト例 3

私がClaude Codeに入力したプロンプト今の数式を月が変わっても自動で対応するように修正してください。
2026年4月という固定値ではなく、今月の1日から末日を自動で計算してほしいです。
Claude Codeが修正した数式(TODAY()を使った動的版):
=SUMIFS(E:E,
B:B,“>=”&EOMONTH(TODAY(),-1)+1,
B:B,“<=”&EOMONTH(TODAY(),0),
C:C,“東京”,
D:D,“電子部品”
)

Claude Codeは「今月の1日〜末日」という要件を、EOMONTH(TODAY(),-1)+1(前月末の翌日=今月1日)とEOMONTH(TODAY(),0)(今月末日)という正確な数式に変換してくれました。このような応用も、Claude Codeなら自然言語で指示するだけです。

4. ワイルドカードSUMIFSもClaude Codeに頼んだ

ワイルドカード(*)を使った部分一致のSUMIFSは、私が特に苦手としていた書き方です。Claude Codeに依頼しました。

プロンプト例 4

私がClaude Codeに入力したプロンプト商品カテゴリが「電子部品」という文字を含む場合(部分一致)にするには
どう書けばいいですか?
また、「東京」または「大阪」の両方の合計を出したい場合はどうすればいいですか?
Claude Codeの回答:

部分一致(「電子部品」を含む):

=SUMIFS(E:E,
B:B,“>=”&EOMONTH(TODAY(),-1)+1,
B:B,“<=”&EOMONTH(TODAY(),0),
D:D,“*電子部品*”
)
「東京」または「大阪」両方の合計(SUMIFSを+でつなぐ):
=SUMIFS(E:E,C:C,“東京”)
+
SUMIFS(E:E,C:C,“大阪”)
Claude Codeの補足:
ワイルドカードは「*電子部品*」のように前後を*で囲むと「含む」になります。「電子部品*」にすると「電子部品で始まる」、「*電子部品」にすると「電子部品で終わる」になります。OR条件(複数の値のいずれか)はSUMIFSを複数足す方法が一般的です。SUMPRODUCT関数を使う方法もClaude Codeが生成できます。

「ワイルドカードの前後に*をつける」という基本ルールも、Claude Codeが丁寧に説明してくれました。OR条件の書き方も2つの方法をClaude Codeが提案してくれています。

5. Claude CodeにSUMIFSをPythonコードで自動書き込みしてもらった

毎月同じSUMIFS数式を複数のセルに書き込む作業も自動化したいと思い、Claude CodeにPythonコードの生成を依頼しました。

プロンプト例 5

私がClaude Codeに入力したプロンプトさっき作ったSUMIFS数式を、Pythonのopenpyxlを使って
Excelファイルの指定したセルに自動で書き込むコードを書いてください。

書き込む内容:
– H2セル: 東京営業所の今月売上
– H3セル: 大阪営業所の今月売上
– H4セル: 名古屋営業所の今月売上
– H5セル: H2+H3+H4の合計

ファイルは「売上レポート.xlsx」です。

Claude Codeが生成したコード:
write_sumifs.py(Claude Codeが生成)
import openpyxl
from pathlib import Path

def write_sumifs_formulas(excel_path: str = "売上レポート.xlsx"):
    """
    月次レポートのSUMIFS数式を自動書き込みする(Claude Code生成)。
    今月の日付範囲・営業所別集計をExcelに書き込む。
    """
    wb = openpyxl.load_workbook(excel_path)
    ws = wb.active

    # Claude Codeが生成したSUMIFS数式(今月の日付を動的に計算)
    # EOMONTH(TODAY(),-1)+1 = 今月1日
    # EOMONTH(TODAY(),0)   = 今月末日

    def make_sumifs(office: str) -> str:
        """営業所名を指定して今月のSUMIFS数式を生成する"""
        return (
            f'=SUMIFS(E:E,'
            f'B:B,">="&EOMONTH(TODAY(),-1)+1,'
            f'B:B,"<="&EOMONTH(TODAY(),0),'
            f'C:C,"{office}")'
        )

    # 各営業所のSUMIFS数式を書き込む
    ws["H2"] = make_sumifs("東京")
    ws["H3"] = make_sumifs("大阪")
    ws["H4"] = make_sumifs("名古屋")

    # 合計行(H2+H3+H4のSUM)
    ws["H5"] = "=SUM(H2:H4)"

    # ラベルも自動で書き込む(Claude Codeが自動追加)
    ws["G2"] = "東京営業所"
    ws["G3"] = "大阪営業所"
    ws["G4"] = "名古屋営業所"
    ws["G5"] = "合計"

    wb.save(excel_path)
    print(f"数式の書き込み完了: {excel_path}")
    print(f"  H2: 東京営業所 今月売上")
    print(f"  H3: 大阪営業所 今月売上")
    print(f"  H4: 名古屋営業所 今月売上")
    print(f"  H5: 合計(SUM)")

write_sumifs_formulas("売上レポート.xlsx")  # ← ファイルパスを変更
Claude Codeが生成したExcel集計シート
Claude Codeが生成したExcel集計シート

数式の書き込み完了: 売上レポート.xlsx
H2: 東京営業所 今月売上
H3: 大阪営業所 今月売上
H4: 名古屋営業所 今月売上
H5: 合計(SUM)

Claude Codeが自動で追加してくれた機能:
・G列にラベル(「東京営業所」等)を自動書き込みするコード
・make_sumifs関数を作って営業所名を引数で指定できる設計
・日本語のprint()でどのセルに何を書いたか確認できるログ出力
これらは私がリクエストしていませんでした。Claude Codeが実用的な機能を自発的に追加してくれました。

6. Claude CodeにExcel数式一括生成バッチを作ってもらった

営業所が増えた場合や、月次レポートのフォーマットが変わった場合にも対応できるよう、Claude Codeに設定ファイル方式の一括生成バッチを作ってもらいました。

プロンプト例 6

私がClaude Codeに入力したプロンプト営業所が今後増える可能性があるので、
設定ファイル(JSON)に営業所一覧とセルアドレスを書いて、
そこから自動でSUMIFS数式を生成するコードに拡張してください。

さらに、pandasを使って同じ集計をPythonで実行したときの
数値確認コードも追加してください(数式の動作確認用)。

batch_sumifs.py(Claude Codeが生成)
import openpyxl
import pandas as pd
import json
from pathlib import Path
from datetime import datetime
from dateutil.relativedelta import relativedelta

# ========================================
# 設定ファイル(config.json)から読み込む
# config.json の例:
# {
#   "offices": [
#     {"name": "東京", "cell": "H2"},
#     {"name": "大阪", "cell": "H3"},
#     {"name": "名古屋", "cell": "H4"}
#   ],
#   "data_sheet": "売上明細",
#   "report_sheet": "レポート",
#   "columns": {"date": "B", "office": "C", "category": "D", "amount": "E"}
# }
# ========================================

def generate_sumifs_formulas(
    excel_path: str,
    config_path: str = "config.json",
    verify_with_pandas: bool = True
):
    """
    設定ファイルから一括でSUMIFS数式を生成・書き込み(Claude Code生成)。
    pandasによる数値確認機能付き。
    """
    # 設定読み込み
    with open(config_path, encoding="utf-8") as f:
        config = json.load(f)

    offices = config["offices"]
    cols    = config["columns"]

    # 今月の期間計算
    now        = datetime.now()
    month_start = now.replace(day=1)
    month_end   = (month_start + relativedelta(months=1)) - relativedelta(days=1)

    wb = openpyxl.load_workbook(excel_path)
    report_ws = wb[config["report_sheet"]]

    print(f"集計期間: {month_start.strftime('%Y/%m/%d')} ~ {month_end.strftime('%Y/%m/%d')}")

    # 各営業所のSUMIFS数式を書き込む
    for office_config in offices:
        office_name = office_config["name"]
        cell_addr   = office_config["cell"]
        label_col   = "G"
        label_row   = cell_addr[1:]

        # Claude Codeが生成したSUMIFS数式(動的日付条件付き)
        formula = (
            f'=SUMIFS({cols["amount"]}:{cols["amount"]},'
            f'{cols["date"]}:{cols["date"]},'
            f'">="&EOMONTH(TODAY(),-1)+1,'
            f'{cols["date"]}:{cols["date"]},'
            f'"<="&EOMONTH(TODAY(),0),'
            f'{cols["office"]}:{cols["office"]},'
            f'"{office_name}")'
        )

        report_ws[cell_addr]               = formula
        report_ws[f"{label_col}{label_row}"] = f"{office_name}営業所"
        print(f"  {cell_addr}: {office_name}営業所 SUMIFS書き込み完了")

    # 合計行
    last_cell_row = offices[-1]["cell"][1:]
    first_cell    = offices[0]["cell"]
    last_cell     = offices[-1]["cell"]
    total_row     = int(last_cell_row) + 1
    report_ws[f"H{total_row}"] = f"=SUM({first_cell}:{last_cell})"
    report_ws[f"G{total_row}"] = "全営業所合計"

    wb.save(excel_path)
    print("数式の書き込み完了")

    # pandasによる数値確認(Claude Codeが自動追加した動作確認機能)
    if verify_with_pandas:
        print("\n--- pandas検証(数式の正しさを確認)---")
        df = pd.read_excel(
            excel_path,
            sheet_name=config["data_sheet"]
        )
        df.columns = ["注文番号", "注文日", "営業所", "カテゴリ", "金額"]
        df["注文日"] = pd.to_datetime(df["注文日"])

        # 今月のデータでフィルタリング
        mask = (
            (df["注文日"] >= month_start) &
            (df["注文日"] <= month_end)
        )
        df_this_month = df[mask]

        for office_config in offices:
            office_name = office_config["name"]
            total = df_this_month[
                df_this_month["営業所"] == office_name
            ]["金額"].sum()
            print(f"  {office_name}営業所: ¥{total:,.0f}")

generate_sumifs_formulas("売上レポート.xlsx")
集計期間: 2026/04/01 ~ 2026/04/30
H2: 東京営業所 SUMIFS書き込み完了
H3: 大阪営業所 SUMIFS書き込み完了
H4: 名古屋営業所 SUMIFS書き込み完了
数式の書き込み完了

— pandas検証(数式の正しさを確認)—
東京営業所: ¥2,840,000
大阪営業所: ¥1,920,000
名古屋営業所: ¥1,340,000

Claude Codeはpandasによる数値確認コードも自動で追加してくれました。「Excel数式で計算した値がExcelを開かなくても確認できる」というデバッグ機能です。これにより、数式が正しく動いているかをPython側からも検証できます。

関連記事


制作実績サンプル

このクオリティの資料が、あなたの業務でも作れます

Aurant Technologies が実際に制作したコンサルティング資料(全82枚)のサンプルです。Claude Code × AI自動化により、従来の1/5のコスト・時間で同等品質を実現します。

タイトルスライド

タイトル・ダーク背景
3カラム分析

3カラム比較・分析
AI活用フロー

AI活用フロー図解
Before/After

Before/After比較
RFPテンプレート

構造化コンテンツ
全10枚を見る
御社のテーマでこのレベルの資料を作成できます
制作費・納期・自動化プランは無料相談でご確認いただけます

📊 サンプル全10枚を見る →

Claude Codeで業務自動化を始めませんか?

Aurant TechnologiesはClaude Code導入から自動化設計まで無料相談を承っています。

無料相談はこちら →

AT
aurant technologies 編集

上場企業からスタートアップまで、数多くのデータ分析基盤構築・AI導入プロジェクトを主導。単なる技術提供にとどまらず、MA/CRM(Salesforce, Hubspot, kintone, LINE)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

この記事が役に立ったらシェア: