- ベストアンサー
【Excelの検索で】こんなことできますか?
例えば各設問に1~5までの点数をつけたいのですが、 数値を直接入力するのではなく、1~5のセル範囲が ある直近のセルのいずれかに○ (もしくはそれに相当するもの)を入力すると その点数が表示されると言う関数はありますか? 人事考課の評価点をつけるのに利用しようと考えて います。 例) 1点 2点 3点 4点 5点 点数 設問1 ○ 4 設問2 ○ 3 上記のように設定したいと思います。 どなたか詳しい方教えてくださいm(__)m!!
- みんなの回答 (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関数で振り分けも可
その他の回答 (4)
- pjunk
- ベストアンサー率32% (10/31)
HLOOKUP関数を使えばできます。 ヘルプより> 指定したテーブルまたは配列の上端行で特定の値を検索し、その値と同じ値が入力されている行と列の値を返します。 書式:HLOOKUP(検索値,範囲,行番号,検索の型) 範囲の一番上に各設問の行が、範囲の一番下に点数がくるようにします。 その上で行番号を ROW(点数の行)-ROW(設問の行)+1 とすればOKです。 コピーが簡単にできるように範囲の一番下の行には $をつけて固定にしてください。 こうすれば、一番下の点数の行を変更すれば、簡単に点数配分も変更できます。
お礼
ありがとうございます。参考にさせて いただきます。
- mshr1962
- ベストアンサー率39% (7417/18945)
=IF(COUNTIF($B2:$F2,"○")>0,MATCH("○",$B2:$F2,0),"") 又は =SUMPRODUCT(($B2:$F2="○")*{1,2,3,4,5}) 前者は、低い方の点数を表示(ない場合はブランク) 後者は、○のある点数を合計します。(ない場合は0)
- saodake
- ベストアンサー率21% (51/233)
マクロ文で出来ますが、一般には使える人が少ないので、IF文を使う方法が良いと思います。 例 =IF(参照セル="○",1,IF(参照セル="○",2,IF(参照セル="○",3,IF(参照セル="○",4,IF(T参照セル="○",5,"")))))
お礼
ありがとうございます。このような方法が あったんですね。
- merlionXX
- ベストアンサー率48% (1930/4007)
○をつけるセル範囲が仮にB2~F2であれば、 =MATCH("○",B2:F2) で、B2なら1、C2なら2というように、その範囲内の○の位置が出ます。 式を設問がある行の一番下までドラックしてコピーすれば簡単ですね。
補足
ありがとうございます。ちゃんとできました! しかし、例えば先ほどの点数の配置を逆にした場合・・・ 例) 5点 4点 3点 2点 1点 点数 設問1 ○ 1 設問2 ○ 4 このような場合はどのような関数を使えばよろしい のでしょうか。 何度も質問してしまい、申し訳ないですが、 教えて下さい。。。
お礼
ありがとうございました。適切なアドバイスの おかげで解決しました! 我ながら自分の未熟さを痛感しました。。。 お忙しいところ、ありがとうございましたm(__)m