我希望用excel中的间接函数创建一个二维矩阵,使用类似的东西:
=INDIRECT(A12:A14 & "!C3:C11")
这个想法是,如果您有A12:A14保存工作表名称,并且每个工作表中包含C3:C11,并且使用这个简单的函数,您可以轻松地将其收集到矩阵中以便在另一个工作表中进行处理。
在此之后,您可以使用=MMULT()
或其他函数与B12:B14等数组进行矩阵乘法运算:
=MMULT(B12:B14*INDIRECT(A12:A14 & "!C3:C11")
有一种简单的方法可以解决这个问题吗?例如,用括号进行后续处理或在某处放置SUM?
答案 0 :(得分:3)
数组公式**
=MMULT(TRANSPOSE(B12:B14),N(OFFSET(INDIRECT("'"&A12:A14&"'!C3"),TRANSPOSE(ROW($C$3:$C$11)-MIN(ROW($C$3:$C$11))),)))
此致
**数组公式的输入方式与“标准”公式的输入方式不同。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果你已经正确地完成了它,你会注意到Excel在公式周围放置了大括号{}(虽然不要尝试自己手动插入这些)。
答案 1 :(得分:1)
如果您使用构造
=INDIRECT(A12:A14 & "!C3:C11")
不会创建矩阵但会创建“范围数组”。 AFAIK只能对某些功能有用,例如: “IFS”类型的函数类似于SUMIF
,因此您可以使用此公式获得这3个范围中的正值总数
=SUMPRODUCT(SUMIF(INDIRECT(A12:A14 & "!C3:C11"),">0"))
可以处理该排列的另一个函数是SUBTOTAL
,因此该公式将汇总这两个范围中的所有值
=SUMPRODUCT(SUBTOTAL(9,INDIRECT(A12:A14 & "!C3:C11")))