イメージは以下のとおりです。

A1からA9の合計値がA10に反映されるとします。

A10セルの結果が、70以上~100以下の値だった場合、
B10セルに表示させるリストは、AとBの2種類

A10セルの結果が、40以上~69以下の値だった場合、
B10セルに表示させるリストは、BとCとDの3種類

A10セルの結果が、10以上~39以下の値だった場合、
B10セルに表示させるリストは、CとDとEの3種類


A10は合計値となるため、リスト形式ができず。。
「データの入力規則」と「INDIRECT関数」の組み合わせで設定を試みましたが、
思うように設定することでができませんでした。

お力を貸してください。
よろしくお願いします。

質問者からの補足コメント

  • kikosi様
    早々にありがとうございます。
    明日、教えていただいた内容で作業を進めてみます。またご連絡いたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/11/14 21:11
  • tom04様
    早々にありがとうございます。
    明日、教えていただいた内容で作業を進めてみます。またご連絡いたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/11/14 21:13

A 回答 (2件)

こんばんは!



的外れならごめんなさい。

↓の画像のようにA10の値の対応表をD~G列に作成しておきます。
(10未満は考慮していません。)

B10を選択 → データの入力規則 → 入力規則 → リスト → 元の値の欄に
=OFFSET(E1,MATCH(A10,D:D,1)-1,,1,COUNTA(OFFSET(E1:G1,MATCH(A10,D:D,1)-1,,1)))

という数式を入れてOK!

尚、A10セルには計算式が入っているというコトなので、
再計算されるとB10セルを一旦クリアした方が良いと思いますので、
↓の3行のコードをシートモジュールにしてみてください。

Private Sub Worksheet_Calculate()
Range("B10").ClearContents
End Sub

こんな感じをお望みなのでしょうか?

※ 100以下となっていますが、仮にA10セルが70以上いくつになっても(100を超えても)
AとBがリスト候補になります。m(_ _)m
「【エクセル関数】セルの値によって、別セル」の回答画像1
この回答への補足あり
    • good
    • 0
この回答へのお礼

思っていた通りの表を作ることが出来ました。
再計算の際のコードまでご用意いただきありがとうございました。
また機会がありましたら、よろしくお願いします。

お礼日時:2017/11/15 18:25

※ リストデータの設定


D1: =IF(A10>=70,"A",IF(A10>=40,"B", "C"))
D2:=IF(A10>=70,"B",IF(A10>=40,"C", "D"))
D3:=IF(A10>=70,"",IF(A10>=40,"D", "E"))

※ 名前の挿入
名前:評価グレード
参照範囲:=OFFSET(Sheet1!$D$1:$D$3,0,0,3-COUNTBLANK(Sheet1!$D$1:$D$3),1)

※ B10の設定
データの入力規則
入力値の種類:リスト
元の値:=評価グレード


実際の結果も一緒に図にまとめました。
「【エクセル関数】セルの値によって、別セル」の回答画像2
この回答への補足あり
    • good
    • 0
この回答へのお礼

解決しました。
お知恵を貸していただき、ありがとうございました。また機会がありましたら、よろしくお願いします。

お礼日時:2017/11/15 18:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング