• ベストアンサー

Excelで、場合に応じた処理をする関数ありませんか?

本日2回目の質問で恐縮です。 Excelで、セルA1に「条件」が入力されているとき(条件は日本語の単語)、 その条件に応じて、セルB1の値を変えたいのですが、IF文だと条件が多いとき だらだら長くなってしまいますよね。 例)A1=車・・・B1=200万円、A1=家・・・B1=2,000万円 といった感じ 他に何かいい方法はないでしょうか? 教えてください。

  • 8boy
  • お礼率35% (47/134)

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

  • ベストアンサー
  • omusupa
  • ベストアンサー率61% (115/186)
回答No.2

本日2回目のomusupaです。(なんか私って暇人?) 例のような感じで、IF関数では長くなってしまう場合は 「VLOOKUP」関数を使われてはどうでしょうか? 別のシート(又は同じシートの表に影響されない個所)に    D         E 1 車   200万円 2 家   2000万円 と入力し、 =vlookup(a1,D1:E2,2,0) とB1に入力してはどうでしょうか?

8boy
質問者

お礼

ありがとうございます。 ただ、私の希望としては、IF文に似た形で、もっと省略出来る関数があるといいのですが。

その他の回答 (5)

  • omusupa
  • ベストアンサー率61% (115/186)
回答No.6

再びomusupaです。 わたしも、kenzo-2000さんと同意見です。 関数はネストといって関数の中には、7レベルまでしか、関数は使えません。 つまり、 車、家、とその項目が、8個以下であれば、IFでやられると良いと思います。 しかし、それ以上多くなる場合は、やっぱり、別に表を作って、「VLOOKUP」が 一番良いと思います。

回答No.5

「IF文に似た形」とありますが、「他に何かいい方法はないでしょうか? 」ということなので「VLOOKUP関数」を使用しました。 また、IF文なら3つ程度の分岐がせいぜいだと思います。 それ以上になると真の場合/偽の場合の条件文を書くにあたって、頭が混乱してくることになりますよ。 条件と真の場合と偽の場合、それぞれを「,(カンマ)」で区切っていくわけですから・・・・ 省略するなら「VLOOKUP」以外は考えられません。

回答No.4

vlookup関数を使えばよいかとおもいます。 例: E  F 1車 200万円 2家 2000万円 このような相対表を作っておきます A  B 1車 =IF(A1="","",(VLOOKUP(A1,$E$1:$F$2,2,1))) 2家 =IF(A2="","",(VLOOKUP(A1,$E$1:$F$2,2,1))) これで自動的にA1に車と入ればB1に200万円と表示されます。 A1="","",←この部分は何も値が入っていないときにエラーが出ないようにしているものです。 言葉で説明するとA1に何も入っていないときは何も表示しない。そうでなければ相対表から値を抜き出して表示する。という感じです。 あとはA列を入力しやすいようにしてあげればいいかもとおもいます。

回答No.3

一回目の内容は見ていません。あしからず。 さて、やりたいことは大体分かりますが、それを一つのセル内で処理させるのは非常に辛いものがあります。(等幅フォントでご覧下さい)   A B C D 1 家 ○ 車 200 2     家 2000 3     庭 100 ○ = VLOOKUP(A1, $C$1:$D$3, 2, FALSE)と入力 別のセルにデータベースみたいなものを作成し、 B1セルには「VLOOKUP関数」を使用し、作成したデータベースみたいなものから抽出させるのがベストと思われます。

8boy
質問者

お礼

ありがとうございます。 ただ、私の希望としては、IF文に似た形で、もっと省略出来る関数があるといいのですが。

  • guil
  • ベストアンサー率29% (12/41)
回答No.1

目的とされていることがちょっとわからないので的を射ているかはわかりませんが「LOOKUP」関数はいかがでしょうか? 別シートにデータベース的な表を作っておいて、入力された文字や数字に対応した値や文字列を表示させることができます。 関数の使い方を書くといっぱいになってしまうので、EXCELの関数ヘルプを見て下さい。

8boy
質問者

お礼

ありがとうございます。 ただ、私の希望としては、IF文に似た形で、もっと省略出来る関数があるといいのですが。

関連するQ&A

  • Excelの関数について教えてください!

    エクセルの関数について教えてください! Excelで複数の条件に合った値を返したいのですが、やり方がわかりません。 教えてください。 例えば、Aのセルに6、Bのセルに15と入力します。 条件は、 0<A≦5 のとき 0<B≦10・・・・・(1) 10<B≦20・・・・(2) 20<B≦30・・・・(3) 5<A≦10のとき 0<B≦10・・・・・(4) 10<B≦20・・・・(5) 20<B≦30・・・・(6) この場合に、条件に一致している(5)という値を返す方法を教えてください。 宜しくお願いします。

  • エクセルのIF関数とVLOOKUP関数について教えてください。

      A B C 1 A1 B1 C1 2 A2 B2 C2 ・ ・ ・ 上記のような表があり、セルX、Yに入力した値が2つの条件に合致した場合、セルZにC列の値を返すような数式を作っています。 たとえば、セルXの値がA1より小さく、かつ、セルYの値がB1より小さい場合にはセルZにC1の値を表示する、という数式を作りたいのです。 (ちなみにAn、Bn、Cnにはそれぞれ数字が入ります) =IF(AND(X<=A1,Y<=B1),C1,IF(AND(X<=A2,Y<=B2),C2,・・・ AND関数を利用してこのように数式を入れると、途中まではうまくいくのですが、引数が多いため途中からエラーが出てしまいます。 (引数の数は10個以上あります) IF関数とVLOOKUPを組み合わせればいいというところまではわかるのですが、どのように条件設定をすればいいのかがわかりません。 エクセル初心者で恐縮ですが、どなたか詳しい方いらっしゃいましたらご回答よろしくお願いいたします。

  • エクセル関数

    こんにちは、エクセルでこんなこと出来ますか?教えてください。  例 acbadcbba 935841621 セルにa~dの文字を入力し、それに対する値を入力していきます。  順次入力していきますが、常にa~dの値を別なセルに表示させたいのですが、可能でしょうか?  上記の例では、aは1 bは2 cは1 dは4 です。 可能でしたら、方法を教えてください。よろしくお願いします。

  • エクセル 関数で出た値を別の関数で使う場合

    エクセルでのセルである関数で出た値が出ています。 別のセルでそこに出ている値を使って関数を入れたいのですが、その方法がわかりません。 例えば  あるセルにAと入っています。しかし、それはある関数の結果として出ています。別のせるに =if(A4=A,3,if(A4=B,2,if(A4=C,1,"")))と入れています。 でも結果は空欄です。どうしたらいいのでしょうか?

  • Excelに関する質問(IF関数のOR連結)

    ExcelでIF関数を3条件以上つなげる場合、どうすればよいですか。 例えば、A1のセルに「A」と入ったらB1のセルには「あ」、同じく「B」と入ったらB1のセルには「い」、同様に「C」と入ったらB1のセルには「う」…のように、A1の入力値(文字列)に対応して、B1の値(文字列)を変化させていくというものです。 05年10月にほぼ同じ質問が出され既に解決済みになっていますが、それを参考に条件を増やしたところ、書式が違っているせいか数式の入力を受け付けません。 <2条件までは成功>※「B1」セルに与えた式 =IF(A1="A","あ",IF(A1="B","い")) <3条件以上は失敗>※「B1」セルに与えた式 =IF(A1="A","あ",IF(A1="B","い"),IF(A1="C","う"),IF(A1=…)) 恐らく初歩的な書式ミスだと思いますが、初心者ゆえ分かりません。 ちなみに今のところ条件は5つです。 ご指導のほど宜しくお願い致します。

  • エクセルに詳しい方、お願いします。

    エクセル(2003)についてですが、セルAかセルBに値が入力されると、その行A~Uまで塗りつぶしされるというようなことが自動(関数を使うなどして自動で)でできる方法がないか、探しています。また関数に書式を指示する単語など、わかりません。お手数ですが、お答えいただけると助かります。C~Uまで値が入っているので条件書式だと、うまく使えませんでした。参照したいのはAとBなのです。 長くなってしまい、質問文もわかりにくいかもしれませんが、よろしくお願いします。

  • エクセルのIF関数について

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

  • エクセルの関数について

    以下のようなことを実現できるエクセルの関数を教えてください。 <状況> ・ひとつのセルに、複数の数字が「,」区切りで入力されている。  (仮にA1セルとします) ・B1セルに検索値が入っています。 <実現したいこと> B1の値が、A1に含まれるとき、C1に”○”を返す。 このときのC1に入力すべき関数を教えてください。 <具体例> A1:12,13,14 B1:12 C1:○

  • エクセル関数について教えてください

    エクセル関数について教えてください! ある特定のセルに入力された値が、範囲指定された中のいずれかのセルの値と一致する場合は「○」、一致しない場合は「×」を記載する方法 (例) A1のセルに「0001」という値があります B1:B10の範囲指定したうちのいずれかのセルに「0001」という値がある場合は「○」、ない場合は「×」を記入 どなたかよろしくお願いしますm(_ _)m

  • エクセル 理論関数について。

    エクセル理論関数の質問です  a1セルの値-10・10・10・-10  b1セルの値50・-50・50・-50 上記のような数が変動します、a1・b1セルを参照させて数幅を計算させたいのですが?。 例1 a1セルに-10とb1セルに50の幅は=abs(a1)+abs(b1)=60 例2 a1セル10・b1セル50の場合の幅は40 例3 a1セル-10・b1セル-50の場合は-40 c1セルに上記のような数値になる理論式を入力したいのでっすが、上手にできません、教えて頂けないでしょうか?

専門家に質問してみよう