1

私は2冊のワークブックを持っています。

最初に呼び出されますJune2122.xls

Last Name(B2:B300)、First Name(C2:B300)などの列があります...

2番目はJune Emails.xls

Last Name(B2:B300)、First Name(C2:C300)、Email Address(D2:D300)などの列があります。これらの 3 つの列は、という名前の範囲にあります。Data_Table

私がする必要があるのは、First Nameand Last Name(B2:C2) fromJune2122.xlsFirst Nameand Last Name( B2:C2) from を比較することですJune Emails.xls。それらが一致する場合、June Emails.xls(D2) からの電子メール アドレスを新しいセルに入力する必要があります。June2122.xls

すべてのセルは「一般」としてフォーマットされます。

いくつかの式を試しましたが、最も近いのは次の式です。

=IF(ISNA(VLOOKUP(B2,'June Emails.xls'!Data_Table,2,TRUE)),0,VLOOKUP(C2,'June Emails.xls'!Data_Table,3,TRUE))

そして、メールが入力されるセルに「FALSE」が表示されるだけです。

誰でもこれを手伝ってもらえますか?よろしくお願いします!

4

3 に答える 3

4

こんにちは、これは古いトピックですが、スタック オーバーフローが見つかりました。

次の数式は、追加の連結フィールドを追加する必要なく、連結された値に基づいてルックアップを行います。

=IFERROR(INDEX(Sheet1!C$2:C$7,MATCH((A2&B2),(Sheet1!A$2:A$7&Sheet1!B$2:B$7),0),0),0)

**NB: これは配列数式なので、Ctrl-Shift-Enter を使用して機能させることを忘れないでください :)

各パーツが参照しているものを確認できます (申し訳ありませんが、独自のダミー データを使用しました) ここに 2 つのデータ テーブルがあります

上記の数式は、Sheet2 のセル C2 で使用され、Sheet1 の列 A および B に対して Sheet2!A2 & B2 の値を検索しています。

シート1

シート 2

この式を理解することで、何日もの作業を節約できました。お役に立てば幸いです:)

于 2012-11-23T14:41:18.330 に答える
1

私はそれを考え出した。デモンストレーションの目的で、ワークブックのテストに使用します。

test1.xlsx、名前、姓、電話番号が含まれ、電子メール アドレスが含まれていないワークブック ここに画像の説明を入力

 

test2.xlsx、名、姓、電子メール アドレスを含むワークブック ここに画像の説明を入力

 

そのため、VLOOKUP を使用して名前が一致するかどうかを確認test2.xlsxして、各レコードのメール アドレスを入力する必要があります。test1.xlsx

 

ステップ 1.)first_nameとフィールドを組み合わせてlast_name、値を 1 つのセルに格納する必要があります。

 

これをする:

a. 各ワークブックに新しい列を作成します。名前を付けましたfull_name ここに画像の説明を入力

ここに画像の説明を入力

 

 

b. 各ワークブックの新しい列で、フォーラムを作成します=(A2&B2)。これにより、2 つの値が結合されます。そのようです:

ここに画像の説明を入力

 

 

c. 次に、その新しい列のすべてのフィールドを選択し、full_name特別な > 値をコピーして貼り付けます (式を取り除くため)。

ここに画像の説明を入力

 

 

ステップ 2.)各ワークブックで検索する必要があるデータを含む新しい列が作成されたので、電子メール アドレスを含むワークブックに新しい範囲を作成します ( test2.xlsx)。したがって、2 つの列full_nameを強調表示してemail_address、名前を定義します。

ここに画像の説明を入力

 

 

ステップ 3.)test1.xlsxワークブック (電子メール アドレスが入力されていないワークブック)に戻り、空のemail_addressセル (E2 から始めます) に、数式バーに次の数式を書き込みます。

=VLOOKUP(D2,test2.xlsx!emailinfo,2,FALSE)

VLOOKUP 関数の構文は次のとおりです。

= VLOOKUP ( lookup_value , table_array , col_index_num , range_lookup )

 

 

ステップ 4.)ここで、誰かが電子メール アドレスを持っていなかったとしましょう。たとえば、Tom Jones です。#N/Aセルに 見栄えの悪い値を取得します。ここに画像の説明を入力

 

これを取り除くには:

a. 1 をクリックして、すべての列ヘッダーを選択します。 ここに画像の説明を入力

 

 

b. [データ] > [フィルター] アイコンをクリックします。(Select All)ONLY のチェックを外してチェックします#N/Aここに画像の説明を入力

 

 

c. [OK] をクリックします。ワークブックに戻り、値#N/Aを含む電子メール フィールドを強調表示して削除します。

前:

ここに画像の説明を入力

後:

ここに画像の説明を入力

 

 

d. フィルターをオフにするか、フィルター設定に戻って再確認する(Select All)と、見栄えが悪い代わりに、#N/Aきれいに見える空のスペースができます。

(明らかに、このような小さなテーブルでは、上記は少し実用的ではないように見えますが、私が扱っている実際のワークブックには何千ものレコードが含まれているため、これらのトリックは非常に便利でした)

これが将来他の人に役立つことを願っています! コメントや代替案、提案を残してください。フィードバックはいつでも大歓迎です! :)

于 2012-07-30T19:38:08.843 に答える
0

データを表示せずに、VLookup の最後の条件として "FALSE" が必要であり、完全一致が必要なため "true" ではありません。

http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx

また、トレース式の評価を使用して、フォーラムのどの部分が「FALSE」の回答になっているのかを正確に教えてください。

于 2012-07-30T17:10:41.387 に答える