1

2 つの csv ファイルがあり、特定の列を使用してそれらを比較する方法を探しています。一致が見つかったら、一致した行から別の列の値を取得し、それを他の列の対応する列に配置する必要があります記録。

もう少し説明しようと思います。

一方のcsvにproduct_id,product_name,brand_name,price はもう一方のcsvがありますproduct_id,product_category,product_name,brand_name,price

一致する値を持つ行を見つけて 2 つのファイルを比較する必要がありますproduct_id。見つかったらprice、ファイル 1 から値を取得し、ファイル 2 の一致するレコードに配置する必要がありpriceます。

広範な調査の結果、これはおそらくpowershellで達成できるという結論に達しました。

どうすればそれができるかについて誰かアイデアがありますか? お時間をいただきありがとうございます。

4

2 に答える 2

2

は 1 回限りのアクションです。csv ファイルをスプレッドシート (Google ドキュメント、Excel など) で開き、VLOOKUP を実行できます。は簡単だ:

これを実証するために、両方の csv ファイルが並んでいる次のスプレッドシートを想像してください。最初は列 A から B へ、2 番目は列 D から F へ

  |    A       |   B   | C |      D     |         E        |   F  
--+------------+-------+---+------------+------------------+-------
1 | product_id | price |   | product_id | product_category | price
2 |          1 |  29.9 |   |          2 |       SOME CAT 1 | =IFERROR(VLOOKUP(D2;A:B;2;FALSE); "NULL")
3 |          2 |  35.5 |   |          3 |       SOME CAT 2 | =IFERROR(VLOOKUP(D3;A:B;2;FALSE); "NULL")

この関数は、領域 A:B の最初の列にある D2 セルの値と完全に一致VLOOKUPするものを検索し、その領域の 2 番目の列から値を返します。が失敗した場合、はNULL を返します。iferrorVLOOKUP

この場合、セル F2 で、列 A の製品 ID "2" (セル d2) を探します。行 3 に製品 ID "2" が見つかり、価格 "35.5" (2 行目) が返されます。範囲 A:B の)。すべての行が計算されると、結果は次のようになります。

  |    A       |   B   | C |      D     |         E        |   F  
--+------------+-------+---+------------+------------------+-------
1 | product_id | price |   | product_id | product_category | price
2 |          1 |  29.9 |   |          2 |       SOME CAT 1 | 35.5
3 |          2 |  35.5 |   |          3 |       SOME CAT 2 | NULL
于 2013-07-08T12:57:23.323 に答える