• ベストアンサー

【Excelの検索で】こんなことできますか?

例えば各設問に1~5までの点数をつけたいのですが、 数値を直接入力するのではなく、1~5のセル範囲が ある直近のセルのいずれかに○ (もしくはそれに相当するもの)を入力すると その点数が表示されると言う関数はありますか? 人事考課の評価点をつけるのに利用しようと考えて います。 例)     1点 2点 3点 4点 5点   点数   設問1            ○       4   設問2         ○          3 上記のように設定したいと思います。 どなたか詳しい方教えてくださいm(__)m!!

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

#3のmshr1962です。 点数が逆の場合ですか? =IF(COUNTIF($B2:$F2,"○")>0,6-MATCH("○",$B2:$F2,0),"") 又は =SUMPRODUCT(($B2:$F2="○")*{5,4,3,2,1}) MATCH関数の場合は6からその位置の数を引けばOK 他の方法として =IF(COUNTIF($B2:$F2,"○")>0,CHOOSE(MATCH("○",$B2:$F2,0),5,4,3,2,1),"") の様にCHOOSE関数で振り分けも可

tenmaru
質問者

お礼

ありがとうございました。適切なアドバイスの おかげで解決しました! 我ながら自分の未熟さを痛感しました。。。 お忙しいところ、ありがとうございましたm(__)m

その他の回答 (4)

  • pjunk
  • ベストアンサー率32% (10/31)
回答No.4

HLOOKUP関数を使えばできます。 ヘルプより> 指定したテーブルまたは配列の上端行で特定の値を検索し、その値と同じ値が入力されている行と列の値を返します。 書式:HLOOKUP(検索値,範囲,行番号,検索の型) 範囲の一番上に各設問の行が、範囲の一番下に点数がくるようにします。 その上で行番号を ROW(点数の行)-ROW(設問の行)+1 とすればOKです。 コピーが簡単にできるように範囲の一番下の行には $をつけて固定にしてください。 こうすれば、一番下の点数の行を変更すれば、簡単に点数配分も変更できます。

tenmaru
質問者

お礼

ありがとうございます。参考にさせて いただきます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

=IF(COUNTIF($B2:$F2,"○")>0,MATCH("○",$B2:$F2,0),"") 又は =SUMPRODUCT(($B2:$F2="○")*{1,2,3,4,5}) 前者は、低い方の点数を表示(ない場合はブランク) 後者は、○のある点数を合計します。(ない場合は0)

  • saodake
  • ベストアンサー率21% (51/233)
回答No.2

マクロ文で出来ますが、一般には使える人が少ないので、IF文を使う方法が良いと思います。 例 =IF(参照セル="○",1,IF(参照セル="○",2,IF(参照セル="○",3,IF(参照セル="○",4,IF(T参照セル="○",5,"")))))

tenmaru
質問者

お礼

ありがとうございます。このような方法が あったんですね。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

○をつけるセル範囲が仮にB2~F2であれば、 =MATCH("○",B2:F2) で、B2なら1、C2なら2というように、その範囲内の○の位置が出ます。 式を設問がある行の一番下までドラックしてコピーすれば簡単ですね。

tenmaru
質問者

補足

ありがとうございます。ちゃんとできました! しかし、例えば先ほどの点数の配置を逆にした場合・・・ 例)     5点 4点 3点 2点 1点   点数   設問1              ○     1   設問2      ○             4 このような場合はどのような関数を使えばよろしい のでしょうか。 何度も質問してしまい、申し訳ないですが、 教えて下さい。。。

関連するQ&A