EXCELマクロ・シート間の照合方法とは?
- EXCELの「シートA」と「シートB」で商品リストのデータを照合する方法について教えてください。
- 変更が多い場合でも効率的に「シートB」を元に「シートC」や「シートD」を照合する方法が知りたいです。
- マクロを実行するボタンを押すだけで照合ができる方法があれば教えてください。
- ベストアンサー
EXCEL - マクロ・シート間の照合
すみません、どなたか教えてください。 「シートA」と「シートB」とで、商品リストのデータを照合したいのです。 「シートA」を元に、ある一部の商品リストに変更をかけたものが「シートB」になります。 【例】 商品番号 商品名 001 Orange ABC 002 Orange BBB 003 Apple Big 004 Banana 5 チェックする点は、入力されている文字列、大文字、小文字、スーペース等が変更になったかどうかチェックします。 変更は何度も入るため「シートB」を元に「シートC」をチェックする→「シートC」を元に「シートD」をチェックする、という流れになっていきます。 今までは以下の関数を使ってチェックしていましたが、この関数だと毎回書き変える上に、A3以降のセルにコピーする作業が発生するので手間がかかってなりません。 ●照合用のシートZ!A2=IF('シートA'!A2&'シートB'!A2="","",EXACT('シートA'!A2,'シートB'!A2)) どなたかよい方法を教えてください。よろしくお願いします。 できれば、ボタンを押してマクロ実行、というのが理想なのですが…。
- hana353
- お礼率71% (10/14)
- オフィス系ソフト
- 回答数1
- ありがとう数5
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
作ってみました。 現在開いているシートと、ひとつ前(左側)のシートを比較し、 一致していないセルの背景を赤くします。 ----------------------------- Sub シート比較() Dim i, j, endofrow, endofcol As Integer Set WS2 = ActiveSheet.Previous endofrow = ActiveSheet.UsedRange.Rows.Count endofcol = ActiveSheet.UsedRange.Columns.Count For i = 1 To endofcol For j = 1 To endofrow If ActiveSheet.Cells(j, i).Value <> WS2.Cells(j, i).Value Then ActiveSheet.Cells(j, i).Interior.ColorIndex = 3 End If Next Next End Sub ----------------------------- 比較対象は常に1つ前のシートになりますので、 2つ前のシートと比較したい場合などは、シートの順番を並べ替えて対応 してください。 不具合があれば、補足にご記入ください。 お役に立てば良いのですが・・・。
関連するQ&A
- EXCEL - マクロ・シート間の照合・修正
EXCEL - マクロ・シート間の照合・修正 すみません、どなたか教えてください。 「シートA」と「シートB」とで、商品リストのデータを照合し、価格を書き変えたいです。 「シートA」を元に、「シートA」データより大量データの商品リストに価格に変更をかけたものが「シートB」になります。 【例】 ■シートA 商品番号 価格(円) 001 30 003 50 005 60 ■シートB 商品番号 価格(円) 001 25 002 55 003 55 004 40 005 60 チェックする点は、シートAにある商品番号をシートBの商品番号と照合し、同じ番号があれば、シートBの価格をシートAの価格に上書きするようにしたいです。価格が変更してなくても上書きしてもかまいません。 現在商品番号を検索して1つ1つ確認して、価格変更しています。 データが膨大にあるので、自動化・効率化を図りたいです。 どなたかよい方法を教えてください。よろしくお願いします。 できれば、ボタンを押してマクロ実行、というのが理想なのですが…。
- 締切済み
- オフィス系ソフト
- EXCELの2つのシートの照合処理マクロについて
マクロが得意でなく下記の処理が可能かご教授いただければと お願いします。 ・シートAに自社の発注済みデータ ・シートBに発注先から送られてきた受注データがあります。 シートAの発注番号コードとシートBの受注番号コードが一致するので これを基にそれぞれのシートにある数量、単価、金額を照合し 一致しないレコードのみシートCにコピーさせる。 という流れなのですが、 ・それぞれのシートのコード、数量、単価、金額は別々の列にあります。 現在関数とオートフィルターで処理しているのですが効率が悪いため 改善するよう指示されて困っております。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excelデータの照合
Excelデータの照合 こちらでも色々調べさせて頂いたのですが、自分のデータにうまくあてはめられず困っています。 Excelの元データ、入力データがあります。 元データが正規のデータで、入力データにモレがないか、ミスがないかをチェックする為に 照合をしたいんですけど、どうやったらうまく出来るかわかりません。 是非ご教授下さい。 元データ、入力データ共に2列あり、どちらも A列・・・コードナンバー B列・・・コードナンバーに対応する金額 が入力されています。 これは今現在は同一シート内に抜き出してありますが、元は別シートです。 なので別シートにあるものとして回答頂いても結構です。 入力データの中から、元データのA列、B列共に一致するものだけを抽出することは出来ますか? 不一致もしくは該当するデータがないものと、一致しているものが区別で切れば形式は何でもOKです。 (作業列を増やすとか、色分けするとか、文字で表示するとか) 出来ればVBAやマクロを使わず関数のみでお願いします。 検索を使うからVLOOKUP? 複数条件だからIF?? と色々考えましたが、2つセットで検索をかけるのがどうしても出来ず・・・(-_-;) よろしくお願いします!!
- ベストアンサー
- オフィス系ソフト
- エクセルシート間の照合について
エクセルシート間で照合をしたいと思っています。 照合する項目は2つ。2つともあえばそのA列のデータを表示するというものです。 データは シート1(前年) A B C D 1 田中 123 東京都・・ 5 佐藤 124 千葉県・・ 3 山本 128 埼玉県・・ シート2(今年) A B C D 山本 128 埼玉県・・ 佐藤 124 北海道・・ 田中 123 東京都・・ C列とD列を照合し2つともあえばシート2のA列にシート1のA列のデータを入力する。なければ「なし」と入力できるようにしたいのです。 上の場合は山本のA列に「3」佐藤には「なし」田中には「1」と入るのうになればと思います。 入力されている列は同じですが順番はばらばらです。データ数は1万件を超えています。 どなたかアドバイスいただければと思います。よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- エクセルマクロ シート間の照合_上書き
マクロ初心者です。(エクセル2003使用) Sheet2の管理番号をSheet1の管理番号と照合し、同じであれば、数量など3項目を上書きするマクロを作ろうとしています。 (Sheet1:日々更新される元データ)全データ数約500件くらい A列 ,B, C, D, ・・・ 1行 管理番号,品名,注文数量,出荷数量,・・・ (Sheet2:上書きさせたいシート)全データ数約80件くらい G列 ,H, I J 9行 管理番号,品名,注文数量,出荷数量 ↑シート2にある管理番号をもとに数量などを照合&上書きをしたいのです。 ■シート1も2も行数は日々変動します。 ■シート1で、まれに同じ管理番号が2つ存在することがありますが、取り出したい数量などのデータは、常に1番目に照合する管理番号です。 Sub シート間照合と上書き() Dim i As Integer a = Worksheets("sheet1").Range("a65536").End(xlUp).Row For i = 2 To a If Worksheets("sheet1").Range("A2") = Worksheets("sheet2").Range("G9") Then Worksheets("sheet1").Cells(1, i) = Worksheets("sheet2").Range("G9") Worksheets("sheet1").Cells(2, i) = Worksheets("sheet2").Range("H9") Worksheets("sheet1").Cells(3, i) = Worksheets("sheet2").Range("I9") While Cells(1, i) <> "" i = i + 1 Wend End If Next End Sub ■上記 模索しながらマクロを作ってみたのですが、エラーにはならないのですが(F8)、まったく動きませんでした。 すみませんが、お力をかしてください。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- エクセルと照合について
エクセルと照合について 工場に勤務していて、シフト表と給与計算をしています。 エクセルの表がうまく貼りつけられず(列がずれるため)、縦書きですいません。 以下はシート1です。 出勤予定表(A1) Aさん(A2) 1/1(B1)←1/1は日付です。 1(B2) 1/2(C1) 空欄(C2)←休日のことです。 1/3(D1) 3(D2) 1/4(E1) 空欄(E2) 1/5(F1) 1(F2) 1/6(G1) 3(G2) 以下BさんからEさんまで5人分あります。 以下は勤務時間コードです。 1 5:00~13:00 2 8:00~15:00 3 13:00~21:00 以下はシート2に作成している、実際の出勤日です。 Aさん(A2) 1/1(B1)←1/1は日付です。 5:00~13:00(B2) 1/2(C1) 空欄(C2)←休日のことです。 1/3(D1) 13:00~21:00(D2) 1/4(E1) 空欄(C2) 1/5(F1) 5:00~13:00(F2) 1/6(G1) 13:00~21:00(G2) 他にBさんからEさんまで、シート3からシート6まで作成しています。 要は二つのシートをマクロか関数かであっているかどうか照合したのですが、できるのでしょうか。 目視はできるだけ避けたいです。 超初心者ですいません。 お願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルによる照合と警告音
エクセルとバーコードリーダーによって、在庫管理をしようと考えています。バーコードリーダーには、スキャンによって値が入力されるとPC上でtabキーを押す、という機能があるので、エクセルにリーダーで読み込んだ値が入力されたあと、次のセルに移動することができます。ですので、商品のバーコードを次々に読んでいって、エクセルのシート上にデータを蓄積させていきます。 この蓄積される行をsheet1につくった一覧表からcountif関数でチェック(shhet2にバーコード数値=商品名のリストがある)し、どの商品が何個あるかを数えていくようにしています。 =COUNTIF(10:10,Sheet2!D7)・・・(リーダーから入力される値が入る行:元リスト) お尋ねしたいのは、バーコードから入力される値が、元リストにあるかどうかを照合し、リストに無い値が読み込まれた場合にエクセル上で警告音を鳴らすようにできないのか?という事です。 小型のノートPCでこのエクセルを動かし、肩掛けかばんに入れてバーコードリーダーだけ手元に。という事を考えているので、警告ダイアログ等は出さす、音だけで知らせるようにしたいのです。 以上、よろしくお願いします。
- 締切済み
- その他MS Office製品
- エクセル 照合作業で再確認したいです!!
先週ご相談したものですが、一点追加で確認したいことですがあります。 先週エクセルの関数を使った照合作業を相談しました。 内容は以下です。 A列 B列 株式会社●●●● (株)●●●● 株式会社●●●● (有)●●●● 株●●●● グループA (有)●●●●グループB 上記のようなデーターが約1万件あります。 照合するのに入力の規則を整え((株)を株式会社に置き換え・スペースを取る、半角を大文字にするなど・・) VLOOKUP関数でA列とC列が照合しているかを確認しました。 ※シートAを基準に照合するようにしました。 VLOOKUP(A3,c3:c1167,1,FALSE) ですがなぜか取りこぼしをしてしまい全部のデーターにあたりません。 B列に結果を出すことで検索の型に誤りがあるにでしょうか? また結果の個数も一緒に出したいです。countifとネストするのでしょうか? 数式教えて下さいよろしくねがいます。
- 締切済み
- その他(ビジネス・キャリア)
- EXCELのデータ照合で教えてください。
EXCELで外部データの取込からデータの照合をしたいのですが ← 更新後 → ← 更新前 → A B C D E F G H 1 商品A 4個 商品B 10個 商品C 2個 商品D 10個 2 商品C 4個 商品D 8個 商品E 10個 商品A 4個 この時に、セルA1B1とセルG2H2は、何もせず、セルC1D1には、文字を太字で表示、セルG1H1、黄色で塗つぶし、セルC2D2は、文字を黄色で表示、 セルE1F1、緑色で塗つぶし、セルA2B2は、文字を緑色で表示とかのデータの照合をしたいのですが、どなたか教えて下さい。 宜しくお願い致します。
- 締切済み
- オフィス系ソフト
お礼
すばらしいっ! できました!今まで手間かけて作業していたことがアッという間にできちゃうなんて。 私も少しづつ勉強して自分で書けるようにがんばります。 ホントにホントにありがとうございました!