• 【完全版】AGGREGATE関数 とは?エラー無視・フィルター後集計・上位取得までできる“壊れない集計”の最強関数を実務目線で徹底解説

    サラリーマン戦士が語る、SUMやAVERAGEでは絶対に到達できない安定集計テクニック

    サラリーマンとして日々Excelと向き合っていると、 「エラーが混ざっていてSUMが壊れる…」 「フィルター後のデータだけ合計したい」 「上位3件だけ合計したい」 「SUBTOTALではできない集計をしたい」 といった場面が必ず出てきます。

    そんな“壊れない集計”を実現してくれるのが AGGREGATE(アグリゲート)関数 です。

    AGGREGATEは、 エラー無視・非表示行無視・上位/下位取得など、19種類の集計を1つの関数で実行できる最強の集計関数 です。 SUM・AVERAGE・MAX・MIN の完全上位互換とも言える存在で、 実務で安定した集計を作るなら必須の関数です。

    この記事では、AGGREGATE関数の基本から応用まで、 サラリーマン戦士としての実務経験を交えながら 徹底解説します。

    🔍 AGGREGATE関数 の書式

    コード

    =AGGREGATE(関数番号, オプション, 配列, [k])
    

    ✔ 引数の意味

    • 関数番号:どの集計をするか(1〜19)
    • オプション:エラー無視・非表示無視など
    • 配列:集計対象
    • k(任意):上位・下位の順位など

    📘 よく使う「関数番号」一覧(実務で使うものだけ)

    関数番号内容
    1AVERAGE(平均)
    2COUNT(件数)
    3COUNTA(空白以外の件数)
    4MAX
    5MIN
    9SUM(合計)
    14LARGE(上位)
    15SMALL(下位)

    📘 よく使う「オプション」一覧(重要)

    オプション意味
    0何も無視しない
    1非表示の行を無視
    2エラー値を無視
    3非表示+エラーを無視
    5SUBTOTALとAGGREGATEを無視
    6非表示+SUBTOTAL+AGGREGATEを無視

    🎯 基本例:エラーを無視して平均(実務で最も使う)

    コード

    =AGGREGATE(1, 6, A2:A100)
    
    • 1 → AVERAGE
    • 6 → 非表示+エラー無視
    • A2:A100 → 対象範囲

    エラーがあっても壊れない平均が作れます。

    🎯 エラーを無視して合計(SUMの上位互換)

    コード

    =AGGREGATE(9, 6, A2:A100)
    

    → SUMでは壊れる場面でも、AGGREGATEなら安心です。

    🔥 フィルター後のデータだけ合計(SUBTOTALの上位互換)

    コード

    =AGGREGATE(9, 1, B2:B100)
    
    • 1 → 非表示行を無視

    フィルターで絞った結果だけ合計できます。

    SUBTOTALより柔軟で、エラーにも強いのが魅力です。

    🔥 上位3件の合計(ランキング集計)

    コード

    =SUM(AGGREGATE(14, 6, A2:A100, {1,2,3}))
    
    • 14 → LARGE(上位)
    • {1,2,3} → 上位1〜3位

    上位3件の合計が一瞬で作れます。

    🧩 SMALL(下位)も同じように使える

    コード

    =AGGREGATE(15, 6, A2:A100, 1)
    

    → 最小値(エラー無視)を取得できます。

    📅 フィルター後の平均(SUBTOTALではできない)

    コード

    =AGGREGATE(1, 1, C2:C100)
    

    → フィルターで絞ったデータだけ平均できます。

    🧠 AGGREGATEが強い理由

    ✔ エラーがあっても壊れない

    #DIV/0! や #VALUE! が混ざっていても集計できます。

    ✔ フィルター後の集計ができる

    SUBTOTALと同じく、非表示行を無視できます。

    ✔ 上位・下位の値を取得できる

    LARGE・SMALL を内蔵しているため、ランキング集計が簡単です。

    ✔ SUM・AVERAGE・MAX・MINを1つの関数で実行

    関数番号を変えるだけで集計方法を切り替えられます。

    ✔ SUBTOTALの完全上位互換

    SUBTOTALではできない「エラー無視」が可能です。

    🛠 よくあるミスと注意点

    ❗ 1. 関数番号を間違える

    SUMは「9」、AVERAGEは「1」です。

    ❗ 2. オプションを忘れる

    エラー無視は「6」です。

    ❗ 3. k を指定しないと LARGE/SMALL が動かない

    上位・下位を使うときは必須です。

    ❗ 4. FILTERと併用するときは配列の形に注意

    FILTER後の配列に対して使う場合、行列の形が変わることがあります。

    📊 AGGREGATE と SUBTOTAL の違い

    項目AGGREGATESUBTOTAL
    エラー無視×
    上位・下位の取得×
    フィルター後の集計
    集計種類19種類11種類
    実務向き最強中級

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がAGGREGATE関数を使い始めたとき、 「SUMやAVERAGEで壊れていた集計が全部解決した…」 と本気で感動しました。

    特にメリットは次のとおりです。

    ✔ エラーが混ざっていても壊れない

    実務ではエラー値が混ざることが多く、AGGREGATEの強さを実感します。

    ✔ フィルター後の集計が正確

    SUBTOTALより柔軟で、平均・最大値なども簡単に扱えます。

    ✔ 上位・下位の取得が神

    ランキング集計が1式で完結します。

    ✔ 集計方法を関数番号で切り替えられる

    SUM・AVERAGE・MAX・MIN を1つの関数で扱えるのは革命的です。

    サラリーマン戦士として、 「壊れない集計を作るならAGGREGATE一択」 と断言できます。

    📝 まとめ:AGGREGATEは“壊れない集計”の最強関数

    • エラーを無視して集計できます
    • フィルター後のデータだけ集計できます
    • 上位・下位の値も取得できます
    • SUM・AVERAGE・MAX・MINの上位互換です
    • SUBTOTALより圧倒的に強力です

    Excelで安定した集計を作るなら、 AGGREGATE関数は必ず覚えておきたい関数です。

  • 【完全版】WRAPROWS / WRAPCOLS とは?縦横データを自由自在に整形できる“最新のレイアウト革命関数”を実務目線で徹底解説

    サラリーマン戦士が語る、ダッシュボード・印刷レイアウトを劇的に見やすくする神テク

    サラリーマンとして日々Excelと向き合っていると、 「縦に並んだデータを横に整形したい」 「横に10件あるデータを縦に並べ替えたい」 「3列ごとに並べてカード型レイアウトを作りたい」 「FILTERで抽出した結果を見やすく整形したい」 といった場面が必ず出てきます。

    これまでは

    • TRANSPOSE
    • INDEX + SEQUENCE
    • OFFSET などを組み合わせて複雑な式を書く必要がありました。

    しかし、Excel 365 以降で登場した WRAPROWS(縦→横) WRAPCOLS(横→縦) が、この悩みをすべて解決してくれます。

    これらは “データのレイアウト整形”に特化した最新関数 で、 ダッシュボード、印刷レイアウト、商品一覧、カード型UIなど、 見た目を整える作業が劇的に楽になる関数です。

    この記事では、WRAPROWS / WRAPCOLS の基本から応用まで、 サラリーマン戦士としての実務経験を交えながら 3000字級で丁寧に解説します。

    🔍 WRAPROWS関数(縦 → 横に整形)

    コード

    =WRAPROWS(配列, 列数, [埋める値])
    

    ✔ 引数の意味

    • 配列:元データ
    • 列数:横に並べたい列数
    • 埋める値(任意):余ったセルに入れる値

    🔍 WRAPCOLS関数(横 → 縦に整形)

    コード

    =WRAPCOLS(配列, 行数, [埋める値])
    

    📘 基本例:縦10件 → 横5列×2行に整形(WRAPROWS)

    元データ(A1:A10) 1 2 3 … 10

    ▶ 使用する式

    コード

    =WRAPROWS(A1:A10, 5)
    

    ▶ 結果

    コード

    1   2   3   4   5
    6   7   8   9   10
    

    縦データを横に整形したいときに最もよく使うパターンです。

    📘 基本例:横10件 → 縦5行×2列に整形(WRAPCOLS)

    コード

    =WRAPCOLS(A1:J1, 5)
    

    横長データを縦に整形したいときに便利です。

    🎯 余ったセルに特定の値を入れる(埋める値)

    コード

    =WRAPROWS(A1:A9, 4, "—")
    

    → 9件を4列で整形すると余りが出ますが、 その部分に「—」を自動で入れることができます。

    🔥 商品一覧を“カード型レイアウト”に整形(SNS映え)

    コード

    =WRAPROWS(A2:A100, 3)
    

    3列ごとに整形され、 商品一覧や社員一覧をカード型に並べたいときに最適です。

    🔥 FILTER + WRAPROWS で“カテゴリ別に整形”

    例:営業部の社員名を3列で整形する場合

    コード

    =WRAPROWS(FILTER(A2:A100, B2:B100="営業"), 3)
    

    → 抽出と整形を1式で実現できます。

    FILTERについては FILTER関数 をご覧ください。

    🧩 SORT + WRAPROWS で“ランキング表を横並びに”

    コード

    =WRAPROWS(SORT(A2:A100, 1, -1), 5)
    

    上位5件ずつ横に並べて表示でき、 ランキング表の作成に最適です。

    📅 月次データを“3ヶ月ごと”に整形(四半期表示)

    コード

    =WRAPROWS(A2:A13, 3)
    

    1〜12月のデータを3列ごとに整形し、 四半期表示を一瞬で作成できます。

    🔄 WRAPROWS / WRAPCOLS × TAKE / DROP の組み合わせ

    例:最新12件だけ取り出して3列に整形

    コード

    =WRAPROWS(TAKE(A2:A100, -12), 3)
    

    TAKE / DROP については TAKE関数 DROP関数 の記事も参考になります。

    🛠 よくあるミスと注意点

    ❗ 1. 列数・行数は“固定値”で指定する

    可変にしたい場合は SEQUENCE と組み合わせます。

    ❗ 2. 配列の長さが割り切れないと余りが出る

    埋める値を指定すると見た目が整います。

    ❗ 3. FILTER後のデータ量に注意

    抽出結果の行数が変動するため、整形結果も変わります。

    📊 WRAPROWS / WRAPCOLS の違い

    目的関数
    縦 → 横に整形WRAPROWS
    横 → 縦に整形WRAPCOLS
    行・列の切り出しTAKE / DROP
    行・列の選択CHOOSECOLS / CHOOSEROWS

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がWRAPROWS / WRAPCOLSを使い始めたとき、 「Excelでここまでレイアウト整形ができるのか…」 と本気で驚きました。

    特に感じたメリットは次のとおりです。

    ✔ 縦横変換が“固定列数・固定行数”でできる

    従来のTRANSPOSEより圧倒的に柔軟です。

    ✔ ダッシュボードの見た目が劇的に良くなる

    カード型レイアウトやカテゴリ別整形が一瞬で作れます。

    ✔ FILTER・SORTとの相性が最強

    抽出 → 整形 → 並べ替え が1式で完結します。

    ✔ 印刷レイアウトの調整が簡単

    縦長データを横に並べるだけで見やすさが段違いです。

    サラリーマン戦士として、 「レイアウト整形はWRAPROWS / WRAPCOLSが最強」 と自信を持って言えます。

    📝 まとめ:レイアウト整形の最強ツール

    • 縦データを横に、横データを縦に整形できます
    • 列数・行数を指定して自由にレイアウトできます
    • FILTER・SORTと組み合わせると最強です
    • ダッシュボード・印刷レイアウトに最適です
    • 最新Excelで使える“データ整形の革命”です

    Excelで見やすい資料を作るなら、 WRAPROWS / WRAPCOLS は必ず覚えておきたい関数です。

  • 【完全版】TAKE / DROP とは?表の先頭・末尾を自由自在に切り出す“最新のデータ整形関数”を実務目線で徹底解説

    サラリーマン戦士が語る、FILTER・SORTと組み合わせて最強化する表操作テクニック

    サラリーマンとして日々Excelと戦っていると、 「上から5行だけ欲しい」 「右端2列だけ抜き出したい」 「最新データ(最後の1行)だけ取りたい」 「見出し行を除外して本体だけ使いたい」 という場面が必ずあります。

    これまでは

    • INDEX
    • OFFSET
    • ROWS / COLUMNS などを組み合わせて複雑な式を書く必要がありました。

    しかし、Excel 365 以降で登場した TAKE(テイク)DROP(ドロップ) が この悩みをすべて解決してくれます。

    TAKE / DROP は、 表の先頭・末尾の行や列を簡単に切り出せる最新関数。 FILTER・SORT・CHOOSECOLS と組み合わせると、 PowerQueryなしで高度なデータ整形が可能になります。

    この記事では、TAKE / DROP の基本から応用、 そしてサラリーマン戦士として実務で使ってきた感想まで、 徹底解説します。

    🔍 TAKE関数(先頭 or 末尾を“取得”)

    コード

    =TAKE(配列, 行数, [列数])
    

    ✔ 行数の意味

    • 正の数 → 上から取得
    • 負の数 → 下から取得

    ✔ 列数(任意)

    • 正の数 → 左から取得
    • 負の数 → 右から取得

    🔍 DROP関数(先頭 or 末尾を“除外”)

    コード

    =DROP(配列, 行数, [列数])
    

    ✔ 行数の意味

    • 正の数 → 上から除外
    • 負の数 → 下から除外

    ✔ 列数(任意)

    • 正の数 → 左から除外
    • 負の数 → 右から除外

    📘 基本例:上から5行だけ取り出す(TAKE)

    コード

    =TAKE(A2:D100, 5)
    

    📘 基本例:右端2列だけ取り出す(TAKE)

    コード

    =TAKE(A2:D100, , -2)
    

    → 行数を省略し、列数に「-2」を指定。

    📘 基本例:先頭行を除外する(DROP)

    コード

    =DROP(A2:D100, 1)
    

    → 見出し行を除外して本体だけ取得。

    🎯 最後の1行だけ取得(TAKEの負数)

    コード

    =TAKE(A2:D100, -1)
    

    → 最新データだけ取り出すときに最強。

    🎯 最後の2列を除外(DROPの負数)

    コード

    =DROP(A2:D100, , -2)
    

    🔥 FILTER + TAKE で“最新データだけ抽出”

    例:営業部のデータから最新1件だけ取得

    コード

    =TAKE(FILTER(A2:D100, A2:A100="営業"), -1)
    

    → 抽出+最新行取得を1式で実現。

    FILTERについては FILTER関数 の記事も参考になります。

    🔥 SORT + TAKE で“ランキング上位だけ表示”

    例:売上TOP5を取得

    コード

    =TAKE(SORT(A2:D100, 4, -1), 5)
    

    SORTについては SORT関数 を参照。

    🧩 TAKE / DROP × CHOOSECOLS / CHOOSEROWS の組み合わせ

    例:上から10行 × A列とC列だけ取得

    コード

    =CHOOSECOLS(TAKE(A2:D100, 10), 1, 3)
    

    CHOOSECOLS / CHOOSEROWS については CHOOSECOLS関数 CHOOSEROWS関数 の記事も参考になります。

    📅 月次レポートの“最新月だけ”取り出す

    コード

    =TAKE(SORT(A2:D100, 1, -1), 1)
    

    → 日付列(1列目)で降順 → 最新1行だけ取得。

    🛠 よくあるミスと注意点

    ❗ 1. 行数・列数の正負を逆にする

    • 正 → 上 / 左
    • 負 → 下 / 右

    ❗ 2. 列数を省略すると“すべての列”

    → 行だけ切り出したいときは列数を空欄でOK。

    ❗ 3. FILTER後の列番号に注意

    → FILTERで列が減ると番号が変わる。

    📊 TAKE / DROP の違い

    目的関数
    先頭・末尾を取得TAKE
    先頭・末尾を除外DROP
    列だけ抜き出すCHOOSECOLS
    行だけ抜き出すCHOOSEROWS

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がTAKE / DROPを使い始めたとき、 「これ、PowerQueryいらなくなるやつじゃん…」 と本気で驚きました。

    特に感じたメリットは以下の通りです。

    ✔ 最新データの取得が一瞬

    売上表・勤怠表・ログデータなど、 “最後の1行だけ欲しい”場面で最強。

    ✔ 行・列の切り出しが直感的

    正の数 → 上 / 左 負の数 → 下 / 右 というルールが覚えやすい。

    ✔ FILTER・SORTとの相性が神

    抽出 → 並べ替え → 切り出し が1式で完結。

    ✔ ダッシュボード作成が圧倒的に楽

    最新月・最新行・上位5件などを動的に表示できる。

    サラリーマン戦士として、 「表の切り出しはTAKE / DROP一択」 と断言できます。

    📝 まとめ:表の切り出しが一瞬でできる最新関数

    • 上から・下から・左から・右から自由に切り出せる
    • 最新データの取得に最強
    • FILTER・SORTと組み合わせると神
    • ダッシュボード・レポート作成に最適
    • 最新Excelで使える“表操作の革命”

    Excelでデータ加工を効率化するなら、 TAKE / DROP は必ず覚えておきたい関数です。

  • 【完全版】CHOOSECOLS / CHOOSEROWS とは?必要な列・行だけを自由に抜き出す“最新の表再構成関数”を実務目線で徹底解説

    サラリーマン戦士が語る、FILTER・SORTと組み合わせて最強化するデータ整形テクニック

    サラリーマンとして日々Excelと戦っていると、 「この表、A列とC列だけ使いたい」 「1行目と3行目だけ抜き出したい」 「FILTERで抽出した後に、必要な列だけ残したい」 「PowerQueryを使うほどじゃないけど、表を再構成したい」 という場面が必ずあります。

    そんな“表の再構成”を一瞬で実現してくれるのが CHOOSECOLS(列を抜き出す) CHOOSEROWS(行を抜き出す) の最新Excel関数です。

    Excel 365 以降で使える、データ加工の革命ツール。 FILTER・SORT・TAKE などと組み合わせると、 PowerQueryなしで高度なデータ整形が可能になります。

    この記事では、CHOOSECOLS / CHOOSEROWS の基本から応用、 そしてサラリーマン戦士として実務で使ってきた感想まで、 3000字レベルで徹底解説します。

    🔍 CHOOSECOLS関数(列を抜き出す)

    コード

    =CHOOSECOLS(配列, 列番号1, 列番号2, ...)
    

    ✔ 引数の意味

    • 配列:元データ
    • 列番号:抜き出したい列(1列目=1)

    🔍 CHOOSEROWS関数(行を抜き出す)

    コード

    =CHOOSEROWS(配列, 行番号1, 行番号2, ...)
    

    📘 基本例:A列とC列だけ抜き出す(CHOOSECOLS)

    元データ:

    A列B列C列
    りんご100
    みかん200

    ▶ 使用する式

    コード

    =CHOOSECOLS(A2:C3, 1, 3)
    

    ▶ 結果

    A列C列
    りんご
    みかん

    📘 基本例:1行目と3行目だけ抜き出す(CHOOSEROWS)

    コード

    =CHOOSEROWS(A2:C10, 1, 3)
    

    🎯 列の順番を入れ替える(CHOOSECOLSの強み)

    コード

    =CHOOSECOLS(A2:C100, 3, 1)
    

    C列 → A列 の順に並べ替えられる。

    CHOOSECOLSは「列の並べ替え」までできるのが強みです。

    🔥 FILTER + CHOOSECOLS で“必要な列だけ抽出”

    例:営業部だけ抽出し、A列とC列だけ使う

    コード

    =CHOOSECOLS(FILTER(A2:C100, A2:A100="営業"), 1, 3)
    

    → 抽出+列選択を1式で実現。

    FILTERについては FILTER関数 の記事も参考になります。

    🔥 SORT + CHOOSECOLS で“ランキング表を作る”

    コード

    =SORT(CHOOSECOLS(A2:D100, 1, 4), 2, -1)
    
    • 1列目(名前)
    • 4列目(売上)

    だけ抜き出して売上降順に並べ替え。

    SORTについては SORT関数 を参照。

    🧩 CHOOSEROWS × TAKE / DROP で柔軟な行操作

    ✔ 上から5行だけ取り出す

    コード

    =CHOOSEROWS(A2:C100, SEQUENCE(5))
    

    ✔ 奇数行だけ取り出す

    コード

    =CHOOSEROWS(A2:C100, SEQUENCE(ROWS(A2:C100), 1, 1, 2))
    

    📅 最新データだけ抜き出す(CHOOSEROWS)

    例:表の“最後の1行”だけ取得

    コード

    =CHOOSEROWS(A2:C100, -1)
    

    負の値は後ろから数える。

    • -1 → 最終行
    • -2 → 後ろから2番目

    🛠 よくあるミスと注意点

    ❗ 1. 列番号・行番号は“配列内の番号”

    → シートの列番号(A=1, B=2…)ではない。

    ❗ 2. 負の番号は「後ろから」

    コード

    -1 → 最終行 / 最終列
    -2 → 後ろから2番目
    

    ❗ 3. FILTER後の列番号に注意

    → FILTERで列が減ると番号が変わる。

    📊 CHOOSECOLS / CHOOSEROWS の違い

    目的関数
    列だけ抜き出すCHOOSECOLS
    行だけ抜き出すCHOOSEROWS
    上から/下から切り出すTAKE / DROP
    表の再構成CHOOSECOLS + FILTER + SORT

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がCHOOSECOLS / CHOOSEROWSを使い始めたとき、 「PowerQueryなしでここまでできるのか…!」 と本気で驚きました。

    特に感じたメリットは以下の通りです。

    ✔ 必要な列・行だけを一瞬で抜き出せる

    レポート作成が圧倒的に速くなる。

    ✔ FILTER・SORTとの相性が最強

    抽出 → 列選択 → 並べ替え が1式で完結。

    ✔ 列の順番入れ替えが神レベルに便利

    データ整形の自由度が爆上がり。

    ✔ ダッシュボード作成が楽になる

    必要な情報だけを動的に表示できる。

    サラリーマン戦士として、 「表の再構成はCHOOSECOLS / CHOOSEROWS一択」 と断言できます。

  • 【完全版】LET関数 とは?複雑な数式を“読みやすく高速化”する最強の変数定義テクニックを実務目線で徹底解説

    サラリーマン戦士が語る、Excelの数式をスッキリ整理して処理速度まで上げる革命機能

    サラリーマンとして日々Excelと戦っていると、 「同じ計算を何度も書いていてミスが出る」 「数式が長すぎて、どこを直せばいいかわからない」 「FILTERやSORTを組み合わせた式がカオス化している」 という場面が必ずあります。

    そんな“数式のストレス”を一撃で解決してくれるのが LET(レット)関数 です。

    LETは、 数式の中で変数(名前)を定義して再利用できる関数。 長い式を短くし、読みやすくし、処理速度まで向上させる Excel 365 以降の上級者向け最強テクニックです。

    この記事では、LET関数の基本から応用、 そしてサラリーマン戦士として実務で使ってきた感想まで、徹底解説します。

    🔍 LET関数 の書式

    コード

    =LET(名前1, 値1, 名前2, 値2, ..., 最終計算式)
    

    ✔ 引数の意味

    • 名前:変数名(好きな名前でOK)
    • :その変数に入れる値
    • 最終計算式:最後に返したい結果

    LETは「変数を定義して再利用する」ための関数です。

    📘 基本例:同じ計算を2回使う場合

    BEFORE(LETなし)

    コード

    =(A1+A2)*0.1 + (A1+A2)*0.2
    

    AFTER(LETあり)

    コード

    =LET(x, A1+A2, x*0.1 + x*0.2)
    

    A1+A2 を1回だけ書けばOK。読みやすくて速い。

    🎯 実務でよく使うパターン

    ① 売上の粗利率を計算(読みやすくなる)

    BEFORE

    コード

    =(売上-原価)/売上
    

    AFTER(LET)

    コード

    =LET(
        s, 売上,
        c, 原価,
        (s - c) / s
    )
    

    → 変数名で意味が明確になり、数式が理解しやすい。

    ② FILTER + SORT の複雑な式を整理

    BEFORE

    コード

    =SORT(FILTER(A2:C100, A2:A100="営業"), 3, -1)
    

    AFTER(LET)

    コード

    =LET(
        data, A2:C100,
        cond, A2:A100="営業",
        filtered, FILTER(data, cond),
        SORT(filtered, 3, -1)
    )
    

    → 処理の流れが一目でわかる。

    FILTERやSORTについては FILTER関数 SORT関数 の記事も参考になります。

    ③ 長い文字列処理をスッキリさせる

    BEFORE

    コード

    =TRIM(SUBSTITUTE(A2," "," "))
    

    AFTER(LET)

    コード

    =LET(
        t, A2,
        clean, SUBSTITUTE(t, " ", " "),
        TRIM(clean)
    )
    

    → 日本語の全角スペース処理も読みやすく整理。

    🔥 LET × LAMBDA で“自作関数”が最強化

    LETは LAMBDA関数 と組み合わせると真価を発揮します。

    例:粗利率を計算する自作関数

    コード

    =LAMBDA(sales, cost,
        LET(
            profit, sales - cost,
            profit / sales
        )
    )
    

    名前の管理で MARGIN と登録すれば…

    コード

    =MARGIN(B2, C2)
    

    → 自作関数として使える。

    🧩 LETで“計算を1回だけにする”メリット

    BEFORE(計算を2回している)

    コード

    =SUM(A1:A100) / COUNT(A1:A100) + SUM(A1:A100)
    

    AFTER(LETで1回だけ計算)

    コード

    =LET(
        s, SUM(A1:A100),
        c, COUNT(A1:A100),
        s / c + s
    )
    

    → Excelの再計算が減り、処理が軽くなる。

    🛠 LET関数のよくあるミス

    ❗ 1. 最後の引数が“返す値”であることを忘れる

    → 最後の式がそのまま結果になる。

    ❗ 2. 変数名に日本語は使えるが推奨しない

    → 英字のほうがトラブルが少ない。

    ❗ 3. 変数の順番を間違える

    名前 → 値 の順で書く。

    ❗ 4. Excel 365 以外では使えない

    → 2019以前は非対応。

    📊 LETを使うべきケースまとめ

    ケースLETを使うべき?
    同じ計算を何度も使う◎ 必須
    数式が長くて読みにくい◎ 使うべき
    FILTERやSORTなど複雑な式◎ 効果大
    単純な計算△ 不要
    自作関数(LAMBDA)◎ 相性最強

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がLETを使い始めたとき、 「数式がここまで読みやすくなるのか…!」 と本気で驚きました。

    特に感じたメリットは以下の通りです。

    ✔ 数式の可読性が爆上がり

    変数名を付けることで、式の意味が一目でわかる。

    ✔ 同じ計算を何度も書かなくてよい

    ミスが減り、修正も簡単。

    ✔ Excelの処理速度が向上

    SUMやFILTERを何度も再計算しなくて済む。

    ✔ LAMBDAとの相性が最強

    自作関数の内部をLETで整理すると、 “プロ級の関数”が作れる。

    サラリーマン戦士として、 「複雑な式を扱うならLETは必須」 と断言できます。

    📝 まとめ:LETは“数式の整理と高速化”の最強ツール

    • 複雑な式をスッキリ整理
    • 同じ計算を何度も書かなくてよい
    • 読みやすく、ミスが減る
    • Excelの処理速度も向上
    • LAMBDAと組み合わせると最強

    Excelで効率化を極めるなら、 LETは絶対に覚えておきたい上級関数です。

  • 【完全版】SUMPRODUCT とは?複数条件 × 数値集計を一発で処理する“最強の集計関数”を実務目線で徹底解説

    サラリーマン戦士が語る、SUMIFでは届かない“複雑集計”を一撃で解決する秘技

    サラリーマンとして日々Excelと戦っていると、 「東京 × 営業 の売上だけ合計したい」 「複数条件で数値を集計したい」 「SUMIFでは条件が足りない…」 「VLOOKUPでは集計できない…」 という場面が必ず出てきます。

    そんな“複雑な集計”を、たった1つの式で解決してくれるのが SUMPRODUCT(サムプロダクト)関数 です。

    SUMPRODUCTは、 複数条件 × 数値集計を一発で処理できる最強の集計関数。 SUMIF / COUNTIF の完全上位互換とも言える存在です。

    この記事では、SUMPRODUCTの基本から応用、 そしてサラリーマン戦士として実務で使ってきた感想まで、 徹底解説します。

    🔍 SUMPRODUCT関数 の基本構文

    コード

    =SUMPRODUCT(配列1, 配列2, ...)
    

    SUMPRODUCTは 配列同士を掛け算 → 最後に合計 という仕組みで動きます。

    この“掛け算”の部分に条件式を入れることで、 複数条件の集計が可能になります。

    📘 実務で最も使うパターン(最重要)

    ✔ 複数条件で合計を出す

    コード

    =SUMPRODUCT((A2:A100="東京")*(B2:B100="営業")*C2:C100)
    

    意味:

    • A列が「東京」
    • B列が「営業」
    • C列の売上を合計

    SUMIFではできない複数条件を、 SUMPRODUCTなら1式で実現できます。

    🧪 例題(コピペOK)

    拠点 | 部署 | 売上 東京 | 営業 | 100 大阪 | 営業 | 200 東京 | 開発 | 150 東京 | 営業 | 300

    ▶ 東京 × 営業 の売上合計

    コード

    =SUMPRODUCT((A2:A5="東京")*(B2:B5="営業")*C2:C5)
    

    400

    💡 実務でよくある応用

    ✔ 数値条件(例:売上100以上)

    コード

    =SUMPRODUCT((C2:C100>=100)*C2:C100)
    

    条件式が TRUE のとき 1、FALSE のとき 0 になるため、 100以上の売上だけが合計されます。

    ✔ OR条件(東京 or 大阪)

    コード

    =SUMPRODUCT(((A2:A100="東京")+(A2:A100="大阪"))*C2:C100)
    
    • 東京 → TRUE(1)
    • 大阪 → TRUE(1)
    • それ以外 → FALSE(0)

    TRUE + TRUE = 2 でも問題なく動作します。

    ✔ AND × OR の複合条件も可能

    例:

    • 拠点が「東京」
    • 部署が「営業」または「開発」

    コード

    =SUMPRODUCT((A2:A100="東京")*((B2:B100="営業")+(B2:B100="開発"))*C2:C100)
    

    SUMPRODUCTは複雑条件に強いのが最大の魅力です。

    🔥 実務で本当に使える応用パターン

    ① 月別売上を集計(TEXT関数と組み合わせ)

    コード

    =SUMPRODUCT((TEXT(A2:A100,"yyyy-mm")="2026-04")*B2:B100)
    

    TEXT関数については TEXT関数 の記事も参考になります。

    ② 商品コードの先頭3文字が「ABC」の売上合計

    コード

    =SUMPRODUCT((LEFT(A2:A100,3)="ABC")*B2:B100)
    

    LEFT関数については LEFT関数 を参照。

    ③ 営業日だけの売上合計(NETWORKDAYSと併用)

    コード

    =SUMPRODUCT((NETWORKDAYS(A2:A100,A2:A100)>0)*B2:B100)
    

    NETWORKDAYSについては NETWORKDAYS関数 を参照。

    ④ フィルタ条件をそのまま式にできる

    例:

    • 拠点:セルF2
    • 部署:セルG2

    コード

    =SUMPRODUCT((A2:A100=F2)*(B2:B100=G2)*C2:C100)
    

    動的な集計表が作れます。

    🚨 SUMPRODUCTの注意点

    ❗ 配列の行数は必ず揃える

    → A列100行 × B列100行 × C列100行 のように揃える。

    ❗ 文字列条件は “東京” のようにダブルクォーテーション必須

    ❗ 大量データでは計算が重くなる

    → 数万行を超える場合は FILTER + SUM の方が速い。

    📊 SUMPRODUCT と SUMIF / COUNTIF の違い

    目的関数
    単一条件の集計SUMIF / COUNTIF
    複数条件の集計SUMPRODUCT
    複雑条件(AND / OR / 数値条件)SUMPRODUCT
    速度重視SUMIFS
    配列計算SUMPRODUCT

    SUMPRODUCTは SUMIF / COUNTIF の完全上位互換 と言っても過言ではありません。

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がSUMPRODUCTを初めて使ったとき、 「SUMIFで苦労していた時間は何だったんだ…」 と本気で思いました。

    特に感じたメリットは以下の通りです。

    ✔ 複数条件の集計が1式で完結

    SUMIFではできない複雑条件も一発。

    ✔ AND / OR の組み合わせが自由自在

    営業 × 東京 × 売上100以上 など、 現場でよくある条件に強い。

    ✔ 配列計算が直感的

    TRUE / FALSE を 1 / 0 として扱う仕組みが理解しやすい。

    ✔ FILTER関数が使えない環境でも強い

    Excel 2016以前でも動作するのが大きなメリット。

    サラリーマン戦士として、 「複数条件の集計はSUMPRODUCT一択」 と断言できます。

    📝 まとめ:SUMPRODUCTは“複数条件集計の最強ツール”

    • 複数条件の集計が最強
    • SUMIF / COUNTIF の上位互換
    • AND / OR 条件も自由自在
    • 数値条件にも強い
    • 実務での利用頻度が非常に高い

    Excelで集計業務を効率化するなら、 SUMPRODUCTは必ず覚えておきたい関数です。

  • 【完全版】LAMBDA関数 とは?Excelを“自分専用にカスタム化”できる最強の自動化関数を実務目線で徹底解説

    サラリーマン戦士が語る、VBA不要でExcelをプログラミング化する革命機能

    サラリーマンとして日々Excelと戦っていると、 「毎回同じ計算式をコピペしている…」 「複雑な式をもっとシンプルにしたい…」 「自分専用の関数が作れたら最強なのに…」 と感じる場面が必ずあります。

    そんな“Excelの限界”を突破してくれるのが LAMBDA(ラムダ)関数 です。

    LAMBDAは、 Excelで“自分専用の関数”を作れる画期的な機能。 複雑な処理を1つの関数にまとめ、 名前を付けて保存すれば、普通の関数のように使えます。

    VBA不要で、Excelをプログラミング化できる。 Excel 365 以降で使える、業務効率化の最強ツールです。

    この記事では、LAMBDAの基本から応用、 そしてサラリーマン戦士として実務で使ってきた感想まで、 3000字レベルで徹底解説します。

    🔍 LAMBDA関数 の書式

    コード

    =LAMBDA(引数1, 引数2, ..., 計算式)
    

    ✔ 引数の意味

    • 引数:関数に渡す値
    • 計算式:実行したい処理

    LAMBDAは「関数を作るための関数」です。

    📘 まずは簡単な例:2つの数を足す関数を作る

    コード

    =LAMBDA(a, b, a + b)
    

    これだけで 「a と b を足す関数」 が完成。

    🎯 実務で使うには「名前の管理」に登録する

    1. 数式タブ → 名前の管理 → 新規作成
    2. 名前:ADD2(好きな名前)
    3. 参照範囲に以下を入力:

    コード

    =LAMBDA(a, b, a + b)
    

    OKを押すと…

    ▶ Excel上でこう使える:

    コード

    =ADD2(10, 20)
    

    30

    これがLAMBDAの革命ポイントです。

    🔥 実務で役立つ“本当に使える”LAMBDA例

    ① 税抜 → 税込を自動計算する関数

    LAMBDA本体:

    コード

    =LAMBDA(price, price * 1.1)
    

    名前:TAXIN

    コード

    =TAXIN(A2)
    

    → 税込価格が一瞬で出る。

    ② 売上の粗利率を計算する関数

    コード

    =LAMBDA(sales, cost, (sales - cost) / sales)
    

    名前:MARGIN

    コード

    =MARGIN(B2, C2)
    

    → 粗利率が自動計算。

    ③ 日本語向けTRIM(全角スペースも削除)

    コード

    =LAMBDA(text, TRIM(SUBSTITUTE(text, " ", " ")))
    

    名前:TRIMJP

    → 全角スペースも削除できる“日本語最適化TRIM”。

    ④ 日付を「YYYY年MM月DD日」に変換する関数

    コード

    =LAMBDA(d, TEXT(d, "yyyy年m月d日"))
    

    名前:JPDATE

    コード

    =JPDATE(A2)
    

    → 日本語表記の日付を一瞬で生成。

    TEXT関数については TEXT関数 の記事も参考になります。

    ⑤ FILTER → SORT をまとめた関数(最強)

    コード

    =LAMBDA(range, cond, col, SORT(FILTER(range, cond), col, -1))
    

    名前:FILTERSORT

    → 営業部の売上を降順で抽出する処理を1つにまとめられる。

    FILTER / SORT については FILTER関数 SORT関数 の記事も参考になります。

    🧩 LAMBDA × LET でさらに最強化

    複雑な式は LET と組み合わせると読みやすくなります。

    例:売上の粗利率(LET + LAMBDA)

    コード

    =LAMBDA(sales, cost,
        LET(
            profit, sales - cost,
            profit / sales
        )
    )
    

    LETで変数を定義することで、 可読性が爆上がりします。

    🛠 LAMBDAのよくあるミスと注意点

    ❗ 1. LAMBDA単体では実行されない

    名前の管理に登録して初めて使える

    ❗ 2. 引数の数と呼び出し時の数が一致していない

    → 必ず同じ数にする。

    ❗ 3. 循環参照に注意

    → 自分自身を呼び出す再帰処理は上級者向け。

    ❗ 4. Excel 365 以外では使えない

    → 2019以前は非対応。

    📊 LAMBDA と VBA の違い

    項目LAMBDAVBA
    導入不要必要
    セキュリティ高いマクロ警告あり
    共有しやすいファイル依存
    できること計算処理中心ほぼ何でも可能

    LAMBDAは「計算処理の自動化」に特化した軽量プログラミングです。

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がLAMBDAを初めて使ったとき、 「Excelがここまで進化していたのか…!」 と本気で驚きました。

    特に感じたメリットは以下の通りです。

    ✔ 複雑な式を“1つの関数”にまとめられる

    資料がスッキリし、ミスも激減。

    ✔ 何度も使う処理を完全自動化

    税計算、粗利計算、日付整形など、 毎回書く必要がなくなる。

    ✔ VBA不要でプログラミング化できる

    マクロ禁止の会社でも使えるのが神。

    ✔ 名前の管理で関数を資産化できる

    自分専用の関数ライブラリが作れる。

    サラリーマン戦士として、 「Excel自動化の革命はLAMBDAから始まる」 と断言できます。

    📝 まとめ:LAMBDAは“Excel自動化の革命”

    • 自分専用の関数を作れる
    • 複雑な処理を1つにまとめられる
    • 名前の管理に登録すれば普通の関数のように使える
    • LETと組み合わせると最強
    • VBA不要で“Excelをプログラミング化”できる

    Excelで業務効率化を極めるなら、 LAMBDAは必ず覚えておきたい上級者向け関数です。

  • 【完全版】DATEDIF とは?年齢・勤続年数・経過日数を正確に計算する“最強の期間計算関数”を実務目線で徹底解説

    サラリーマン戦士が語る、Excelに載っていない“隠れ関数”の本当の実力

    サラリーマンとして日々Excelと戦っていると、 「年齢を自動計算したい」 「勤続年数を正確に出したい」 「契約期間の経過日数を知りたい」 「プロジェクトの経過月数を計算したい」 という場面が必ず出てきます。

    しかし、Excelの関数一覧を見ても、 年齢や勤続年数を計算する関数は載っていません。

    そこで登場するのが、Excelの“隠れ関数” DATEDIF関数 です。

    DATEDIFは、 「2つの日付の差」を 年・月・日 単位で計算できる最強の期間計算関数。 実務でめちゃくちゃ使えるのに、なぜかExcelの関数一覧に載っていません。

    この記事では、DATEDIFの基本から応用、 そしてサラリーマン戦士として実務で使ってきた感想まで、 徹底解説します。

    🔍 DATEDIF関数の書式

    コード

    =DATEDIF(開始日, 終了日, 単位)
    

    ✔ 引数の意味

    • 開始日:基準となる日付
    • 終了日:終了日
    • 単位:計算方法(”Y” “M” “D” など)

    📘 単位(”Y” “M” “D”)の意味一覧

    単位意味
    “Y”年数(端数切り捨て)5年
    “M”月数(端数切り捨て)62ヶ月
    “D”日数450日
    “YM”年を除いた月数2ヶ月
    “YD”年を除いた日数15日
    “MD”月を除いた日数10日

    DATEDIFは「年・月・日」を自由に組み合わせられるのが最大の強みです。

    🎯 年齢を自動計算(実務で最も使う)

    誕生日:A2 今日の日付:TODAY()

    コード

    =DATEDIF(A2, TODAY(), "Y")
    

    満年齢が返る。

    人事・総務・名簿作成で必須のテクニックです。

    🎯 勤続年数を計算(人事・総務で必須)

    入社日:A2 今日:TODAY()

    コード

    =DATEDIF(A2, TODAY(), "Y")
    

    勤続◯年

    🔥 年齢を「◯年◯ヶ月」で表示する

    コード

    =DATEDIF(A2, TODAY(), "Y") & "年" &
    DATEDIF(A2, TODAY(), "YM") & "ヶ月"
    

    35年2ヶ月 のように表示。

    履歴書・人事台帳・社員一覧で大活躍します。

    📅 経過日数を求める(プロジェクト管理)

    開始日:A2 終了日:B2

    コード

    =DATEDIF(A2, B2, "D")
    

    経過日数が返る。

    📅 経過月数を求める(契約・サブスク管理)

    コード

    =DATEDIF(A2, B2, "M")
    

    経過月数が返る。

    🧩 年・月・日をまとめて表示(完全版)

    コード

    =DATEDIF(A2, B2, "Y") & "年" &
    DATEDIF(A2, B2, "YM") & "ヶ月" &
    DATEDIF(A2, B2, "MD") & "日"
    

    2年3ヶ月10日 のように表示。

    契約期間・プロジェクト期間の表示に最適です。

    🔄 今日までの経過日数(よく使う)

    コード

    =DATEDIF(A2, TODAY(), "D")
    

    🛠 DATEDIFのよくあるミスと注意点

    ❗ 1. Excelの関数一覧に出てこない

    → 隠し関数だが、正式に使える。

    ❗ 2. 開始日 > 終了日だとエラー

    → 必ず 開始日 ≤ 終了日 にする。

    ❗ 3. “MD” は月をまたぐと誤差が出る

    → 正確な日数は “D” を使う。

    ❗ 4. 単位は必ず「” “」で囲む

    コード

    "Y"  "M"  "D"
    

    📊 DATEDIF と NETWORKDAYS の違い

    目的関数
    経過日数・年齢・勤続年数DATEDIF
    営業日数(平日)NETWORKDAYS
    営業日後の日付WORKDAY

    DATEDIFは「純粋な日付差」、 NETWORKDAYS / WORKDAY は「営業日ベースの計算」です。

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がDATEDIFを初めて使ったとき、 「なんでこの関数、Excelに載ってないんだ…?」 と本気で驚きました。

    特に感じたメリットは以下の通りです。

    ✔ 年齢・勤続年数の自動計算が神レベル

    人事・総務の名簿作成が一瞬で終わる。

    ✔ 契約期間の計算が正確

    「◯年◯ヶ月◯日」の表示が簡単に作れる。

    ✔ TODAY()との組み合わせが最強

    今日時点の年齢・経過日数を常に自動更新。

    ✔ 隠れ関数なのに実務で最強

    Excelの関数一覧に載っていないのが不思議なくらい便利。

    サラリーマン戦士として、 「期間計算はDATEDIF一択」 と断言できます。

    📝 まとめ:DATEDIFは“期間計算の最強ツール”

    • 年齢・勤続年数・経過日数を自動計算
    • 年・月・日を自由に組み合わせ可能
    • TODAY()と組み合わせると最強
    • Excelに表示されない隠れ関数
    • 実務で必ず役に立つ期間計算の基本

    Excelで日付管理をするなら、 DATEDIFは絶対に覚えておきたい関数です。

  • 【完全版】EDATE / EOMONTH とは?月単位の計算を自由自在に自動化する“最強の月次日付関数”を実務目線で徹底解説

    サラリーマン戦士が語る、契約更新・請求締め日・月次レポートを一瞬で作る秘技

    サラリーマンとして日々Excelと戦っていると、 「契約更新日を自動計算したい」 「請求書の締め日を毎月自動で出したい」 「月初・月末を一瞬で取得したい」 「月次レポートの日付を自動生成したい」 という場面が必ず出てきます。

    事務、経理、営業、総務、製造…。 月次業務がある職種では、月単位の計算を自動化できるかどうかが仕事のスピードを大きく左右します。

    そんなとき、サラリーマン戦士である私が頼りにしているのが EDATE(指定月数の前後に移動) EOMONTH(月末日を取得) の2つの関数です。

    この記事では、EDATE / EOMONTH の基本から応用、 そして実務で使ってきた感想まで、 徹底解説します。

    🔍 EDATE関数(指定した月数だけ前後に移動)

    コード

    =EDATE(開始日, 月数)
    

    ✔ 引数の意味

    • 開始日:基準となる日付
    • 月数
      • 正の数 → 未来
      • 負の数 → 過去

    EDATEは「◯ヶ月後(前)の同日」を求める最強の関数です。

    🔍 EOMONTH関数(月末日を取得)

    コード

    =EOMONTH(開始日, 月数)
    

    ✔ 引数の意味

    • 開始日:基準となる日付
    • 月数
      • 0 → 当月末
      • 1 → 翌月末
      • -1 → 前月末

    EOMONTHは「月末日」を一瞬で取得できる関数です。

    📘 基本例:1ヶ月後の日付を求める(EDATE)

    開始日:2026/4/25

    コード

    =EDATE(A2, 1)
    

    2026/5/25

    📘 基本例:当月末の日付を求める(EOMONTH)

    コード

    =EOMONTH(A2, 0)
    

    2026/4/30

    🎯 契約更新日を自動計算(実務で最も使う)

    契約開始日:2026/4/25 契約期間:12ヶ月

    コード

    =EDATE(A2, 12)
    

    1年後の更新日が自動で出る

    契約管理の自動化に欠かせません。

    🔥 請求書の締め日を自動生成(EOMONTH)

    ✔ 当月末締め

    コード

    =EOMONTH(A2, 0)
    

    ✔ 翌月末締め

    コード

    =EOMONTH(A2, 1)
    

    請求書の締め日を毎月自動で生成できます。

    📅 月初日を求める(EOMONTH応用)

    月初は「前月末+1日」で求められます。

    コード

    =EOMONTH(A2, -1) + 1
    

    月次レポートの自動化に最適です。

    🧩 月次レポートの日付を自動化(EDATE + TEXT)

    コード

    ="レポート期間:" &
    TEXT(EOMONTH(A2,-1)+1,"yyyy/mm/dd") &
    " ~ " &
    TEXT(EOMONTH(A2,0),"yyyy/mm/dd")
    

    月初〜月末の期間表示を自動生成

    TEXT関数については TEXT関数 の記事も参考になります。

    🔄 前月・翌月の同日を求める(EDATE)

    ✔ 前月同日

    コード

    =EDATE(A2, -1)
    

    ✔ 翌月同日

    コード

    =EDATE(A2, 1)
    

    月次比較・前月比の計算で大活躍します。

    🛠 よくあるミスと対策

    ❗ 1. 月数に「日数」を入れてしまう

    → EDATEは“月単位”の関数です。

    ❗ 2. EOMONTHの月数を0にし忘れる

    → 当月末は 0

    ❗ 3. 日付が文字列扱いになっている

    → 必ずセルを 日付形式 にする。

    📊 EDATE / EOMONTH の違い

    目的関数
    指定月数後の日付を求めるEDATE
    月末日を求めるEOMONTH
    月初日を求めるEOMONTH + 1

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がEDATE / EOMONTHを使い始めたとき、 「月次業務の自動化ってこんなに簡単だったのか…」 と衝撃を受けました。

    特に感じたメリットは以下の通りです。

    ✔ 契約更新日の管理が圧倒的に楽

    12ヶ月後、24ヶ月後など、 契約更新日を自動で計算できます。

    ✔ 請求書の締め日が自動化

    月末・翌月末など、 締め日を手入力する必要がなくなります。

    ✔ 月初・月末の取得が一瞬

    月次レポートの作成スピードが爆上がり。

    ✔ 月単位のズレがなくなる

    手計算だとミスしやすい「月またぎ」も正確。

    サラリーマン戦士として、 「月次業務の自動化はEDATE / EOMONTH一択」 と断言できます。

    📝 まとめ:月次業務の自動化にはこの2つが必須

    • EDATE:月単位で前後に移動
    • EOMONTH:月末日を取得
    • 契約更新日・請求書締め日・月次レポートで大活躍
    • 月初・月末の計算が一瞬でできる
    • 日付処理の効率が劇的に上がる

    Excelで月次業務を効率化するなら、 EDATE / EOMONTH は必ず覚えておきたい関数です。

  • 【完全版】WORKDAY / NETWORKDAYS とは?土日・祝日を除外した“正確な営業日計算”ができる最強のスケジュール関数を実務目線で徹底解説

    サラリーマン戦士が語る、納期管理・締切管理の必須テクニック

    サラリーマンとして日々Excelと戦っていると、 「納期を“5営業日後”で計算したい」 「土日を除外した日数を知りたい」 「祝日も含めて正確な営業日数を出したい」 「プロジェクトの終了日を自動計算したい」 という場面が必ず出てきます。

    事務、経理、営業、製造、システム開発…。 どの部署でも“営業日ベースのスケジュール管理”は避けて通れません。

    そんなとき、サラリーマン戦士である私が頼りにしているのが WORKDAY(営業日後の日付を求める) NETWORKDAYS(営業日数を数える) の2つの関数です。

    この記事では、WORKDAY / NETWORKDAYS の基本から応用、 そして実務で使ってきた感想まで、 徹底解説します。

    🔍 WORKDAY関数(開始日+営業日数 → 終了日)

    コード

    =WORKDAY(開始日, 営業日数, [祝日])
    

    ✔ 引数の意味

    • 開始日:基準となる日付
    • 営業日数:何営業日後か
    • 祝日(任意):除外したい日付のリスト

    WORKDAYは「◯営業日後の日付」を求める最強の関数です。

    🔍 NETWORKDAYS関数(開始日〜終了日の営業日数)

    コード

    =NETWORKDAYS(開始日, 終了日, [祝日])
    

    NETWORKDAYSは「期間内の営業日数」を求める関数です。

    📘 基本例:5営業日後の納期を求める(WORKDAY)

    開始日:2026/4/25 営業日数:5日

    コード

    =WORKDAY(A2, 5)
    

    土日を除いた5営業日後の日付が返ります。

    📘 基本例:期間内の営業日数を求める(NETWORKDAYS)

    開始日:2026/4/01 終了日:2026/4/30

    コード

    =NETWORKDAYS(A2, B2)
    

    その月の営業日数が返ります。

    🎯 祝日を除外する(実務で最も使う)

    祝日リストを別セルに用意(例:F2:F10)

    コード

    =WORKDAY(A2, 10, F2:F10)
    

    コード

    =NETWORKDAYS(A2, B2, F2:F10)
    

    土日+祝日を除外した正確な営業日計算が可能。

    祝日リストは毎年更新する必要がありますが、 一度作っておけば全シートで使い回せます。

    🔥 実務でよくある応用パターン

    ① 納期を“5営業日後”で自動計算

    コード

    =WORKDAY(注文日セル, 5, 祝日リスト)
    

    営業事務の定番です。

    ② プロジェクトの終了日を計算(20営業日)

    コード

    =WORKDAY(開始日, 20, 祝日リスト)
    

    プロジェクト管理・製造工程管理で大活躍。

    ③ 月の営業日数を自動計算

    コード

    =NETWORKDAYS(EOMONTH(A1,-1)+1, EOMONTH(A1,0), 祝日リスト)
    

    月初〜月末の営業日数を自動で算出できます。

    ④ 今日から締切までの残り営業日数

    コード

    =NETWORKDAYS(TODAY(), 締切日, 祝日リスト)
    

    タスク管理・締切管理に最適。

    🧩 WORKDAY.INTL / NETWORKDAYS.INTL(平日を自由に設定)

    土日以外の休み(例:日曜+月曜休み)にも対応できます。

    例:月曜(1)と日曜(7)を休みにする

    コード

    =WORKDAY.INTL(A2, 5, "1000001")
    

    コード

    =NETWORKDAYS.INTL(A2, B2, "1000001")
    

    ✔ 曜日の並び

    左から 月 → 火 → 水 → 木 → 金 → 土 → 日

    • 1:休み
    • 0:営業日

    製造業・小売業など、土日以外が休みの業界で最強です。

    🛠 よくあるミスと対策

    ❗ 1. 祝日リストを範囲で指定していない

    → 単一セルではなく 範囲 を指定する。

    ❗ 2. 祝日リストが“文字列”になっている

    → 必ず 日付形式 にする。

    ❗ 3. NETWORKDAYSは開始日と終了日を含む

    → 期間計算のときに注意。

    📊 WORKDAY / NETWORKDAYS の違い

    目的関数
    営業日後の日付を求めるWORKDAY
    営業日数を数えるNETWORKDAYS
    平日設定を自由にしたいWORKDAY.INTL / NETWORKDAYS.INTL

    🧑‍💼 サラリーマン戦士が実際に使ってみた感想

    サラリーマン戦士がWORKDAY / NETWORKDAYSを使い始めたとき、 「もう手計算で営業日を数える必要がない…!」 と感動しました。

    特に感じたメリットは以下の通りです。

    ✔ 納期管理が圧倒的に楽

    土日・祝日を自動で除外してくれるため、 ミスが激減します。

    ✔ プロジェクト管理の精度が上がる

    20営業日後、30営業日後など、 工程管理が正確になります。

    ✔ 月次処理の効率が爆上がり

    月の営業日数を自動で算出できるため、 経理・総務の月次業務がスムーズ。

    ✔ INTL版でどんな勤務体系にも対応

    土日休みじゃない業界でも柔軟に使えます。

    サラリーマン戦士として、 「スケジュール管理はWORKDAY / NETWORKDAYS一択」 と断言できます。

    📝 まとめ:納期管理・締切管理の必須関数

    • 土日を自動で除外
    • 祝日も除外できる
    • 納期・締切・プロジェクト管理に最強
    • INTL版で平日設定も自由自在
    • 実務で絶対に覚えておきたい関数

    Excelで“正確なスケジュール管理”をするなら、 WORKDAY / NETWORKDAYS は必須です。