2

さて、私は私のものに似た質問をいくつか見ましたが、まったく正確なものはありませんでした。そのため、答えは役に立ちませんでした. 正確には vlookup ではないかもしれませんが、プロセスは 1 つに似ているため、タイトルとして考えることができる最も近いものでした。

ドキュメント A に値の列 (A) があり、Excel で各値を確認し、ドキュメント B を調べて、列 (A) で同じ値を見つけます。見つかった値ごとに、次の 3 つのことを行います。

  1. ドキュメント B で見つかった一致する各値の右にある 2 つのセルの値を取得し、ドキュメント A の列 A の値の右に 1 つのセルを貼り付けたい

  2. ドキュメント B で見つかった一致する各値の右側にある値 3 を見て、その値が「時間」の場合は、ドキュメント A の列 A の値の右側に文字「T」を 2 つ入れます。

  3. ドキュメント B で見つかった各一致値の右にある 4 つのセルの値が > 5 の場合、Excel で、ドキュメント A の列 A の値の右にある 3 つのセルに式 = (列 G の値) を入力します。 / 列 H) をドキュメント B で同じ行に配置します。

私の言葉遣いがわかりにくい場合のために、基本的にはもっと複雑な vlookup を実行したいと考えています。ドキュメント A には列 A しかありません。列 A を調べて、ドキュメント B の表を使用して列 B、C、および D を埋めたいと考えています。

ご不明な点がございましたら、お気軽にお問い合わせください。ご不明な点がございましたら、お気軽にお問い合わせください。

4

3 に答える 3

2

やりたいことはどれも単純な「VLOOKUP」から始まりますが、ひねりを加えたものもあります。簡単にするために、範囲に「A」と「B」という名前を付ける必要があります。これを行うには、「A」に属するすべてのセルを選択し、アドレス ボックス (画面の左上) に名前を入力します。「RangeA」としましょう。同様に、領域 B に属するすべてのセル (1 列目から 8 列目まで。ヘッダーを含めないように注意してください) を選択し、RangeB と呼びます。これで開始できます。

「A の各値について、B の対応する値を見つけ、その値を右に 2 つ返す」:

これは単純な VLOOKUP です。A の右側のセル (おそらく B1) に次の数式を入力します。

=VLOOKUP(A1, RangeB, 3, FALSE)

説明: RangeB という範囲のセル A1 の値を調べます。完全一致を見つけます (それは「FALSE」です)。列 3 (右から 2 つ) の対応する値を返します。数式を下までドラッグします (ショートカット: セルが選択されているときに、セルの右下隅にある小さな四角形をダブルクリックします)。

ドキュメント B で見つかった一致する各値の右側にある値 3 を見て、その値が「時間」の場合は、ドキュメント A の列 A の値の右側に文字「T」を 2 つ入れます。

これは、VLOOKUP の後に IF が続きます。次の数式を A の右側の 2 つのセル (おそらく C1) に配置し、前と同じように下にドラッグします。

=IF(VLOOKUP(A1, RangeB, 4, FALSE) = "time", "T", "")

説明: 前と同じように検索します (ただし、列 4、つまり「右に 3 つ」)。見つかった値をテストします。「時間」の場合は、このセルに「T」と入力します。それ以外の場合は、"" (つまり、何も入力しない) を入力します。

ドキュメント B で見つかった各一致値の右にある 4 つのセルの値が > 5 の場合、ドキュメント A の列 A の値の右にある 3 つのセルに数式 = (列 G の値) を入力する必要があります。 / 列 H) をドキュメント B で同じ行に配置します。

一致を見つけて、比率を取ります。MATCH 関数 (シートの非表示の列) を使用してルックアップを 1 回だけ実行する方が高速なので、行番号への参照 (3 回必要) がありますが、必須ではありません。シートに何千行もある場合を除き、パフォーマンスの違いに気付くことはありません。このスレッドによると、数式内でこれを達成する「簡単な方法」はありません。

=if(VLOOKUP(A1, RangeB, 5, FALSE) > 5, VLOOKUP(A1, RangeB, 7, FALSE)/VLOOKUP(A1, RangeB, 8, FALSE), "")

そして、あなたはそれを持っています。INDEX(MATCH...(@ user2140261 の推奨される方法) は と同じことを達成できますVLOOKUPが、2 つの機能が必要であることに注意してください。MATCHただし、関数を含む非表示の列を作成することにした場合は、INDEX関数を使用して他のすべてのことを達成できます。また、MATCH を 1 つしか使用しないため (1 回以上再計算するのではなく)、最も効率的です。各列)。

ここから分かると思います。

于 2013-05-02T21:03:47.650 に答える
0

まず、私の英語は苦手です。ごめん。しかし、私はそれを理解しているので助けようとします。

ドキュメントには次の情報が含まれます。

本名
サキル・
ハサン
・ヒラル

以下の情報のB文書。
Name Index Age Sex Column5 Column6 Column7 Column8
Sakir 8 33 男性 1 1 10 2
ヒラル 6 20 女性 1 1 8 4
Nuray 4 22 女性 1 1 4 1

ドキュメントは、B2 列に次の式を記述できます。

=IF(VLOOKUP(A2;[DocB.xlsx]Sheet1!$A$2:$H$4;2;FALSE)>5;VLOOKUP(A2;[DocB.xlsx]Sheet1!$A$2:$H$4;7;FALSE)/VLOOKUP(A2;[DocB.xlsx]Sheet1!$A$2:$H$4;8;FALSE);"No Match")

尊敬します。

于 2013-05-02T17:24:40.713 に答える