• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データの比較)

データの比較と抽出方法について

このQ&Aのポイント
  • エクセルデータのリストAとリストBを比較し、新規、解消、処理なしのデータを抽出する方法について教えてください。
  • 抽出するデータは、管理番号、伝票番号、金額の3項目です。
  • 毎日行う処理で他の人も使用するツールになるため、正確かつわかりやすい方法を教えてください。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

>まず金額(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 で精一杯かな?参考になれば幸いですが。 あとは難しいっす。

irikodashi
質問者

お礼

いろいろ考えていただいてありがとうございます! 早速試してみますね^^

その他の回答 (3)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

>まず金額(2)が0のデータを抽出する >    If v(i, 5) <> 0 Then     If v(i, 5) = 0 Then 訂正。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

>「シートレイアウトで掲示」とはどういう風にすればよいのでしょうか? 回答者側にはシートにデータがどのように配置されているのか、 わかりません。 それをわかりやすく提示して頂きたいと思っての発言です。 近々の質問等を見て頂ければ、どんな感じかわかるかと。 >エクセルデータの「リストA(前日分)」と「リストB(当日分)」の2つのファイルがあります。 同一ブックのシートの比較ではなく、別ブックのとあるシート毎の比較になるのでしょうか?

irikodashi
質問者

お礼

回答してくださる方々への配慮が足りませんでした。 申し訳ありません。。 >同一ブックのシートの比較ではなく、別ブックのとあるシート毎の比較になるのでしょうか? その通りです。 前日分のファイルが1つ、当日分のファイルが1つで、項目のレイアウトは前日と当日は同じです。今考えているのは、前日分と当日分を比較するための関数やマクロを取り入れた「比較」ファイルを作ることを考えています。 元データ(前日分・当日分)のシートレイアウトは      日付  管理番号  伝票番号  金額(1)  金額(2)      6/10 00020081 00123456 1000 0 6/11 00020081 00123456 1000 1000 このデータから、まず金額(2)が0のデータを抽出する(前日・当日どちらも) 「前日分」と「当日分」のデータを「比較」ファイルの中の シートにコピー、貼り付け。 「新規」「解消」「処理なし」の判定は「管理番号」「伝票番号」 「金額(1)」を使って行う。 「 新規」「解消」「処理なし」のデータがそれぞれ抽出されるように する。 これでわかっていただけましたでしょうか。。    

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Excelであればシートレイアウトで提示された方がいいかと。 あとマクロ(VBA)は検討範囲内なのでしょうか?

irikodashi
質問者

お礼

回答ありがとうございます! 「シートレイアウトで掲示」とはどういう風にすればよいのでしょうか? マクロ(VBA)は検討範囲内です♪ 会社の決まりで他のデータ比較ソフトなどをダウンロードや インストールできないことになっているので、マクロなどを 使って自分で作るしかないのです(OFFICEは一式あります)

関連するQ&A