我有2个工作簿,一个名为AIH的计划表。两者都有具有唯一标识符的代理。
在AIH工作簿中,我有工作组,其中代理人已接受过培训。他们的范围从基础,一般,中级,专业,非调度,HP,MB。如果代理人已经接受过培训,则标记为一个X.
我希望能够根据两个工作簿中的唯一标识符,在计划工作簿中提取这些工作组之间的“最高培训价值”。
我的嵌套if如下:
=IF([headcount.xlsx]Sheet1!$N$2="X", _
[headcount.xlsx]Sheet1!$N$1,IF([headcount.xlsx]Sheet1!$M$2="X", _
[headcount.xlsx]Sheet1!$M$1,IF([headcount.xlsx]Sheet1!$L$2="X", _
[headcount.xlsx]Sheet1!$L$1,IF([headcount.xlsx]Sheet1!$K$2="X", _
[headcount.xlsx]Sheet1!$K$1,IF([headcount.xlsx]Sheet1!$J$2="X", _
[headcount.xlsx]Sheet1!$J$1,IF([headcount.xlsx]Sheet1!$I$2="X", _
[headcount.xlsx]Sheet1!$I$1,IF([headcount.xlsx]Sheet1!$H$2="X", _
[headcount.xlsx]Sheet1!$H$1,"Not Trained")))))))
所以这个步枪穿过我的牢房寻找X并显示训练最高的工作组,因为我向后穿过柱子。
问题是我需要做一个vlookup来匹配列中的唯一标识符,这样我就可以根据代理ID(唯一标识符)提取正确的信息,我不确定如何执行此操作,因为vlookup要我返回特定列的值。
excel非常新,所以更详细的回答对我来说更好。
提前致谢!
答案 0 :(得分:0)
你的公式是这样的:
=INDEX([headcount.xlsx]Sheet1!$H$1:$N$1,MATCH("Y",INDEX([headcount.xlsx]Sheet1!H:H,MATCH(A2,[headcount.xlsx]Sheet1!A:A,0)):INDEX([headcount.xlsx]Sheet1!N:N,MATCH(A2,[headcount.xlsx]Sheet1!A:A,0))))
A2
是您要在[headcount.xlsx]Sheet1!
工作表上查找的唯一标识符,[headcount.xlsx]Sheet1!A:A
是该工作表中找到唯一标识符的列。
然后可以将其复制到列中。
答案 1 :(得分:0)
不确定你是否还需要解释,但我还是会对它进行解释。
如果有人发现错误,请告诉我,我会解决。
查看“外部”MATCH()
,寻找“Y”的那个,定义是......
MATCH(value-to-find,range-to-look-in,[match-type])
一个键是不存在的 - 也就是说,@ ScottCraner没有指定匹配类型,所以它默认为1,意味着返回小于或等于“的最大值” Y“在这种情况下。在寻找最大值的过程中,它继续寻找一个“Y”,直到它用完了值,这总是最右边的列,其中有一个“X”。它的工作原理是因为“X”小于“Y”,所有值都是“X”。虽然它也可以寻找“X”而不是“Y”。 (不确定为什么斯科特使用“Y”。)
这就解释了“外部”MATCH()
正在做什么。但它在哪里看?
范围外观由两个INDEX()
函数组成,提供范围的[upper] left和[lower] right。第一个INDEX()
返回列H中的单元格,该列位于具有您要查找的标识符(A2)的行中。第二个INDEX()
返回位于同一行的N列中的单元格。您会注意到关联的“内部”MATCH()
函数的匹配类型为0,这意味着它们找到了第一个完全匹配。
因此,如果你的标识符(A2)出现在第20行,范围看起来变为H20:N20,然后外部MATCH()
寻找最右边的“X”在该范围内,外部INDEX()
返回相应的标题(H和N之间的顶行)。
您必须使用IFERROR()
或其他IF
函数来处理根本没有“X”的情况,如原始公式的最后部分(“不是”训练“)。