• ベストアンサー

エクセルの関数の質問です。

初歩的な質問かもしれませんがよろしくお願いいたします。 エクセル2003です。 まず、A~Zまでのテーブルを行に作成して数値を登録します(例:Aが100、Bが200というように) それとは別に(別シートでも可)カレンダーを行に設定して、日付の横に数値(100~***)を入力した際にその横に100なら”A”、200なら”B”というよに表示させたいのですが、 IF関数で =IF(○○=100,"A",IF(○○=200,"B"・・・・・・・・ というように続けると数に限りがあり、Zまで設定できません。 判りにくい説明かもしれませんがよろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

あまり言葉で説明しようとせず,具体的な目に見えるエクセルの姿を話すようにしてみてください。 >テーブルを行に作成して数値を登録 言葉で説明するとすぐに間違える典型的な例ですが,「行に作成する」というのは「横に並べる」という意味です。 Sheet2の A1からA100までに 100,200,300… B1からB100までのセルに A,B,C… のように対応表を縦に(=列に。A列とB列に,という意味です)並べて用意しておきます。 1列目が上から下に昇順で並んでいる方が「より高速」ですが,この程度ならあんまり気にしないで順不同で並べても構いません。 元のご相談の書きぶりのように,行に(横に)並べて作成するやり方もあります。 シート1の A列にカレンダーを作成します B列に100や200を記入したりしなかったりすることにします C列に,B列の記入を見て該当するABCを計算することにします。該当がなかったら,何も表示しない式にします。 C2: =IF(OR(B2="",COUNTIF(Sheet2!A:A,B2)=0),"",VLOOKUP(B2,Sheet2!A:B,2,FALSE)) と式を入れ,カレンダーの下端までコピーして埋めておきます。

yukiono18
質問者

お礼

的確なご指摘と、完璧な回答ありがとうございました。

その他の回答 (2)

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

変換テーブル(表)まで想定されているのならば、「VLOOKUP」でweb検索してみてください。 因みに「B」の変換までしか説明されていないので判断できませんが、変換数値が等差配列になるようならば、表を持たずに他の方法も可能ですので、今後はこのあたりまで記載したほうがよいと思います。

  • okwtun
  • ベストアンサー率14% (2/14)
回答No.2

条件がAからZまで26個あるということですね。 その26個のどれに該当するかを判断するということになれば マクロを組んで実行するということになるでしょうね。 それだったら、ご自身でマクロを組むか 具体的な条件を詳しく書かれれば マクロを組んでくれる人もいると思います。 単純な判定だけのようですから 難しいことはないと思います。

関連するQ&A