2016-10-26 12 views
0

今日、私は自分の机上に仕事があり、このスクリプトを正しく実行して作業を完了させることができません。私の上司は私に2つの別々の.xlsxファイルを与え、両方の名前のリストを与えました。彼女は、両方のExcelファイルにどの名前が表示されているかを見つけて一覧表示するように求めています。また、各ファイルに個別に表示されない名前を見つけて一覧表示します。例えば2つの別々のExcelファイルを比較/比較するスクリプト - 両方のエクスポートの違い

  • FILEAありヘンリーとテリー
  • FILEBがありヘンリーとサマンサ
  • ヘンリーはテリーがオンに表示されます表示するために提出された生成の両方FILEAに表示され、FILEB
  • ことを示すためにFILECを生成しますFileAではあるがFileBではなく
  • FileAを生成するFileAを生成するが、FileAでは表示されないことを示すためにFileEを生成する

私は最初に比較リストを引っ張ってみることから始めましたが、すでにこれを動作させることはできません。それは完了ですが、それは正しくエクスポートされていません。すべてのユーザーが列Aでのxlsxファイルの両方に記載されてい

$strReference = Get-Content "C:\Users\person\Desktop\FileA.xlsx" 
$strDifference = Get-Content "C:\Users\person\Desktop\FileB.xlsx" 
Compare-Object $strReference $strDifference 
+0

'Get-Content'はテキストファイルを読むためのものです。 Excelブックはテキストファイルではありません。 –

答えて

1

これは私がスクリプトを書く価値があるとは思わない種類の仕事です。その代わりに、Excelワークシート内の各ファイルに対して= COUNTIF()関数を使用して、各名前が別のファイルに表示されるかどうかを確認するほうがずっと簡単です。

だから、各ファイルの人のリストは= COUNTIF(他のワークシートの人物の名前のリスト)= 1です。これは両方のファイルに共通する人のリストです。また、同じCOUNTIF = 0の場合は、独自のエントリです。

もちろん、名前は同じであることに注意する必要がありますが、これを行う作業はVBAで行ってもワークシートで行っても同じです。

COUNTIFを使用すると、ワークシート内の重複を見つけることができます(他のワークシート内のその名前に対しても見分けることができます)。これも潜在的な問題です。

+0

これはずっと簡単に聞こえる、私はこれを撃つ!どうもありがとうございました。 – MMbill

1

それは速いだけをコピーすることで、新しいファイル、「FILE3」のA列にはFile1から名前を貼り付け、とfile2から名前を貼り付けるかもしれませんFile3の列Bに入力し、次にFile3の列Cで、MATCH(B1、A:A、0)とFile3のD列でMATCH(A1、B:B、0)を実行できます。 。値を返すセルには一致があり、エラーを返すセルには一致がないことを意味します。私はあなたがこれのためにVBAを必要とするとは思わない...それは働くだろうか?

+0

私はこれを撃つでしょう。どうもありがとうございました! – MMbill

関連する問題