ITパスポート 2016年 春期 問80
問題文
表計算ソフトを用いて、買い物金額に応じたポイント数を計算する。買い物金額が1,000円以下では買い物金額の1%、買い物金額が1,000円を超え3,000円以下では買い物金額の2%、買い物金額が3,000円を超える場合は買い物金額の3%のポイントを付与する。ワークシートのセルA2に買い物金額が入力されるとき、ポイント数が表示されるセルB2に入る数式はどれか。ここで、ポイント数の小数点以下は切捨てとする。

選択肢
ア:IF(A2≧3000, 整数部(A2*3/100),
IF(A2≧1000, 整数部(A2/100), 整数部(A2*2/100)))
イ:IF(A2>3000, 整数部(A2*3/100),
IF(A2>1000, 整数部(A2/100), 整数部(A2*2/100)))
ウ:IF(A2≦1000, 整数部(A2/100),
IF(A2≦3000, 整数部(A2*2/100), 整数部(A2*3/100)))(正解)
エ:IF(A2<1000, 整数部(A2/100),
IF(A2<3000, 整数部(A2*2/100), 整数部(A2*3/100)))
🔒 解説は解答すると表示されます
買い物金額に応じたポイント計算【ITパスポート 解説】
正解の理由
設問の条件は次のとおりです。
- 買い物金額が1,000円以下なら1%、
- 1,000円を超え3,000円以下なら2%、
- 3,000円を超えるなら3%、 かつポイントは小数点以下を切捨て(整数部だけ残す)します。
この条件をそのまま順に判定するには、まず「A2が1,000以下か」を確かめ、それが違えば「A2が3,000以下か」を確かめるのが自然です。選択肢の中でこの順序と境界(「以下」「超」)を正しく扱っているのは ウ です。ウ の式は、A2が1000以下なら1%を返し、そうでなければ(=1000より大きければ)3000以下なら2%、それ以外(=3000より大きい)なら3%を返します。整数化には「整数部」を使い、小数点以下を切り捨てています。従って設問の条件を満たします。
解法ステップ
-
設問の条件を「区間」として整理する
- A2 ≤ 1000 → 1%
- 1000 < A2 ≤ 3000 → 2%
- 3000 < A2 → 3%
-
IF関数(条件付きで値を返す関数。例:IF(条件, 真の場合の値, 偽の場合の値))をネストして上の区間を表現する。
- 最初に A2 ≤ 1000 を判定するのが分かりやすい(該当なら1%を返す)。
- そうでなければ次に A2 ≤ 3000 を判定して2%か3%かを決める。
-
ポイントの小数部分は切捨て(整数部だけ)にするため、整数化の関数(ここでは「整数部」)で小数部分を落とす。
-
具体例(図のA2 = 3,350 の場合)
- 3,350 ≤ 1000 ? → いいえ
- 3,350 ≤ 3000 ? → いいえ
- よって 3%:計算は → 整数部で 100 が表示される。
以上から、条件の順序・境界・切捨てを正しく扱っている ウ が正解です。
選択肢別の誤答解説
-
ア: IF(A2≧3000, 整数部(A23/100), IF(A2≧1000, 整数部(A2/100), 整数部(A22/100)))
- 問題点:最初に A2 ≧ 3000 を判定しており、A2 = 3000 のとき 3% を与えてしまいます(設問は 3,000以下は2%)。加えて内側の IF の分岐で 1% と 2% が逆になっています(A2≧1000 の部分で1%を計算している)。境界とパーセンテージの対応が合っていません。
-
イ: IF(A2>3000, 整数部(A23/100), IF(A2>1000, 整数部(A2/100), 整数部(A22/100)))
- 問題点:外側は >3000 と正しい境界ですが、内側の判定で A2>1000 の場合に1%を返しています。つまり 1001〜3000 の範囲が1%になってしまい、2%の範囲が間違っています。パーセンテージの割り当てミスです。
-
ウ: IF(A2≦1000, 整数部(A2/100), IF(A2≦3000, 整数部(A22/100), 整数部(A23/100)))
- 正しい理由は前述のとおり。境界条件(以下 ≤)とパーセンテージの対応が設問通りです。
-
エ: IF(A2<1000, 整数部(A2/100), IF(A2<3000, 整数部(A22/100), 整数部(A23/100)))
- 問題点:「<1000(未満)」や「<3000(未満)」を使っており、A2=1000 や A2=3000 の扱いが誤ります。たとえば A2=1000 のとき本来1%ですが、この式では 1000は<1000 に該当せず次の判定で<3000 が真となり2%を与えてしまいます。
よくある誤解
- 境界(等号)の扱いを忘れる:1000や3000が「以下(≤)」か「未満(<)」かで答えが変わります。設問文の「〜以下」「〜を超える」を正確に式に反映することが重要です。
- IFの順序ミス:条件を逆にすると、想定外の範囲で早く真になってしまい、後段の正しい判定が行われません。上から順に「小さい方→大きい方」か「大きい方→小さい方」のどちらかで一貫性を持たせます。
- 切捨ての関数の違いを混同する:Excelには INT、TRUNC(切り捨て)などがあります。金額は正の数なのでどれを使っても同じ結果になることが多いですが、負の数の扱いは違うので用語の意味を押さえておきます。
補足コラム
- 「整数部」や「INT」関数について:Excelの INT 関数は小数点以下を切り捨て(正の数では小数部分を取る)。TRUNC(切り捨て)も似ていますが、負の数の扱いで差があります。今回のように金額は正の整数が前提ならどちらでも同じ結果です。
- 新しい関数で書く方法(可読性を上げたい場合):Excelの IFS(複数条件を順に評価する関数)を使うとネストが浅くなります。例:
- IFS(A2<=1000, INT(A21/100), A2<=3000, INT(A22/100), TRUE, INT(A2*3/100))
- ただし、試験の選択肢は古典的なネストした IF を想定していることが多いです。
FAQ
Q1. 「整数部」とは何ですか?
A1. 小数点以下を切り捨てて整数だけを残す処理です。たとえば 100.9 → 100、100.1 → 100。今回のようなポイント計算で小数を切り捨てるときに使います。
A1. 小数点以下を切り捨てて整数だけを残す処理です。たとえば 100.9 → 100、100.1 → 100。今回のようなポイント計算で小数を切り捨てるときに使います。
Q2. A2 に 1000 や 3000 が入ったときはどう扱うべきですか?
A2. 設問に「1,000円以下」や「3,000円以下」とあるので、1000は1%の範囲に、3000は2%の範囲に入ります。式の不等号に注意してください。
A2. 設問に「1,000円以下」や「3,000円以下」とあるので、1000は1%の範囲に、3000は2%の範囲に入ります。式の不等号に注意してください。
Q3. 切捨てではなく四捨五入にしたい場合は?
A3. Excelなら ROUND 関数(例:ROUND(A2*3/100, 0))を使います。ただし四捨五入のルールが変わるので、仕様に従って使い分けてください。
A3. Excelなら ROUND 関数(例:ROUND(A2*3/100, 0))を使います。ただし四捨五入のルールが変わるので、仕様に従って使い分けてください。
関連キーワード: 表計算, IF関数, ネスト, 切捨て, 整数部, 境界値, 不等号, Excel, スプレッドシート, IFS, INT, TRUNC

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

