• 締切済み

新規シートと既存シートには最初のA列にファイル名が登録され、B列からI

新規シートと既存シートには最初のA列にファイル名が登録され、B列からI列までそのファイル名の内容が登録されています。J列が更新日です。 新規シートには重複データもあり、その重複の中には新規に更新したデータもあります。 重複データーと更新日が同じなら無視し、重複データでも、新しく更新されていれば、 既存データの更新日を赤色で上書きしK列I列のデーターも赤色で上書き更新されます。 重複でも既存データの更新日が空白で新規データに更新日が記録されていれば、赤色で書き換えます。 また、新規ファイルが新たに追加されるとその1行が青色で既存ファイルに挿入追加される仕組みを作っています。 シート1(新規データ)でReDimでそれぞれの列を覚えさせて 二重配列で設定。 シート2(既存データ)でFor文とIf文でループして処理させてます。 でも、ループしていても更新されません。 シート1もシート2も主キーはA列です。 A     B     C    D    E    F    G    H     I      J    K     L   2010     wtyd  dee  rtyu  rty  frty  fg  rtyu  erty  2010.07.15  1456  4500       TYU   gyu   tyu   uio   uio   fgh   hui    jui    2010.07.15  1456  4500 2010    XYZ   aidea  deai  deated  edet  YYYY   ert  yui  2009.08.10   980   3450 新規シートと既存シートは内容は異なりますが、A列とJ~L列は共通です。 新規シートのJ~L列が新しければ既存シートのJ~L列は赤色で上書きされます。 また、A列が追加されると、既存ファイルの1行追加されA列のデーターとJ~L列が青色で書き込まれます。 どう質問したらいいか分からなくて、上記は丸投げになるのでしょうか。 うまく動作しなくて悩んでいます。 回答は直ぐには出せませんが、必ず返信します。 よろしくお願いします。

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

質問内容が分かり難いのですが、以下にまとめてみました。 (1)主題:シート1の内容でシート2を更新する。 (2)シート1のA列には同名のものが複数存在する場合がある。   この時は更新日が最新のものを優先する。 (3)シート1のA列とシート2のA列が一致した場合  (a)シート1の更新日(J列)>シート2の更新日(J列)の場合    シート2のI、J、K列をシート1の同データで上書きする。    その際は赤字にする。  (b)上記条件以外は無視する。 (4)シート1のA列とシート2のA列が一致しない場合  新規データとみなして、シート1のA~L列を追加する。  この時は青字にする。 この仮定だとすると、(2)を実現するために並べ替えを行い、 同じ名前が続く場合には最後の行を有効にします。 このデータを元にシート2を検索して、更新か追加かを決めます。 よって、配列を使う理由はないと思いますが、シート1を並べ替え てはいけないのでしょうか? 尚、検索にはFindを使います。自分でA列を探さないでください。 量が少なければ良いのですが、速度が全然違います。 ForとIfで処理するのは誰でもそうなります。結果が出ないとの ことですが、複数シートを扱う場合はターゲットを明示的に指示 しないと、思っている所のデータが更新されません。 この辺を見直してみてください。

関連するQ&A

  • シートAとシートBの値を比較する演算式を教えてください

    こんにちは。 シートAとシートBと言う2つのシートがあります。 それぞれが、カンマ区切りのファイルで、20×20程度の行列になってます。 このシートAとシートBですが、差分が発生してしまい、差分に色を塗ることをしたいと思ってます 一部追加列が発生しているため、追加列にも、同じ色でいいので、つけたいと思ってます。 そこで、この2つのを比べて、同じ行、列で、シート間で差異があれば、Bシートに色をつける。 と言う演算式を教えていただけますでしょうか マクロがよくわからないため、演算式で出来ると嬉しいです よろしくお願いします。

  • Excel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

    Excel2000です。 Sheet1のA列・B列・C列・・・にデータが入っています。 Sheet2のA列・B列・C列・・・にデータが入っています。 Sheet1のA列とSheet2のA列は、似たようなデータが入っています。 Sheet1のB列とSheet2のB列も、同様です。 C列以降のデータは、シート間で全然関係ありません。 Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、 を知るには、どうすればよいですか。 C列以降の列のデータは、比較する際に使いません。 つまり、 Sheet1のA = Sheet2のA かつ Sheet1のB = Sheet2のB であるような行を知りたいのですが、 どうすればよいのでしょうか。

  • エクセルのシート(1~12)にA列に=CODE(B2) B列に顧客名(

    エクセルのシート(1~12)にA列に=CODE(B2) B列に顧客名(文字列)が各約700件ぐらい入力されています。 新しくDBシートとして1~12のシートのB列を統合したものを作りたいのですが、DBシートのB列にどのような式にを入れればよいですか? ちなみにDBシートのC列には重複を検索するために=IF(COUNTIF(B:B,B2)>1,"○","")を入れるつもりです。 今後、このDBを基に顧客管理をしてゆきたいのですが、今までのシートの情報を持ってきたいのですが、うまくゆきません。 解決方法をよろしくお願いいたします。

  • マクロについて教えてください

    エクセルで作った表のマクロを作りたいと思っています。 抽出した新規のデータと更新データを比較して、 重複することのないデータを作りたいのです。 抽出したデータのファイル名は、どちらも「EXCELデータ」となっています。 シート名はどちらも「データ」です。 表はどちらのシートとも、A列からJ列まであります。 (データの並び順は同じです。) 両方のシートから、下記1~3の条件のデータを取り出して、 新しいシートに書き出したいと思っています。 A     B   C     D      E    F    G     H   I    J 番号 名前 区分 ジャンル 決定日 締切日 コード 社名 価格 区分 1 C列とG列を削除する 2 J列に「1」が記入してあるものを抽出する 3 B列に「初回」と言う文字が含まれているものを、抽出する。 新規分と更新分のデータをA列で比較し、 重複しているものについては色をつける。 というようなものを作りたいのです。 出来れば、ファイルやシートの名前を変えないで作りたいのですが、 変更をすることも可能です。 どなたか教えてください。宜しくお願いします。

  • 1日の売り上げ商品名が並ぶシート(1)A列(1000品、重複あり)から

    1日の売り上げ商品名が並ぶシート(1)A列(1000品、重複あり)から、商品名(約50品目)を抽出し、シート(2)A列-B2から隙間なく順番並べていくにはどうしたら良いですか?

  • excelVBA でA+B列をファイル書き出し

    excel2003の VBA で、開いているシートのA列(項目行)とB列(データ)を抜粋してB列の1行目のセルに入力されているデータをファイル名として新しいEXCELファイル(B列の1行目のセルに入力されているデータ.xls)として書き出したいのです。また、B列以降も、A列+C列で1ファイル、A列+D列で1ファイル・・・のように列にデータが記載されているまでファイルとして書き出したいのです。 このような書き出しVBAを教えて下さい。宜しくお願いします。

  • エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列

    エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列目(A列)の日付を一致させて1つのワークシートに纏める方法を探しています。 2つの時系列データがあるのですが、データA(為替データ)とデータB(株式データ)のデータ管理方法が下記のように異なっています。 データA(為替データ)・・・1週間のうち6日間(月曜から土曜まで) データB(株式データ)・・・1週間のうち5日間(月曜から金曜まで) おのおのワークシートのA列に日付が入っています。 データAは月曜から土曜までなので、1週間に6行要します。データBは月曜から金曜なので1週間に要するのは5行です。従って、単純にこの2つのデータを張り合わせるだけでは(データBをデータAのシートに張り合わせた時)、1週間に要する行数が違うので1行ずつずれてしまいます。 1週間に要する行数の違いだけでなく、マーケットが休みの日はデータそのものがないため日付が存在しません。(マーケットの休みもおのおの別の日でバラバラです。) これらの理由により、ただ単に張り合わせるだけだとずれが広がるばかりです。 そこでデータAの日付とデータBの日付を認識して一致させる関数を教えて欲しいと思います。 データAの構成はA1=日付、B1=始値、C1=高値、D1=安値、E1=終値で、データBの構成も同じです。 データAのF1にデータAのA1と同じ日付のデータBの行を貼り付るように設定したいと思っています。 説明が分かり辛い場合は補足しますので、その際はご指摘下さい。 宜しくお願いします。

  • I列でHITさせたデータのみ、別のシートにコピーしたい。(マクロ)

    エクセルでのご教授をお願いします。 シート名「データ」のA3からM159までに、データが入力済みです。 ただし、今後、列方向・行方向ともにデータが増える可能性があります。 I列の入力値は、現在、「1・2・3・4」のどれかです。 今後、「5・6」と増えてゆく可能性もありますが、とりあえずそれは後ほど考えます。 やりたいことですが、 I列のデータが「1」だけのものをまず抽出し、 抽出されたデータの、A列・B列・C列・H列・J列・K列・L列のみを、シート名「1」の3行目以降にコピーしたいのです。 同じくI列のデータが「2」だけのものを抽出し、 抽出されたデータの、A列・B列・C列・H列・J列・K列・L列のみを、シート名「2」の3行目以降にコピーしたいのです。 これをI列に入力されるデータそれぞれに(現在は4まで)をマクロで作成したいのです。 そして、私ではどうしても解決できなかったことなのですが、 例えば「1」シートの最終データの次の行に、集計欄として、データが何件あるかを数えたいのです。 その場合、I列のデータがそれぞれのデータごとに何件あるかが分からないために、どの行に集計欄を作成しておけば良いのか、どうやって判断させたら良いのでしょうか。 申し上げていることを理解していただけておりますでしょうか。 もし意味不明な箇所がございましたら、補足で尋ねていただけると助かります。 よろしくお願いいたします。

  • エクセルでA列B列C列の重複するレコードのみを表示

    エクセルのA列とB列とC列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列とB列とC列にそれぞれ1000行くらいのデータがあります。 それぞれの列内には重複レコードがあります。 この条件の中で 「A列とB列とC列に重複するデータすべて」 を抽出したいのですが、どんな方法がありますか。 抽出されたデータで重複レコードの場合は1件のみで表示したいです。 よろしくお願いします。 例   A   B   C   抽出  1-001-002--002--002 2-002-002--005--007 3-003-007--007--008 4-007-008--008--011 5-008-008--010 6-008-010--011 7-011-011--012 8-013-014--013

  • Excel2010でシートAとシートBとの比較

    よろしくお願いします。 Excel2010を使用しています。 シートA(マスターデータ)とシートB(ランダムデータ)のリストを比較して シートAのデータからシートBのデータを取り除いたデータを抽出したいです。 シートA(マスターデータ) A列   B列 111111 田中一郎 222222 田中二郎 333333 田中三郎 444444 田中四郎 シートB(ランダムデータ) A列   B列 222222 田中二郎 444444 田中四郎 この場合、抽出したいのは 111111 田中一郎 333333 田中三郎 の2名です。 いろいろネットで調べてトライしてみたのですがなかなかうまくいきませんでした。 Excelは少し苦手ですががんばりますのでよろしくお願いします。

専門家に質問してみよう