我正在尝试将Index-Match数组公式插入到单元格中。我的问题是,我需要在公式中使用一个变量,这会导致公式中的单元格引用被撇号包围。我会用一个例子来解释自己:
这是我到目前为止的代码:
Cells(loop, "H").value = "=INDEX('Tab Asistencias'!R1C1:R20000C4,MATCH(1,('Tab Asistencias'!R1C2:R20000C2=R2C2)*('Tab Asistencias'!R1C1:R20000C1=E" & loop & "),0),4)"
并且,当公式已插入单元格H1时,它看起来像这样:
= INDICE('Tab Asistencias'!$ A $ 1:$ D $ 20000; COINCIDIR(1;('Tab Asistencias'!$ B $ 1:$ B $ 20000 = $ B $ 2)*('Tab Asistencias'!$ A $ 1:$ A $ 20000 = 'E2'); 0); 4)
E2细胞参考中的两个撇号几乎在公式的末尾是困扰我的。因为Excel不会将E2识别为有效的单元格引用。
我在西班牙语版本的Excel上这样做(必须以这种方式完成)。
提前致谢,我们将不胜感激。
答案 0 :(得分:0)
您应该重命名Loop,因为在英文版的VBA循环中是一个保留字。
其中loop = 2; E" & loop & "
被评估为'E2'
,因为您正在将R1C1样式表示法与A1样式表示法混合。
这里我使用x代替循环和R" & x & "C5
来获得正确的引用。
Cells(x, "H").Value = "=INDEX('Tab Asistencias'!R1C1:R20000C4,MATCH(1,('Tab Asistencias'!R1C2:R20000C2=R2C2)*('Tab Asistencias'!R1C1:R20000C1=R" & x & "C5),0),4)"
输出:
=INDEX('Tab Asistencias'!$A$1:$D$20000,MATCH(1,('Tab Asistencias'!$B$1:$B$20000=$B$2)*('Tab Asistencias'!$A$1:$A$20000=$E$10),0),4)