提供される元データだったり、外部サービス連携(外接ツール)の仕様だったりで、レポーティングする際に足りない項目がよく出てきますよね?
どのレポートでどの関数を使ったかなど、記憶喪失になるので作業用の忘備録。なにかの参考になればと。
※関数は1行目がヘッダー行の想定です
【XLOOKUP関数】ECの商品マスタから商品名・原価を抽出・突合する
外部サービスのCSVやTSVをダウンロードした際に商品番号はダウンロードできたけど、商品名はダウンロードできないのね。なんてサービスが意外とあったりするので
関数
=XLOOKUP(C2,A:A,B:B)解説:Geminiより
Excelの「Excelの救世主」とも呼ばれる便利な関数 XLOOKUP(エックスルックアップ) ですね!
一言でいうと、「C2セルの値と一致するものをA列から探して、同じ行のB列にある値を引っ張ってくる」 という計算式です。
従来の VLOOKUP 関数の進化版で、より直感的に使えるようになっています。構造を細かく分解して解説しますね。
●関数の仕組み(分解)
=XLOOKUP(C2, A:A, B:B)
① ② ③① C2 (検索値)
「何を探すか」 を指定しています。ここではC2セルに入っているデータです。
② A:A (検索範囲)
「どこを探すか」 を指定しています。A列全体の中から、C2と同じデータを探しにいきます。
③ B:B (戻り値範囲)
「何を出力するか」 を指定しています。A列で見つかったデータと同じ行にある、B列のデータを結果として返します。
VLOOKUPよりここがすごい!
左側の列も探せる: VLOOKUPは「検索した列より右側」のデータしか取れませんでしたが、XLOOKUPはA列を探して左側(仮に列があれば)のデータを持ってくることも可能です。
列の挿入に強い: VLOOKUPのように「左から何番目の列」という数え方をしないため、間に列を挿入しても数式が壊れません。
エラー回避も簡単: 今回の数式には入っていませんが、4つ目の要素に =”なし” などと入れるだけで、見つからなかった場合のエラー(#N/A)を簡単に防ぐ機能も付いています。
【COUNTIF関数】アフィリエイト成果データと自社ECのキャンセルデータを突合する
成果報酬のサービスを利用しているときにサービス利用者の返品/キャンセルと突合する時が月1.2回発生したりしますよね?
関数
=IF(COUNTIF(B:B, A2),A2, "")解説:Geminiより
Excelのこの数式は、「A列のデータが、B列の中にも存在するかどうか(重複しているか)」をチェックするためのものです。もし存在していればそのデータをそのまま表示し、存在していなければ空白にします。
分かりやすく分解して説明しますね。数式の構造と意味この数式は IF 関数の中に COUNTIF 関数が入った構造になっています。$$\text{=IF(条件, 条件が正しい時の処理, 条件が間違っている時の処理)}$$
●関数の仕組み(分解)
=IF( COUNTIF(B:B, A2), A2, "" )
└─── ①条件 ───┘ ② ③
① 条件:COUNTIF(B:B, A2)① 条件:COUNTIF(B:B, A2)
B列全体(B:B)の中に、セル A2 と同じ値が何個あるかを数えています。
ここがポイント
Excelの IF 関数では、条件の部分が「1以上の数値」になると「正しい(TRUE)」と判定され、「0」だと「間違っている(FALSE)」と判定される性質があります。
つまり、「B列に1個以上あればTRUE、0個ならFALSE」という意味になります。
② 条件が正しい時(TRUE)の処理:A2
B列に同じ値が見つかった場合、セル A2 の値をそのままセルに表示します。
③ 条件が間違っている時(FALSE)の処理:””
B列に同じ値がなかった場合、””(ダブルクォーテーション2つ)によって空白(何も表示しない)にします
【LEN + CHAR + SUBSTITUTE関数】セル内の改行数をカウント
配信や配布など、回数をメモ書きのテキストで残してるようなデータを渡されたりしますよね。回数の記録がないと平均や合計も計算できない。
関数
=IF(A2="", 0, LEN(A2)-LEN(SUBSTITUTE(A2,CHAR(10),""))+1)解説:Geminiより
このExcel(またはGoogleスプレッドシート)の数式は、「A2セルに入力されている『行数(改行の数 + 1)』をカウントする。ただし、空欄の場合は 0 にする」という処理を行っています。
文章やリストが何行で書かれているかを数えたいときに、非常によく使われる定番のテクニックです。
全体の仕組みを3つのステップに分解して解説しますね。
●関数の仕組み(分解)
(IF関数)Excel=IF(A2="", 0, [文字数を数える処理])① 全体の構造
(IF関数)Excel=IF(A2=””, 0, [文字数を数える処理])
A2=”” :もしA2セルが空っぽ(空欄)なら、0 :「0」を返します。[文字数を数える処理] :空欄でなければ、後半の計算(行数を数える処理)を行います。なぜこれが必要?後半の計算だけだと、セルが空欄のときでも結果が「1」になってしまうため、それを防ぐための防波堤です。
② 行数を数える仕掛けメインとなるのはこの部分です。
ExcelLEN(A2) – LEN(SUBSTITUTE(A2, CHAR(10), “”)) + 1
Excelには「改行の数を直接数える関数」がないため、「元の文字数」から「改行を消した文字数」を引くことで、改行がいくつあったかを割り出しています。
LEN(A2)A2セルに入っている全体の文字数(改行も1文字としてカウントされます)を数えます。
SUBSTITUTE(A2, CHAR(10), “”)CHAR(10) は、パソコン内部で「セル内の改行(ラインフィード)」を表すコードです。SUBSTITUTE 関数を使って、セル内の改行(CHAR(10))をすべて消去(”” に置き換え)しています。
LEN(SUBSTITUTE(…))改行をすべて消した状態の文字数を数えます。
③ なぜ最後に +1 するのか?
文字数の引き算でわかるのは、あくまで「改行(折り返し)の数」です。
文章の行数は、常に「改行の数より1つ多い」ため、最後に +1 をしています。
例:「りんご[改行]みかん[改行]ばなな」の場合元の文字数:8文字(改行2つを含む)改行を消した文字数:6文字引き算(改行の数):$8 – 6 = 2$最後に +1:$2 + 1 = 3$(無事に「3行」と計算できました!)
一言でいうと
「セル内の改行マークの数を数えて、それに1を足すことで、そのセルが何行にわたって書かれているかを調べている数式」です。
【MAX・MIN関数】LINE配信やツールの従量課金コストを自動計算する
重量課金のサービスの場合、週単位や今日でいくら?など、速報値を求められることが多いですよね。そんな時の関数として使っています。
関数
=MAX((MIN(B2,G2)-A2+1)*C2,0)解説:Geminiより
このExcel(またはスプレッドシート)の数式は、主に「ある特定の期間(重なっている日数)を計算し、それに単価などを掛け算して金額(またはポイントなど)を算出する。ただし、結果がマイナスになる場合は0にする」というときに使われる定番の計算式です。
ビジネスシーンでは、宿泊費の計算、日割り家賃、プロジェクトの稼働日数、保険の有効期間の計算などでよく登場します。
数式の構造を細かく分解して、わかりやすく解説しますね。
●関数の仕組み(分解)
① 全体の構造この数式は、大きく分けると次の2つのパートで構成されています
($$\text{=MAX(【計算した結果】, 0)}$$MAX(値1, 値2) 関数は、指定された値の中で「一番大きいもの」を返します。
後半に , 0 があるため、前半の【計算した結果】がもしマイナス(例:-500)になってしまっても、MAX関数のおかげで必ず 0 が結果になります。
目的: 期間が成立しない(エラーや過去の日付などでマイナスになる)場合に、おかしな数値を表示させず「0」にするための安全弁です。
② 内側の計算パーツの解説一番重要な、(MIN(B2,G2)-A2+1)*C2 の部分をさらに分解します
A: MIN(B2, G2)MIN 関数は、指定された値の中で「一番小さい(早い)もの」を選びます。
ここでは、日付が入った B2 と G2 を比較して、「どちらか早い方の判定終了日」を決定しています。
例:契約終了日が「B2(12/31)」で、実際の退去日が「G2(12/25)」なら、早い方の「12/25」が採用されます。
B: (MIN(B2, G2) – A2 + 1)上で決まった終了日から、開始日(A2)を引いています。
Excelでは日付を引き算すると「日数」が出ます。最後の +1 は、当日(初日)を含めるための調整です。
例:5月1日から5月3日までだと、引き算だけなら $3 – 1 = 2$ ですが、1日・2日・3日の「3日間」ですよね。そのため +1 をしています。ここまでの計算で、「有効な対象日数」が割り出されます。
C:* C2算出した日数に、C2(単価、日当、1日あたりの費用など)を掛け算しています。
③ 具体例で見る実際の動き具体的な数値を当てはめてみましょう
A2(開始日): 5月1日B2(予定終了日): 5月10日G2(実際の終了日): 5月5日C2(日単価): 1,000円計算の流れ:MIN(B2, G2) ➔ 5/10 と 5/5 を比べて、早い方の 5/5 を採用。
5/5 – 5/1 + 1 ➔ $4 + 1 =$ 5日間5日間 * C2(1,000円) ➔ 5,000円MAX(5000, 0) ➔ 大きい方の 5,000 が最終結果。💡
もし、開始日(A2)が5月15日(期間外)だった場合は?MIN(B2, G2) で5月5日が選ばれ、5/5 – 5/15 + 1 = -9日間 になります。単価を掛けると -9,000円 になりますが、最後に MAX(-9000, 0) が判定してくれるため、画面にはキレイに 0 と表示されます。
一言でいうと
期間の終わり(B2かG2の早い方)から始まり(A2)までの日数を計算して、単価(C2)を掛ける。ただし期間が逆転してマイナスになったら0にする」という、非常にスマートに組まれた数式です!
関連キーワード:Geminiより
- EC運用 マーケティング レポーティング
- ECサイト 運営 エクセル 関数
- EC 運用 レポート エクセル
- EC 売上管理 エクセル 関数
- マーケティング レポート エクセル 関数
- データ突合 エクセル 関数 広告
- Next Engine(ネクストエンジン) Makeshop Shopify TEMPOSTAR
- A8.net ValueCommerce LINKSHARE アクセストレード
感想・まとめ

- よく使う関数はどこかにまとめておくことをおすすめします
- 忘備録なのでどんどん増えるかもしれません
- Excelの関数はAIエージェントに聞けば大抵は解決するので参考程度に
- 作業用の忘備録なので統一性がなくてすみません
カテゴリー内の他の記事





コメント