こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの式について

=IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE),"")
上記の式が組んであります。
こちらに、
『○○~××の範囲でAの場合』という条件を付け足したいのです。
範囲内には数十個選択肢があります。

やりたい事としては
A→0.1
B→0.4
というように、項目によって数字が変わるのに対応したいのですが・・・。

説明が下手ですみません。汗
是非ともよろしくお願い致しますm(__)m

投稿日時 - 2017-04-14 15:56:22

QNo.9317477

困ってます

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

○○~××の範囲と
言う事ですか
○○が、C2に
××が、D2に
あるもの
と、します

他にも.方法
ありますが
判り易さを、優先し
書きます
=IF(AND(K31<$c$2,$D$2>k31),
IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE),""),
"")

また、
返される、ものが
数値、の場合
=IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE)
/AND(K31<$c$2,$D$2>k31)
,"")

此の時
AND(K31<$c$2,$D$2>k31)

((K31<$c$2)*($D$2>k31))
とも、できます

ので、
=IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE)
/((K31<$c$2)*($D$2>k31))
,"")

とも
=IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE)
/(K31<$c$2)/($D$2>k31)
,"")

とも、
出来ます

でも、
私的、には
C4:G23の、データを
全ての
此の、式に
持たせる、のは
比較して
処理が、重くなる
ので

=IFERROR(OFFSET($E$3,MATCH(K31,$C$4:$C$23,0)*(K31<$c$2)*($D$2>k31),1,1,1),"")

ですかね

未確認、なので
動作、不良時は
早めに
お叱り、ください

投稿日時 - 2017-04-14 18:48:08

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

いわゆる、どうにもならん質問ですね(笑)。
説明下手というか何というか・・・
ご自身でも「条件を理解できていない」ように見受けられます。
そこを整理なさるのが先決と思われますが・・

さて、本題・・に入れない(笑)。

> 『○○~××の範囲でAの場合』
と予備知識なしに言われるとどうしても
  〇〇 < A < ××
を連想してしまうので、結局
  対象 = A
だけで良いじゃん。となってしまうんですが・・
その辺はどうなんでしょう?

以下、複数の条件を満たすかどうか調べる代表例です。
検査対象がB1セルにあるものとして、
  任意セル:=AND(〇〇<B1,××>B1,A)
       ※Aは比較式等
といった具合にAND関数を使います。

投稿日時 - 2017-04-18 09:38:18

ANo.4

「是非ともよろしくお願い」するにしては、余りにも「説明が下手」過ぎてサッパリポンです。

》 範囲内には数十個選択肢があります
検索される「範囲」は C4:C23 だから選択肢は20個じゃないの?
重複するものがあったらダメよ。
$C$4:$G$23 は大した範囲ではないから、全部具体的なデータ例を出したら?
セル K31 の数値例を幾つか示したら?
示された式は、F列のデータを返すことになっているけど、此れと
A→0.1
B→0.4
の関係がサッパリポンです。
シッカリしてください!

投稿日時 - 2017-04-15 16:36:30

ANo.3

>説明が下手ですみません。
質問の内容が抽象的でどのような結果が欲しいのか読み取れません。

>上記の式が組んであります。
どのセルに「=IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE),"")」と言う式を組みましたか?
VLOOKUP関数は検査値が1つで範囲(配列)の1番左側の列が検索対象です。
提示の式ではK31セルの値が検査値で検索対象は$C$4:$C$23であり最初に見つかった行のC列から数えて4つ目の列(F列)の値が返ります。
C列にK31と同じ値が複数あっても2番目以降は無視されます。

>『○○~××の範囲でAの場合』という条件を付け足したいのです。
「○○~××の範囲」とはセルの範囲でしょうか?、また「Aの場合」とは何のことですか?
模擬データとして$C$4:$G$23の値とK31の値を提示して頂ければ質問の内容が30%くらい分かると思います。

>範囲内には数十個選択肢があります。
K31の値が1つでD1:G1の範囲に"A"、"B"、"C"、"D"と夫々入力されていて、C列で検索し、別の選択肢で抽出すべき列番号を指定したいのでしょうか?
$C$4:$G$23とK31の模擬データと「範囲内には数十個選択肢」の模擬データとセル範囲を提示して頂かないと「A→0.1」や「B→0.4」を導けません。また、条件の検索値が収納されているセル番地も必要になるでしょう。

尚、Excelのバージョンは2007以降と思いますが念のために提示された方が良いでしょう。

投稿日時 - 2017-04-14 19:21:39

ANo.1

=IFERROR(VLOOKUP(K31,$C$4:$G$23,4,FALSE),"")
上記の式が組んであります

>『○○~××の範囲でAの場合』

>A→0.1 B→0.4
の関連はどうなっているの。
ーー
むしろ実例だけを少数例を示して、このセルの値がこうだからこういう結果を導きたいという文章を書け。
どういう関係になるかわからない。
質問者の自信のない数式など挙げずに、数式などは回答者に考えさせろ。
ーー
ExcelのVLOOKUP関数使用例では、場合によって、表引きの部分(セル範囲。第二引数の部分)を2つ3つに分けたい(変えたい)場合がある。
そういう例ではないのか。
https://kokodane.com/kan34.htm
複数の参照表を自由に切り替えて「表引き」をする技
>引数にINDIRECT関数を使います。
エクセル関数の中級以上の解説書には、こういう例がよく載っている。
ーー
エクセル関数を少し続けてやるなら、そういう代表例を開設した本を、前もって読んで今後に備えるべきだ。

投稿日時 - 2017-04-14 18:41:18