• ベストアンサー

エクセル 1=みかん、2=りんごと20項目ある場合

初心者です。あきれないで教えて下さいませ。 タイトルにも書きましたが、20項目あるものを数字を入れると自動的に項目名になる方法を教えて下さい。 その後、ビボットを使って集計をします。 1.りんご 2.みかん : 20.ぶどう どうぞ 宜しくお願いします。

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

  • ベストアンサー
noname#158368
noname#158368
回答No.3

#2です。 関数に慣れていないと実用的な改造方法が分からないかもしれないので、一応簡単な解説をつけます。 なお、以下の式は全て半角です。 最初のイコールは、「これは式である」という宣言です。書かないと動きません。 IF(C1="","",~) については、書いたとおりです。 「もしC1が空欄なら、この欄は何も表示しない。そうでなければ以下の処理をする」と書いてあります。 最後にカッコで閉じるのを忘れるとエラーになります。 不要なら削除しても全く問題ありません。 VLOOKUP($C1,$A$1:$B$20,2,FALSE) ですが。 VLOOKUPは縦向きに元データを並べたときに、指定のデータを抽出する関数です。 大まかな意味は、 VLOOKUP(検索値,元データの範囲,元データから抽出するデータの列,検索の型) になります。カンマ区切りです。 以下、解説します。 <検索値> この場合、1~20の数字をどのセルに入力するかを指定します。この例ではC1に入力したので、C1と書きます。 $C1というのは、コピーしたときに意味があります。 D列だけにデータを出力するなら単にC1でいいですが、"$"をつけると、C列固定になります。 以下で必要なのでここで言いますが、$を直前につけると、その値が固定されます。逆に付けないと、コピーなどで値が変化します。 $A$1なら、「とにかくどこにコピーしようとA1を見ろ」と言う意味です。 A$1だと、「A列、B列は変わってほしいが、とにかく1行目を見るように」という意味になります。 試しにE列に数式をコピーして、$がついている場合とついていない場合を見比べてください。$なしだと、C1がD1に変わるはずです。 <元データの範囲> 1~20とりんご、みかんをどこに入力したかを指定します。 注意するのは、数字だけとか、りんご、みかんだけでは意味がない点です。例えばこれに、りんご100円、みかん200円などと加えるなら、A1:C20とします。 A1:B20のコロン(:)は、範囲を表します。つまりA1~B20のことです。コロンは半角です。セミコロン(;)ではダメです。 キーボードでひらがなの「け」が印字されているキーです。 このデータは動かさないことが前提なので、$A$1:$B$20として、式をどこに移動しようと、常に元データを参照するようにしています。 <元データから抽出するデータの列番号> 元データの表の中で、左から何列目のデータを表示したいのかを指定します。これは数字です。 「品目」などと行のタイトルをつけたとしても、数字で指定します。 「りんご」は左から2列目に書いてあるので、"2"です。 仮に3列目に値段を書いて、これを参照したいなら"3"とします。 <検索の型> trueかfalseで指定します。 trueの場合、検索値と一致しない場合、入力値未満で最も大きい数値が指定されたものと扱います。 falseは完全一致です。 たとえば、C列に「2.5」と入力した場合に差がでます。 trueの場合、元データに2.5は存在せず、2.5未満で最も大きい数値は2なので、「みかん」になります。 falseの場合、元データに2.5がないので、エラーを出力します。 この項目に限り、省略しても構いません。この場合、直前のカンマは不要です。trueを指定したものとみなされます。 <ちなみに> 元データが2列なのが前提で作ってあります。 100円なども入れるなら、次のようになります。 元データ:A1~C20 数値入力:D1~D20 りんごなど:E1~E20に出力 値段:F1~F20に出力 E1に下記の式を。 =IF(D1="","",VLOOKUP($D1,$A$1:$C$20,2,FALSE)) F1に下記の式を。 =IF(D1="","",VLOOKUP($D1,$A$1:$C$20,3,FALSE)) あとは縦にコピーします。 【変更点】 範囲がA1:C20になった。 F1の中の列番号が3になった。 C列を値段に使ったので、全部1列ずらしました。

noname#60089
質問者

お礼

詳しい解説付きで教えていただきましてありがとうございました。 意味が良くわかりました。 おかげさまで出来ました!!嬉しい~デス。 今後またお世話になると思いますので どうぞ宜しくお願いします。 早々の回答も感謝しております。 ありがとうございました。

その他の回答 (2)

noname#158368
noname#158368
回答No.2

元データは数字がA1~A20、りんごがB1~B20とします。 これはあらかじめ入力しておきます。 これを削除すると、この方法の前提が崩れますので念のため。 実際に出力する欄は、数字をC1~Cxxに入力するものとし、りんごなどの表示はD1~Dxx。 例えばC1に"2"と入れたら、D1に"みかん"と表示します。 D1に次のように入力します。D2以降はコピーで。 =IF(C1="","",VLOOKUP($C1,$A$1:$B$20,2,FALSE)) 必要に応じて、$C1の"$"を消したり、C1を$C1に変えたりします。 これで一応出るには出ます。 IF(C1="","",~) というのは、Cが空欄のときに、Dを見かけ上空欄にするためのものです。

回答No.1

20項目を全部書くと多いので、3項目あるのを例に書きます。 A1~A10のセルに数字を入れる B1~B10のセルに項目名を表示するとします。 B1~B10のセルに以下のような式を書きます。 =IF(A1=1,"りんご",IF(A1=2,"みかん",IF(A1=3,"オレンジ",""))) A1~A10のセルに1と入力すれば、入力した隣のセル(B列のセル)に"みかん"と表示されます。 A1~A10のセルに2と入力すれば、入力した隣のセル(B列のセル)に"みかん"と表示されます。 A1~A10のセルに3と入力すれば、入力した隣のセル(B列のセル)に"オレンジ"と表示されます。

noname#60089
質問者

お礼

早々の回答ありがとうございました。 項目数が少ないときに利用すれば便利ですね。 参考にさせていただきます。

関連するQ&A