2

好的,我看到了许多与我相似的问题,但没有一个是完全准确的所以答案没有帮助。虽然它可能不完全是一个 vlookup,但过程与一个类似,所以这是我能想到的最接近标题的东西。

我在文档 A 中有一列 (A) 值,我希望 excel 遍历每个值并查看文档 B 以在列 (A) 中找到相同的值。对于它找到的每个值,我想做三件事:

  1. 我希望它抓取文档 B 中找到的每个匹配值右侧的两个单元格的值,并将其粘贴到文档 A 的 A 列中值右侧的一个单元格

  2. 我希望它查看文档 B 中找到的每个匹配值右侧的值 3,如果该值是“时间”,则将字母“T”放在文档 A 的列 A 中值右侧的两个单元格。

  3. 如果在文档 B 中找到的每个匹配值右侧的四个单元格的值 > 5 我希望 excel 使用公式填充文档 A 的列 A 中值右侧的三个单元格 = 的值(列 G / 同一行的文档 B 中的 H) 列。

如果我的措辞令人困惑,我基本上想做一个更复杂的 vlookup。文档 A 只有 A 列,我想查看 A 列以使用文档 B 中的表格填写 B、C 和 D 列

如果您有任何问题,请让我知道,并提前感谢您能给我的任何帮助。

4

3 回答 3

2

你想做的每一件事都是从一个简单的“VLOOKUP”开始的,但有些事情会有所不同。为简化起见,我们应该将范围命名为“A”和“B”。为此,您可以选择属于“A”的所有单元格,然后在地址框中(屏幕左上角)输入名称。我们称它为“RangeA”。同样,选择属于区域 B 的所有单元格(第一列到第八列;确保不包括标题),并将其命名为 RangeB。现在我们可以开始了:

“对于A中的每个值,在B中找到对应的值,并将值返回到右边”:

这是一个简单的 VLOOKUP。在 A(可能是 B1)右侧的单元格中输入此公式:

=VLOOKUP(A1, RangeB, 3, FALSE)

说明:在名为 RangeB 的范围内查找单元格 A1 中的值。找到完全匹配(即“FALSE”)。返回第 3 列(右侧两个)中的相应值。将公式一直向下拖动(快捷方式:选中单元格后双击右下角的小方块)。

我希望它查看文档 B 中找到的每个匹配值右侧的值 3,如果该值是“时间”,则将字母“T”放在文档 A 的列 A 中值右侧的两个单元格。

这是一个 VLOOKUP,后跟一个 IF。将以下公式放在 A 右侧的两个单元格(可能是 C1)并像以前一样向下拖动:

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

解释:像以前一样向上看(但第 4 列,即“向右三”)。测试找到的值。如果是“时间”,则在此单元格中输入“T”;否则,输入“”(即什么也不输入)。

如果在文档 B 中找到的每个匹配值右侧的四个单元格的值 > 5 我希望 excel 使用公式填充文档 A 的列 A 中值右侧的三个单元格 = 的值(列 G / 同一行的文档 B 中的 H) 列。

找到匹配,取比率。使用 MATCH 函数(在工作表上的隐藏列中)只进行一次查找会更快,因此我们有对行号的引用(我们需要它三次),但这不是必需的。除非您的工作表有数千行,否则您不会注意到性能差异。根据这个线程,在公式中没有“快速方法”来实现这一点。

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

你有它。注意INDEX(MATCH...(@user2140261的首选方法)可以实现相同的东西,VLOOKUP但它涉及两个功能。但是,如果您决定创建一个包含MATCH函数的隐藏列,那么您可以使用INDEX函数来实现所有其他事情 - 这将是最有效的,因为您只使用一个 MATCH(而不是重新计算一次或多次每一列)。

我希望你能从这里弄清楚。

于 2013-05-02T21:03:47.650 回答
0
=INDEX(B!$C$1:$C$15,MATCH(A!A1,B!$A$1:$A$15,0))

进入B1工作表A或任何one cell to the right of the value内容并向下拖动

=IF(INDEX(B!$D$1:$D$15,MATCH(A!A1,B!$A$1:$A$15,0))="time","T",INDEX(B!$D$1:$D$15,MATCH(A!A1,B!$A$1:$A$15,0)))

进入C1工作表A或任何two cells to the right of the value内容并向下拖动。

*注意:*matched value found in document B如果不是“时间”,你没有指定你想要的这个值,所以我只是使用单元格中的值。

=IF(INDEX(B!$E$1:$E$15,MATCH(A!A1,B!$A$1:$A$15,0))>5,INDEX(B!$G$1:$G$15,MATCH(A!A1,B!$A$1:$A$15,0))/INDEX(B!$H$1:$H$15,MATCH(A!A1,B!$A$1:$A$15,0)),INDEX(B!$E$1:$E$15,MATCH(A!A1,B!$A$1:$A$15,0)))

进入D1工作表A或任何three cells to the right of the value内容并向下拖动

*注意:*如果matched value found in document B is 不是 ,您没有指定您希望这个值是什么,> 5所以我只是使用单元格中的值。

这是如果您要查找的值Column A在 SheetA中,并且您正在返回 Column C:Eof 中的值sheet B

于 2013-05-02T16:23:46.617 回答
0

首先,我的英语不好。对不起。但我会尽力帮助我理解它。

文档包含以下信息。

姓名
萨基尔
·哈桑·
希拉尔

B 文件中的以下信息。
姓名 索引 年龄 性别 Column5 Column6 Column7 Column8 Sakir
8 33 男 1 1 10 2
Hilal 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 回答