• ベストアンサー

エクセル関数 22通りあるものを判別

こんにちわ。エクセル関数を使用してうまく判別する方法があるか教えてください。 1000件くらいあるデータから22通りあるものを自動で判別できないか? A列は2種類、B列は11種類ある文字列からC列で固定値を出したい。   A列  B列  C列 1行 A   あ   ア 2行 B   い   イ 3行 A   う   ウ 4行 B   え   エ 5行 A   お   オ 6行 B   か   カ ・・・・・・・・22行まで 自分で調べて =IF(AND(A1="A",B1="あ"),"ア", IF(AND(A1="B",B1="い"),"イ", IF(AND(A1="A",B1="う"),"ウ", IF(AND(A1="B",B1="え"),"エ", IF(AND(A1="A",B1="お"),"オ", IF(AND(A1="B",B1="か"),"カ", IF(AND(A1="A",B1="き"),"キ", "チェック!!"))))))) などと途中までいい感じでできていたのですが、IF(AND(A1="B",B1="く"),"ク"を入力したらうまくいかなくなりました。 どなたかいい方法をお教えください。

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

  • ベストアンサー
noname#52504
noname#52504
回答No.7

#6です。 どうせ地味にやるなら、小細工せずに徹底すべきでした。 失礼。 =IF(AND(A1="A",B1="あ"),"ア","")& IF(AND(A1="B",B1="あ"),"イ","")& IF(AND(A1="A",B1="い"),"ウ","")& IF(AND(A1="B",B1="い"),"エ","")& IF(AND(A1="A",B1="う"),"オ","")& IF(AND(A1="B",B1="う"),"カ","")& IF(AND(A1="A",B1="え"),"キ","")& IF(AND(A1="B",B1="え"),"ク","")& IF(AND(A1="A",B1="お"),"ケ","")& IF(AND(A1="B",B1="お"),"コ","")& IF(AND(A1="A",B1="か"),"サ","")& IF(AND(A1="B",B1="か"),"シ","")& IF(AND(A1="A",B1="き"),"ス","")& IF(AND(A1="B",B1="き"),"セ","")& IF(AND(A1="A",B1="く"),"ソ","")& IF(AND(A1="B",B1="く"),"タ","")& IF(AND(A1="A",B1="け"),"チ","")& IF(AND(A1="B",B1="け"),"ツ","")& IF(AND(A1="A",B1="こ"),"テ","")& IF(AND(A1="B",B1="こ"),"ト","")& IF(AND(A1="A",B1="さ"),"ナ","")& IF(AND(A1="B",B1="さ"),"ニ","")

m-boro
質問者

お礼

す!す!す!すばらしい!!!です!!! シロートの私でも地道に入力したら回答がでました!! ありがとうございました~ IF ANDを捨てていましたが、&を入れるとできるのですね。

その他の回答 (6)

noname#52504
noname#52504
回答No.6

ん~、アプローチはいろいろ考えられますが、 どんなにスマートな方法でも、実際に使えなければ意味ありませんから、 とりあえずじみ~な方法をご紹介しておきます。 =CHOOSE( IF(AND(A1="A",B1="あ"),1,0)+ IF(AND(A1="B",B1="あ"),2,0)+ IF(AND(A1="A",B1="い"),3,0)+ IF(AND(A1="B",B1="い"),4,0)+ IF(AND(A1="A",B1="う"),5,0)+ IF(AND(A1="B",B1="う"),6,0)+ IF(AND(A1="A",B1="え"),7,0)+ IF(AND(A1="B",B1="え"),8,0)+ IF(AND(A1="A",B1="お"),9,0)+ IF(AND(A1="B",B1="お"),10,0)+ IF(AND(A1="A",B1="か"),11,0)+ IF(AND(A1="B",B1="か"),12,0)+ IF(AND(A1="A",B1="き"),13,0)+ IF(AND(A1="B",B1="き"),14,0)+ IF(AND(A1="A",B1="く"),15,0)+ IF(AND(A1="B",B1="く"),16,0)+ IF(AND(A1="A",B1="け"),17,0)+ IF(AND(A1="B",B1="け"),18,0)+ IF(AND(A1="A",B1="こ"),19,0)+ IF(AND(A1="B",B1="こ"),20,0)+ IF(AND(A1="A",B1="さ"),21,0)+ IF(AND(A1="B",B1="さ"),22,0), "ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ", "シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ") Excel2003で動作確認済。ただし29通りまで。 ※ CHOOSE(N,a,b,…,j,k):{a,b,…,j,k}の中からN番目のものを返す 例えば、{A,か}のとき、 IF(AND(A1="A",B1="か"),11,0)=11,その他のIFは0 ⇒0+0+…+0+11+0+…+0+0=11 ⇒CHOOSE(11,"ア","イ",…,,"ナ","ニ")="サ"

noname#101087
noname#101087
回答No.5

関数 "CONCATENATE", "MATCH" "INDEX" を使うシンプルな一例。 [定義表] a b  c d ---------------------- A あ ア Aあ ← =CONCATENATE(a1,b1) B あ イ Bあ A い ウ Aい B い エ Bい A う オ Aう B う カ Bう A え キ Aえ B え ク Bえ A お ケ Aお B お コ Bお A か サ Aか B か シ Bか A き ス Aき B き セ Bき A く ソ Aく B く タ Bく A け チ Aけ B け ツ Bけ A こ テ Aこ B こ ト Bこ A さ ナ Aさ B さ ニ Bさ ---------------------- [例題] 3   ウ Aい Aい…セル内データ (セル番号は d25) 3 … =MATCH(d25, d1:d22, 0) (セル番号は a25) ウ … =INDEX(c1:c22, a25)

  • age_momo
  • ベストアンサー率52% (327/622)
回答No.4

まあ、普通はC列やD列を作業用に割り当てて処理した方がメンテが しやすいですし、表示などの自由が利きやすいです。後でその行を 隠せばいいですし。。。とりあえず、1個のセルで済ませるとした時に 私ならこうしますね。 A行    B行   C行 項目   姓   結果 歴代   安部 歴代   小泉 名前   森 歴代   小渕 名前   橋本 歴代   星野 副総理  森 歴代   小泉 =IF(A2="名前",MID("康夫 晋三 純一郎喜朗 恵三 龍太郎",FIND(B2,"福田 安部 小泉 森  小渕 橋本 "),3),IF(A2="歴代","第"&FIND(B2,"福田 安部 小泉 森  小渕 橋本 ")+20&"代総理","#VALUE!")) 結果はこうなります。 項目   姓   結果 名前   福田  康夫  歴代   安部  第24代総理 歴代   小泉  第27代総理 名前   森   喜朗  歴代   小渕  第33代総理 名前   橋本  龍太郎 歴代   星野  #VALUE! 副総理  森   #VALUE! 歴代   小泉  第27代総理 FINDを使った場合、検索文が見つからないとエラーを返します。 見た目を合わせるためにIFで偽であったときにも#VALUE!が 表示されるようにしました。それぞれの関数がどういう働きをするかは 別途、調べてください。

m-boro
質問者

お礼

ありがとうございました。早速試してみたのですが、なんせ初心者なもので文字とか変わってしまうとうまくいきませんでした。また勉強してみますが、お暇でしたら下の表だったときにC列に入る式を教えていただけたらありがたいです。m(_)m A列  B列  C列(結果) A   あ   ア B   あ   イ A   い   ウ B   い   エ A   う   オ B   う   カ A   え   キ B   え   ク A   お   ケ B   お   コ A   か   サ B   か   シ A   き   ス B   き   セ A   く   ソ B   く   タ A   け   チ B   け   ツ A   こ   テ B   こ   ト A   さ   ナ B   さ   ニ

noname#71905
noname#71905
回答No.3

すみません、最後の行(A1とB1を間違えました)以下のように訂正です D列…対応表の行を抽出 =IF(A1="A",2,IF(A1="B",3,"×") 下にコーピー

noname#71905
noname#71905
回答No.2

{IF は7つまでしか( )が使えないようです} 参考です 対応表を作って、そこから HLOOKUP を使った例です。 【対応表】以下の範囲をあらかじめ「対応表」と定義(名前の定義)しておきます。   あ い う え お か き く け こ・・・・・ A ア   ウ   オ   キ   ケ   サ・・・ B   イ   エ   カ   ク   コ・・・・・ 【データ】   A列  B列  C列  D列(行の判別) 1行 A   あ   ア  2 2行 B   い   イ  3 3行 A   う   ウ  2 4行 B   え   エ  3 5行 A   お   オ  2 6行 B   か   カ  3 ・・・・・・・・22行まで A列…2種類 B列…11種類 C列…対応表からの結果 =HLOOKUP(B1,対応表,A1,FALSE) 下にコーピー D列…対応表の行を抽出 =IF(B1="A",2,IF(B1="B",3,"×") 下にコーピー

m-boro
質問者

お礼

ありがとうございました。IFは7つまで()が使えないことが判明して謎が解決しましたが、なんせ初心者ですので、HLOOKUPとか勉強しないと・・・・

  • kata_san
  • ベストアンサー率33% (423/1261)
回答No.1

ネットで「エクセル」と検索する。

関連するQ&A