• ベストアンサー

エクセルである項目と時間内での紐付け

エクセルである項目と時間内での紐付けエクセルにて、データをまとめております。 その際、ある商品の型番のデータシート(Sheet1)と、型番が同じでもバージョンが更新された日付のデータシート(Sheet2)の2つがあります。 この更新日のあるSheet2を用いて、元のSheet1の方にバージョンデータを記入するような うまい方法はありますでしょうか? 具体例としては画像のような形になります。 数が膨大でもあるため、手入力等では大変となってしまい、皆様のお知恵を貸していただきたいです。 よろしくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! ↓の画像のように左側がSheet1・右側がSheet2とします。 Sheet1のC2セルに =IFERROR(INDEX(Sheet2!C$1:C$1000,MATCH(MAX(IF((Sheet2!A$1:A$1000=A2)*(Sheet2!B$1:B$1000<B2),Sheet2!B$1:B$1000)),Sheet2!B$1:B$1000,0)),"") これは配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → Sheet1のC2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをフィルハンドルで下へコピーすると 画像のような感じになります。 ※ とりあえずSheet2の1000行まで対応できる数式にしていますが、 データ量が極端に多い場合はおススメできません。 (3000行程度であれば大丈夫だと思います。)m(_ _)m

ryaw1215
質問者

お礼

そのIFとMAXの使い方が思いつきませんでした! ありがとうございます。

その他の回答 (1)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

やりたいことが、よくわかりませんけど、VBAのプログラムを作成しましょう。 手作業でやっていることを、そのままプログラムで表現すればいいだけです。 人間の手でやれば、膨大なデータと思えても、プログラムでやれば、たぶん1分以内で終わるでしょう。 ただし、プログラムの作成に、3,4日とか、質問者さんの能力しだいで、もっとかかるかもしれませんけど・・・。

関連するQ&A

専門家に質問してみよう