• ベストアンサー

エクセル関数を使ってシート1のC列にシート2の分類番号を入れたいのです

エクセル関数を使ってシート1のC列にシート2の分類番号を入れたいのですが IF,VLOOKUP,COUNTIFなどでトライしましたがうまくいきません。 詳しい方に、ご教示願えましたら幸いです。どうぞ宜しくお願いいたします。 シート1のデータ A列に取引先番号、B列に品名およびほかの文字が混じっています。 シート2のデータ A列に取引先番号、B列に品名、C列に分類番号 尚、A列とB列は&検索条件、且つB列はあいまい検索になります。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No4です。 二つ以上列を挿入すると数式が機能しなくなるとのことですが、それは条件が大きく変わることですからおかしくなるのは当然のことです。 どこにどのような列が入るのか二つ以上でいくつまで入るのかなどが具体的に示されないままで、条件が変わったから機能しないでは困りますね。式の意味をよく理解するようにしてから、ご質問ください。

aahwpv278m
質問者

お礼

ご返信どうもありがとうございました。 ご指摘の通り、よく理解してからまた質問させていただきたいとおもいます。

その他の回答 (5)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

表示データ数が多いと動きが重くなりますが、1つの数式で表示するなら以下のような関数になります。 INDEX((Sheet2!$A$2:$A$10=A4)*ISNUMBER(FIND(B4,Sheet2!$B$2:$B$10))*ROW($A$2:$A$10),)

aahwpv278m
質問者

お礼

早々なるご回答大変感謝いたします。 尚、結果が0になってしまいます。 再三恐縮ですが、解決方法がありましたらご教示お願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

シート2では取引先番号が同じでも品名が必ずしも一つではなく、しかもシート1での品名はシート2に記載の品名を一部は含んでいるものの全体の品名はシート2の品名と一致していないということですね。 かなり難しい操作になりますので作業列を作って対応することにします。 例えばシート1ではA1セルに取引先番号、B1セルに品名、C1セルに分類番号の文字列が入力されており、A列とB列の2行目から下方には実際のデータが入力されるとします。 シート2ではA1セルに取引先番号、B1セルに品名、C1セルに分類番号とそれぞれ文字列が入力されておりデータがそれらの下方に入力されているとします。 シート2のD列は作業列として、D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",A2&"/"&COUNTIF(A$2:A2,A2)) 次にシート1では次のようにします。 D2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(ISNUMBER(FIND(INDIRECT("Sheet2!B"&MATCH($A2&"/"&COLUMN(A2),Sheet2!$D:$D,0)),$B2)),INDIRECT("Sheet2!C"&MATCH($A2&"/"&COLUMN(A2),Sheet2!$D:$D,0)),"") 最後にC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNT(D2:P2)=0,"",MAX(D2:P2)) これでC列には分類番号が表示されます。

aahwpv278m
質問者

お礼

ご丁寧なご回答大変感謝いたします。 おかげさまでうまくいきました。 尚、2つ以上列を挿入すると数式が機能しなくなります。 再三恐縮ですが解決方法がありましたらご教示願えれば幸いです。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート1のC1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A1="",COUNTIF(Sheet2!A:A,A1)=0),"",VLOOKUP(A1,Sheet2!A:C,3,FALSE)) この式はA列が空かまたはA列の値がシート2のA列にない場合には空白に、そうでない場合にはVLOOKUP関数でA列のデータをシート2のA列で検索し、該当する行で3列目、すなわちC列の値を表示しなさいとの式です。

aahwpv278m
質問者

補足

早々のご回答感謝致します。 こちらの質問の説明が不足していたようですみません。 下記の通りすこし具体的に補足しますので再回答いただければ幸いです。 ・シート1のレコード内容例 A列(取引先番号)=1234 B列(品名)=富士通パソコンAAAA C列(分類番号)= ・シート2のレコード内容例 A列(取引先番号)=1234 B列(品名)=パソコン C列(分類番号)=3 *シート1の取引番号が1234且つ品名にパソコンの文字が含む場合に限りC列の分類番号の3を入れる。 以上

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

トライしてうまくいかなかった計算式を載せるようにしましょう。 =VLOOKUP(A2,Sheet2!$A$1:$C$4,3,FALSE) これでどうですか? $A$1:$C$4 の部分は、実際の範囲に対応したアドレスを入れてください。

aahwpv278m
質問者

補足

早々のご回答感謝致します。 こちらの質問の説明が不足していたようですみません。 下記の通りすこし具体的に補足しますので再回答いただければ幸いです。 ・シート1のレコード内容例 A列(取引先番号)=1234 B列(品名)=富士通パソコンAAAA C列(分類番号)= ・シート2のレコード内容例 A列(取引先番号)=1234 B列(品名)=パソコン C列(分類番号)=3 *シート1の取引番号が1234且つ品名にパソコンの文字が含む場合に限りC列の分類番号の3を入れる。 尚、トライした計算式はぜんぜんだめで参考にならないのでご容赦おねがいします。 以上

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

具体例を補足してください。 (曖昧検索条件も…。)

関連するQ&A