0

人生でこれほど Excel に不満を感じたことはありません。私は仕事で 2 つの主要な締め切りに直面しています。適切な情報を適切な人に届ける唯一の方法は、以下の問題を解決することです。

それぞれに異なる「クライアント」の異なるメトリックを持つ 2 つのワークブックがあり、すべての情報を 1 つのシートに取得する必要があります。最初のワークブックにクライアント A を含めることができるため、データを単純にコピーして貼り付けることはできません2番目ではありません。また、ワークブック間の一意の識別子として「クライアント名」を使用することはできません。これは、一方が「The John Smith Company」であり、他方が「The John Smith Co.」である可能性があるためです。

以下は、非常に単純化された例です。

ワークブック A

  • クライアントID
  • 就業者数

ワークブック B

  • クライアントID
  • クライアントとしての年数
  • 位置
  • クライアント名

私を重複した質問としてマークする前に、次の式を試しても役に立たなかったことを知っておいてください。

=VLOOKUP(D2,[othersheet.xlsx]sheet1!$A:$D,2,FALSE)

=IF(ISERROR(EXACT(D2,[othersheet.xlsx]sheet1!$1:$1048576)), "True", VLOOKUP(D2,[othersheet.xlsx]sheet1!$1:$1048576,2,FALSE))

ここで私の心を失います - どんなアイデアでも素晴らしいでしょう. 前もって感謝します!

到着予定時刻:

Excel 2011 for Mac、v. 14.4.1 を使用しています。

4

4 に答える 4

0

Vlookup を使用する場合、チェックしている値は、検索している範囲の左端の列にある必要があります。現在の数式は、クライアント名に対してクライアント ID を検索しようとしています。

列 D に対して Match() を実行してみましたか? これを Index() 関数と組み合わせて、必要なものを取得できます。

=INDEX([othersheet.xlsx]sheet1!$B:$B,MATCH(D2,[othersheet.xlsx]sheet1!$D:$D,FALSE))
于 2014-10-02T15:14:30.020 に答える
0

やってみました :
=VLOOKUP(D2,[othersheet.xlsx]sheet1!$A$1:$D$1000,2,FALSE)

于 2014-10-02T14:01:46.547 に答える
0

これを行う最も簡単な方法は、使用することだと思います

=match(clientID_WorkbookA_CellA2,ClientID_WorkBookB,0)ワークブック A で、どちらの ID が両方のリストにあるかを確認します。次に、同じでも間違って入力されたクライアント ID を手動で調整します。

次に、一致しないものはワークブック B にありません。これらをフィルター処理し、ワークブック B のテーブルの最後に追加します。

次に、number of employees ワークブック B というラベルの付いた列を作成し、sumif を使用します。何かのようなもの:

=sumif(ClientID_WorkBookA,ClientID_WorkBookB_CellA2,Employees_WorkBookA).

明らかに、実際のスプレッドシートを見なければ、より良いコードを提供することは困難ですが、その趣旨は理解できると思います。

アップデート

ワークシート A

セル E2 に入れ=trim(D2)て下にドラッグ

ワークシート B

セル O2 に置き=trim(D2)、下にドラッグします

セル C2 に置き=sumif(O2,sheetA!E:E,sheetA!B:B)、下にドラッグします

エラーがある場合は、列 O のクライアント ID がシート A に存在しないことを意味します。

于 2014-10-02T13:58:16.213 に答える