- ベストアンサー
データの比較と抽出方法について
- エクセルデータのリストAとリストBを比較し、新規、解消、処理なしのデータを抽出する方法について教えてください。
- 抽出するデータは、管理番号、伝票番号、金額の3項目です。
- 毎日行う処理で他の人も使用するツールになるため、正確かつわかりやすい方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>まず金額(2)が0のデータを抽出する Sub test() Dim wb1 As Workbook Dim wb2 As Workbook Dim ws1 As Worksheet Dim ws2 As Worksheet Dim i As Long, j As Long, k As Integer Dim v As Variant, w As Variant Set wb1 = Workbooks("Book1.xls") Set wb2 = ThisWorkbook Set ws1 = wb1.Worksheets("Sheet1") Set ws2 = wb2.Worksheets("Sheet1") ws2.Range("A1:E1").Value = ws1.Range("A1:E1").Value ws2.Columns("A").NumberFormatLocal = "m""月""d""日""" ws2.Columns("B:C").NumberFormatLocal = "@" With ws1 v = .Range(.Range("A2"), .Cells(Rows.Count, 1).End(xlUp).Offset(0, 4)).Value End With ReDim w(1 To 5, 1 To UBound(v, 1)) For i = 1 To UBound(v, 1) If v(i, 5) <> 0 Then j = j + 1 For k = 1 To 5 w(k, j) = v(i, k) Next End If Next ReDim Preserve w(1 To 5, 1 To j) ws2.Range("A2").Resize(j, 5).Value = Application.Transpose(w) Erase v, w End Sub で精一杯かな?参考になれば幸いですが。 あとは難しいっす。
その他の回答 (3)
- n-jun
- ベストアンサー率33% (959/2873)
>まず金額(2)が0のデータを抽出する > If v(i, 5) <> 0 Then If v(i, 5) = 0 Then 訂正。
- n-jun
- ベストアンサー率33% (959/2873)
>「シートレイアウトで掲示」とはどういう風にすればよいのでしょうか? 回答者側にはシートにデータがどのように配置されているのか、 わかりません。 それをわかりやすく提示して頂きたいと思っての発言です。 近々の質問等を見て頂ければ、どんな感じかわかるかと。 >エクセルデータの「リストA(前日分)」と「リストB(当日分)」の2つのファイルがあります。 同一ブックのシートの比較ではなく、別ブックのとあるシート毎の比較になるのでしょうか?
お礼
回答してくださる方々への配慮が足りませんでした。 申し訳ありません。。 >同一ブックのシートの比較ではなく、別ブックのとあるシート毎の比較になるのでしょうか? その通りです。 前日分のファイルが1つ、当日分のファイルが1つで、項目のレイアウトは前日と当日は同じです。今考えているのは、前日分と当日分を比較するための関数やマクロを取り入れた「比較」ファイルを作ることを考えています。 元データ(前日分・当日分)のシートレイアウトは 日付 管理番号 伝票番号 金額(1) 金額(2) 6/10 00020081 00123456 1000 0 6/11 00020081 00123456 1000 1000 このデータから、まず金額(2)が0のデータを抽出する(前日・当日どちらも) 「前日分」と「当日分」のデータを「比較」ファイルの中の シートにコピー、貼り付け。 「新規」「解消」「処理なし」の判定は「管理番号」「伝票番号」 「金額(1)」を使って行う。 「 新規」「解消」「処理なし」のデータがそれぞれ抽出されるように する。 これでわかっていただけましたでしょうか。。
- n-jun
- ベストアンサー率33% (959/2873)
Excelであればシートレイアウトで提示された方がいいかと。 あとマクロ(VBA)は検討範囲内なのでしょうか?
お礼
回答ありがとうございます! 「シートレイアウトで掲示」とはどういう風にすればよいのでしょうか? マクロ(VBA)は検討範囲内です♪ 会社の決まりで他のデータ比較ソフトなどをダウンロードや インストールできないことになっているので、マクロなどを 使って自分で作るしかないのです(OFFICEは一式あります)
お礼
いろいろ考えていただいてありがとうございます! 早速試してみますね^^