Excelで「この数値は基準をクリアしているのか?」をサッと確認したいこと、ありますよね。IF関数を使えばできるけれど、わざわざ条件式を書くのが面倒に感じることもあるでしょう。
ExcelのGESTEP関数を使えば、数値がしきい値以上かどうかを 1(以上)か 0(未満)で即座に返してくれます。この記事では、GESTEP関数の基本的な書き方から、売上目標達成チェック・品質基準判定・予算比較などの実務的な活用例まで詳しく解説します。DELTA関数やIF関数との使い分け、よくあるエラーの対処法もあわせて紹介しますね。
ExcelのGESTEP関数とは?
読み方と語源
GESTEP関数の読み方は「ジーイーステップ」です。GEは「Greater than or Equal to(以上)」、STEPは「段差・基準」を意味しています。つまり「基準値以上かどうか」を判定する関数ということですね。
数学・工学の世界では、ある値を境にして出力が0から1に切り替わる関数を「ステップ関数(階段関数)」と呼びます。GESTEP関数はまさにこのステップ関数をExcelで実現するための関数なんです。
GESTEP関数でできること
GESTEP関数は、指定した数値がしきい値(基準値)以上かどうかを判定します。結果はとてもシンプルで、以下の2パターンだけです。
- しきい値以上 → 1 を返す
- しきい値未満 → 0 を返す
テストの合格ライン判定や、売上目標の達成チェックなど、「基準を超えたかどうか」だけを知りたい場面で活躍しますよ。
GESTEP関数はExcelの「エンジニアリング関数」カテゴリに分類されています。Excel 2007以降のすべてのバージョンと、Microsoft 365で使用できます。Googleスプレッドシートでも同名の関数として使えるので、覚えておくとデータ移行時にも安心ですね。
GESTEP関数を使うメリット
「IF関数があれば十分では?」と思うかもしれませんが、GESTEP関数には次のようなメリットがあります。
- 数式が短くシンプルに書ける
- 戻り値が必ず0か1なので、SUM関数やSUMPRODUCT関数と組み合わせて集計しやすい
- 「達成・未達成」のフラグ列を作るときに見た目がすっきりする
- 0/1のバイナリデータとしてピボットテーブルや条件付き書式に活用できる
特にダッシュボードやKPI管理表を作るときには、見た目のすっきりさが効いてきます。
ExcelのGESTEP関数の書き方
基本構文
=GESTEP(数値, [しきい値])
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 数値 | 必須 | しきい値と比較したい数値を指定します |
| しきい値 | 省略可 | 判定の基準となる値を指定します。省略すると 0 が使われます |
しきい値を省略した場合は、「数値が0以上かどうか」の判定になります。正の数なら1、負の数なら0が返ってくるので、正負の判定としても使えますよ。
押さえておきたい仕様のポイント
GESTEP関数を使う前に、次のポイントを押さえておくとつまずきません。
- 「以上」の判定: 数値としきい値が等しい場合は 1 を返します(「より大きい」ではない)
- 小数も判定できる: 整数だけでなく、3.14のような小数も問題なく扱えます
- 負の数も判定できる: しきい値を-100に設定すれば「-100以上」の判定になります
- 戻り値は必ず数値の0か1: 文字列の「TRUE」「FALSE」ではないので、計算式に直接使えます
GESTEP関数の基本的な使い方
たとえば、テストの点数が70点以上かどうかを判定してみましょう。
セルA2に点数「85」が入っているとします。B2セルに次の数式を入力します。
=GESTEP(A2, 70)
85は70以上なので、結果は 1 になります。
もしA2が「65」なら結果は 0 です。このように、合格ラインを超えたかどうかを一発で判定できるのがGESTEP関数の強みですね。
ポイントは「以上」の判定だということです。数値としきい値がぴったり同じ(たとえば70と70)でも、結果は 1 になります。
逆に「より大きい(>)」の判定をしたい場合は、しきい値に少しだけ大きい値を指定するか、IF関数を使ったほうがわかりやすいでしょう。たとえば「70点より大きい」を判定したいなら、=GESTEP(A2, 70.001) ではなく =IF(A2>70, 1, 0) のほうが意図が明確です。
GESTEP関数の実践的な活用例
活用例1: 売上目標の達成チェック
各営業担当の売上が月間目標の100万円以上かどうかを一覧で表示する場合を考えてみましょう。
| A列(担当者) | B列(売上) | C列(数式) | C列(結果) |
|---|---|---|---|
| 田中 | 1,200,000 | =GESTEP(B2, 1000000) | 1 |
| 鈴木 | 850,000 | =GESTEP(B3, 1000000) | 0 |
| 佐藤 | 1,000,000 | =GESTEP(B4, 1000000) | 1 |
| 山田 | 1,580,000 | =GESTEP(B5, 1000000) | 1 |
| 高橋 | 920,000 | =GESTEP(B6, 1000000) | 0 |
佐藤さんの売上はちょうど100万円ですが、GESTEP関数は「以上」で判定するので結果は1です。
C列の合計を =SUM(C2:C6) で取れば、達成者数が一目でわかります(このケースでは3人)。さらに =SUM(C2:C6)/COUNT(B2:B6)*100 とすれば達成率(60%)も計算できますね。
IF関数で「=IF(B2>=1000000, 1, 0)」と書くのと同じ結果になりますが、GESTEP関数のほうが数式がコンパクトです。
活用例2: 品質基準の合否判定
製造ラインで「製品の重量が規定値(500g)以上か」を品質チェックする場面でも使えます。
| 製品ID | 重量(g) | 数式 | 判定 |
|---|---|---|---|
| P-001 | 502 | =GESTEP(B2, 500) | 1 |
| P-002 | 498 | =GESTEP(B3, 500) | 0 |
| P-003 | 510 | =GESTEP(B4, 500) | 1 |
| P-004 | 500 | =GESTEP(B5, 500) | 1 |
| P-005 | 495 | =GESTEP(B6, 500) | 0 |
判定列の合計を出せば合格品数、平均を出せば合格率がそのまま計算できます。たとえば =AVERAGE(C2:C6) の結果は0.6(60%)となり、合格率がパーセンテージで把握できますよ。
条件付き書式と組み合わせて「結果が0のセルを赤く塗る」ように設定すれば、不良品が一目でわかるダッシュボードになります。
活用例3: 予算と実績の比較
部門ごとの実績が予算を達成しているかチェックする例です。予算がC列、実績がD列にある場合、しきい値にセル参照を使います。
| 部門 | 予算 | 実績 | 数式 | 達成 |
|---|---|---|---|---|
| 営業1部 | 5,000,000 | 5,300,000 | =GESTEP(D2, C2) | 1 |
| 営業2部 | 4,500,000 | 4,200,000 | =GESTEP(D3, C3) | 0 |
| 営業3部 | 6,000,000 | 6,000,000 | =GESTEP(D4, C4) | 1 |
このように、しきい値に固定値ではなくセル参照を使えば、行ごとに異なる基準で判定できます。予算が部門ごとに変わるケースでも対応できますね。
活用例4: SUMPRODUCT関数と組み合わせて集計する
GESTEP関数は配列に対しても使えるので、SUMPRODUCT関数と組み合わせると強力です。
たとえばA2:A100にテスト点数が入っていて、80点以上の人数を数えるならこう書きます。
=SUMPRODUCT(GESTEP(A2:A100, 80))
範囲全体に対して一括でGESTEPを適用し、その結果(0か1)をSUMPRODUCTで合計するというイメージです。COUNTIF関数で =COUNTIF(A2:A100, ">=80") と書くのと同じ結果になります。
ただし、件数を数えるだけならCOUNTIF関数のほうがスマートです。GESTEP関数は「各セルの判定結果(0/1)を個別に残したい」「他の計算と組み合わせたい」ときに向いています。
活用例5: しきい値を省略して正負を判定する
しきい値を省略すると0がしきい値になるので、数値の正負判定に使えます。
=GESTEP(A2)
A2が正の数または0なら1、負の数なら0が返ります。在庫数がマイナスになっていないかのチェックや、利益が黒字かどうかの判定などに使えますよ。
たとえば月次の利益データがあって「黒字の月数を数えたい」なら、各セルにGESTEPを適用してSUMで合計するだけで完了します。
GESTEP関数でよくあるエラーと対処法
#VALUE! エラー
GESTEP関数で最も起きやすいエラーです。数値やしきい値に数値以外のデータ(文字列や空白セル参照など)を指定すると発生します。
たとえば =GESTEP("85", 70) のように数値が文字列として入っていると、このエラーが出ることがあります(環境によって挙動が異なるので注意)。
対処法: 引数に指定したセルが数値であることを確認してください。文字列が混在している場合は、VALUE関数で数値に変換するか、データを修正しましょう。セルの表示形式が「文字列」になっている場合は、「標準」や「数値」に変更するのも有効です。
#NAME? エラー
関数名のスペルミスが原因です。「GESTEP」を「GETSTEP」や「GE_STEP」と入力していないか確認してください。スペースが入っているケースも多いので、特に手入力したときは注意が必要です。
#N/A エラー
セル参照先のデータが見つからない場合に発生することがあります。VLOOKUP関数の結果をGESTEPに渡しているときに起きやすいので、参照元のデータを確認しましょう。
想定と違う結果が返る
「以上」と「より大きい」を取り違えているケースが多いです。GESTEP関数は「以上(>=)」なので、しきい値ぴったりの値も1を返します。「より大きい(>)」を判定したい場合は、IF関数を使うか、しきい値を1つ大きい値に設定しましょう。
GESTEP関数と似た関数の違い・使い分け
GESTEP関数とIF関数の違い
| 比較項目 | GESTEP関数 | IF関数 |
|---|---|---|
| 判定条件 | しきい値以上かどうかの1パターンのみ | 自由に条件を設定できる |
| 返す値 | 1 または 0 固定 | 任意の値を返せる |
| 数式の長さ | 短い | やや長い |
| 「より大きい」判定 | 不向き | 簡単 |
| 向いている場面 | 0/1のフラグが欲しいとき | 「合格」「不合格」など文字を返したいとき |
シンプルに0と1だけ欲しいならGESTEP関数、返す値をカスタマイズしたいならIF関数を選びましょう。
たとえば判定結果に「達成」「未達」と文字を返したい場合は、IF関数が必要です。
=IF(B2>=1000000, "達成", "未達")
一方、判定結果を集計したい・グラフのデータソースにしたいなら、GESTEP関数が便利ですね。
GESTEP関数とDELTA関数の違い
DELTA関数は「2つの数値が等しいかどうか」を判定して1または0を返します。一方、GESTEP関数は「以上かどうか」の判定です。
| 比較項目 | GESTEP関数 | DELTA関数 |
|---|---|---|
| 判定内容 | 数値 >= しきい値 | 数値1 = 数値2 |
| 用途 | しきい値判定 | 一致判定 |
| 引数の数 | 1〜2個 | 1〜2個 |
| エンジニアリング関数 | はい | はい |
どちらもエンジニアリング関数で、結果が0か1で返ってくるのが共通点ですね。「在庫数が目標と一致しているか」を見たいならDELTA、「在庫数が目標以上か」を見たいならGESTEP、と使い分けましょう。
GESTEP関数とCOUNTIF関数の使い分け
「基準を超えた件数」を数えたいだけなら、COUNTIF関数のほうがシンプルです。
=COUNTIF(A2:A10, ">=70")
GESTEP関数は「個々の判定結果を一覧で残したい」「他の計算と組み合わせたい」ときに使うのが効率的です。たとえば「達成者にだけボーナスを計算する」といった処理なら、GESTEP関数の0/1を別の計算式に組み込めます。
=B2*GESTEP(C2, 1000000)*0.05
このように「達成したらボーナス(売上の5%)、未達なら0」という計算がスッキリ書けますよ。
GESTEP関数とBITAND関数の関係
BITAND関数は2進数のビット単位AND演算を行う関数で、GESTEP関数とは用途が違います。ただし、GESTEP関数で生成した0/1のフラグを複数組み合わせて、AND条件を表現するときにBITAND関数を使うこともあります。
たとえば「売上目標達成 かつ 利益率5%以上」の両方を満たす担当者を判定したい場合、次のように書けます。
=BITAND(GESTEP(B2, 1000000), GESTEP(C2, 0.05))
両方が1なら結果は1、どちらかが0なら結果は0になります(実際には =GESTEP(B2,1000000)*GESTEP(C2,0.05) のほうが直感的かもしれませんね)。
GESTEP関数を使うときのヒント
条件付き書式と組み合わせる
GESTEP関数の結果(0か1)は、条件付き書式と相性抜群です。「結果が1のセルを緑色、0のセルを赤色」と設定すれば、達成・未達成が一目でわかるシートになります。
KPIダッシュボードやプロジェクト進捗表など、状況をひと目で把握したい場面で活用してみてください。
グラフのデータソースとして使う
達成数の推移を時系列で見たいときも、GESTEP関数で0/1のフラグ列を作っておくと便利です。月ごとの達成者数を棒グラフにしたり、累計達成率を折れ線グラフにしたりするのが楽になります。
ピボットテーブルで集計する
GESTEP関数の結果を集計列として持たせれば、ピボットテーブルで「部門別の達成者数」「月別の達成率」など多角的に集計できます。0と1の数値データなので、合計・平均がそのまま意味のある値(達成数・達成率)になるのがポイントです。
まとめ
ExcelのGESTEP関数は、数値がしきい値以上かどうかを0と1で返すシンプルな関数です。
この記事のポイントをおさらいしておきましょう。
- GESTEP関数は「数値 >= しきい値」なら 1、そうでなければ 0 を返す
- しきい値を省略すると0と比較される(正負の判定に使える)
- 数値としきい値が等しい場合は 1 を返す(「以上」の判定)
- 売上目標達成・品質基準判定・予算比較など、フラグ管理に最適
- SUMやSUMPRODUCTと組み合わせれば、基準を超えた件数や達成率をカウントできる
- IF関数より数式がコンパクトなので、0/1のフラグが欲しいときに便利
- 文字列で結果を返したいならIF関数、数値の一致判定ならDELTA関数、件数だけ数えるならCOUNTIF関数を使い分けよう
- 条件付き書式やピボットテーブルとの組み合わせで、ダッシュボードづくりに活躍する
合格判定や達成チェックなど、「超えたか・超えていないか」をサッと知りたい場面で、ぜひ使ってみてください。0と1のシンプルな返り値は、応用次第でとても強力な武器になりますよ。
