• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データAのキーNo.とデータB2列No.を見てデータBの受注No.をデータAにもってくる。)

データの結合に関する関数の作成方法

このQ&Aのポイント
  • データAとデータBのキーによる結合を実現する関数の作成方法を教えてください。
  • データAの得意先No.とデータBの集計No.を結合し、データBの受注No.をデータAにマージする方法を教えてください。
  • データAとデータBの対応するキーを用いてデータを結合する関数の作成手順を教えてください。

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

  • ベストアンサー
  • ok2007
  • ベストアンサー率57% (1219/2120)
回答No.1

不明点がいろいろとあるので、補足をお願いできますか。 使用ソフトはエクセルでしょうか。 エクセルだとして、バージョンは何でしょうか。 列を番号で表示させているということでしょうか。 データAの1列目には、データBの集計No.か仮受注No.かのいずれかが必ず入るということでしょうか。 集計No.や仮受注No.の並び順には規則性がありましょうか。 データA、Bそれぞれの行数はおおよそどのくらいでしょうか。

ssddqq8765
質問者

補足

ご返答ありがとうございます。 使用ソフトは、エクセルです。 xpですので、2003辺りです はい、実際はA・B・C・・・・・・です 集計No.か仮受注No.のどちらかが入ります。場合はエラー表示にします ここでは、簡単にかきましたが、実際は データA(実績データ) 得意先No. を 得意先No.+商品コード+納品日+金額の数字に変えています。 (文字列) (なぜかというと得意先No.には集計No.(受注No.の集合体)・受注No.単体) データB(検収データ) 検収データには集計No.と受注No.が入っており、これも A列(集計No.)集計No.+商品コード+納品日+金額の数字に変えています。 (文字列) B列(仮受注No.)受注No.+商品コード+納品日+金額の数字に変えています。 (文字列) C列 実際の受注No.です 並び順には規則性はありません。 多い時で5,000行~10、000行ある場合があります この後データAに受注No.をもっていき、後にデータAに検収No.をもっていきます。 何卒よろしくお願い致します。

その他の回答 (4)

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.5

#3です。 失礼しました。IFERROR は2007以降でしたね。ISERRORに変えてみました。 =IF(ISERROR(VLOOKUP(A2,データB!$A$2:$C$99999,3,FALSE)),VLOOKUP(A2,データB!$B$2:$C$99999,2,FALSE),VLOOKUP(A2,データB!$A$2:$C$99999,3,FALSE)) こんな感じです。

ssddqq8765
質問者

お礼

ありがとうございます。 効率的作業ができました

  • ok2007
  • ベストアンサー率57% (1219/2120)
回答No.4

minosenninさん、フォローありがとうございます。 ただ、IFERROR関数はExcel2007から使用可能となっており、ssddqq8765さんがお持ちになっているだろうExcel2003では使えないんです・・・。 回避手段があると思うのですが、いかがでしょうか。 ※ ssddqq8765さん、ご質問のスレッドを連絡掲示板のように使ってしまって、ごめんなさい。

ssddqq8765
質問者

お礼

ありがとうございます。 早速ためしてみます。 また解らない事が有りましたら、御返事 申しあげます。

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.3

横から失礼します。 こんな式もありかなと書いてみました。もしOK2007さんの式でてこずられる場合はお試しください。 Sheet1のB2に =IFERROR(VLOOKUP(A2,データB!$A$2:$C$99999,3,FALSE),VLOOKUP(A2,データB!$B$2:$C$99999,2,FALSE)) 下へ必要数ドラッグ

ssddqq8765
質問者

お礼

ありがとうございます。 早速ためしてみます。 また解らない事が有りましたら、御返事 申しあげます。

  • ok2007
  • ベストアンサー率57% (1219/2120)
回答No.2

No.1の者です。そういう状態であれば、次のような数式でいかがでしょうか。 データAのあるシートのデータは1行目から存在し、データBのあるシート名を「データB」として、データAのあるシートのB1セルに次の数式を入力して、下方向にコピー&ペースト。 =IF(ISERROR(MATCH($A1,データB!$A:$A,0)),INDIRECT("データB!C"&MATCH($A1,データB!$B:$B,0)),INDIRECT("データB!C"&MATCH(A1,データB!A:A,0))) 実際の状態がちょっと掴めなかったので(申し訳ありません)、適宜変更してください。

ssddqq8765
質問者

お礼

ありがとうございます。 早速ためしてみます。 また解らない事が有りましたら、御返事 申しあげます。

関連するQ&A