Vlookup翻译错误在多张

假设我有一个包含问题编号和不同回答者的表单。 例如,在表1中,我们有

Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Person A 1 3 1 5 2 4 1 2 1 5 Person B 5 1 5 1 3 3 2 5 4 3 Person C 5 1 5 1 3 3 2 5 4 3 

在工作表2上,我们有相同的设置

  Q5 Q4 Q2 Q3 Q4 Q6 Q7 Q8 Q9 Q10 Person A Person B Person C 

当我在相应的表格2中input以下内容时:

=vlookup(a1,Sheet1,b$1+1,0) # return value of Person A, Q1 from sheet 1

我得到了Person A Q6的价值。 为什么?

我是否有权假定您正在使用Excel?

如果是这样,我将使用的等式是: =VLOOKUP($A2,Table1,MATCH(B$1,Sheet1!B1:K1)+1,FALSE)

您无法将整个工作表作为parameter passing。 你需要通过一个范围。 这里我把它命名为Table1。

在第三个参数中,您将1添加到一个string,这会导致问题。 使用MATCHfunction获取列号。

你正在使用VLOOKUP错误。

VLOOKUP的工具提示显示括号应该是("lookup_value", "table_array", "col_index_num", "[range_lookup]")

所以它会试图将你的第一个variableslookup_value与第二个variablestable_array的第一列中的第一个实例相匹配。 然后它返回由col_index_num -1取代的单元格中的值(即返回Q1值,您将使用col_index_num为2)。 最后一部分[range_lookup]是可选的,它允许您使用的值的模糊匹配,这通常不是您想要的。 不幸的是,这默认为TRUE (模糊匹配),你几乎总是想把它设置为FALSE

在你的OP示例中,你试图给B1中的一个string添加1。 显然你不能添加一个数字到一个string(至less不是这样)。

要与第二个表格中的表格标题相匹配,您可以使用:

=VLOOKUP($A$2,Sheet1!$A$1:$K$4,RIGHT(B1,LEN(B1)-1)+1,FALSE)

col_index_numreplace为表头中的数字的引用(它会剥离第一个字符Q来执行此操作),然后使用它来计算要使用的列。