• ベストアンサー

Excelで、VBAのcase文のような使い方のできる関数(セルに入力して使う関数)はないでしょうか。

タイトルの通りなのですが、 たとえば、 A1のセルの値が 1 だったら B1は "仕入先" A1のセルの値が 2 だったら B1は "得意先" A1のセルの値が 3 だったら B1は "社員" のようにしたいのです。 if文を駆使すれば可能なのは理解しているのですが、もう少しスマートに式を書けないかな、と思って質問しました。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

条件が少ない場合、 =IF(A1<>"",LOOKUP(A1,{1,2,3},{"仕入先","得意先","社員"}),"")や=IF(A1<>"",CHOOSE(A1,"仕入先","得意先","社員"),"") 条件が多い場合、 =IF(A1<>"",VLOOKUP(A1,$C$1:$D$m,2FALSE),"") ・関係表リストを別に設定します。  C1(1),D1(仕入先)  C2(2),D2(得意先)  C3(3),D3(社員)  Cn(x),Dm(yyy)

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

VLOOKUP関数の回答が出ていますので、 =CHOOSE(A1,"仕入先","得意先","社員") または E1:E3 に "仕入先","得意先","社員" と順に入力しておき、 =INDEX(E1:E3,A1)

すると、全ての回答が全文表示されます。
  • free-goo
  • ベストアンサー率18% (28/155)
回答No.1

VLOOKUP関数では ダメなのでしょうか?? 別の場所に、マスターみないなものを作成する。下記 例ですが H1に 1 I1に「仕入先」 H2に 2 I2に「得意先」 H3に 3 I3に「社員」 B1に 関数 =VLOOKUP(A1,H1:I3,2,FALSE) と、云う具合ですが・・・・VBAでは、ないですが・・・

すると、全ての回答が全文表示されます。