首先,这是在Microsoft Office 2010中。
我正在比较两个不同的工作表,每个工作表都有一个权限列表。 'Worksheet1'包含我们新的POS权限,而'Worksheet2'包含我们当前的POS权限。我基本上是通过我们的旧权限并找到匹配的新权限。
在Worksheet1列A上包含权限(字符串),而列B包含具有类似权限的Worksheet2中的行号。 Worksheet1上的C列包含Worksheet2中引用的(旧)权限(字符串),该权限基于Worksheet1的B列中列出的行#。因此,基本上在Worksheet1上,您的列A具有新权限,列B具有来自Worksheet1的相同权限的行号,而列C实际上包含旧权限。例如,对于C列的引用,我在第2行使用了'= INDIRECT(“Worksheet2!B”& B2)'。
现在我尝试做的还是记录Worksheet2的哪些权限已经考虑,而无需手动输入Worksheet1中引用的行。使用相同的格式我将拥有权限(字符串),而列B包含Worksheet1中包含补充权限的行号。最后在C列中,实际的权限字符串基于B列中给出的行。
所以基本上我试图找到Worksheet1列B是否包含Worksheet2上的行号。如果是这样,我希望在Worskheet1上使用包含Worksheet2中引用的行的行号填充单元格。从那里我可以使用上面提供的INDIRECT示例来完成C行。但是现在我不得不弄清楚工作表2的B列。
我不确定我是否清楚地解释了这一切,如果不是,请问我很乐意做出必要的澄清。谢谢你提前获得帮助。
澄清的例子
工作表1 - 第2行
A列(新许可名称):SYSTEM>修改清单视图
B栏(我将手动填写WS2的参考行):146
C列(WS2中引用的权限名称,基于中给出的行) B列,使用INDIRECT生成:rPro - Retail Pro v8 - 系统 - 修改列表视图
工作表2 - 第146行
A栏(旧许可名称):rPro - Retail Pro v8 - 系统 - 修改列表视图
B列(来自WS1的行#,其中B列== 146,应自动填充):这是我要根据B列中的WS1引用此行自动生成的内容)在这种情况下,应该显示的数字是2
C列(来自WS1的引用权限名称基于B列中给出的行,使用INDIRECT生成):SYSTEM>修改清单视图
答案 0 :(得分:1)
工作表1 - D栏 - 放=ROW()
工作表2 - B栏 - =VLOOKUP(row(),sheet1!B:D,3,FALSE)
如果你想避免 #N / A ,那么将函数包装在iferror()
函数