假设我在单元格 F2 至 I5 中有一个如下数字矩阵:
a_1 a_2 a_3 a_4 x
b_1 b_2 b_3 b_4 y
c_1 c_2 c_3 c_4 z
d_1 d_2 d_3 d_4 w
假设我想解如下方程组
a_1 a_3 a_4 x
c_1 c_3 c_4 z
d_1 d_3 d_4 w
请注意,一旦我们消除第二行和第二列,第二个矩阵就是第一个矩阵。
MMULT
我想使用和求解第二个矩阵给出的方程组MINVERSE
。但是,MINVERSE
不允许我从第一个矩阵中选择所需的值,因为它需要一个数组作为输入。
一种选择是手动从第一个矩阵中写出第二个矩阵并相应地求解。虽然这种方法可行,但似乎很麻烦。有没有办法使用MMULT
并MINVERSE
求解第二个矩阵给出的方程组,而不必明确地写出它(即告诉MINVERSE
从第一个矩阵中选择哪些单元格)。
我也尝试了排序功能,但是这会破坏电子表格中的许多公式,所以这不是一个选择。
所以我想我的问题是:如何反转特定的子矩阵?
如果您有 Excel365,您可以组合
CHOOSECOLS
和CHOOSEROWS
函数来获得所需的结果。这些函数允许从给定的数组中分别选择列和行。尝试:
或者
您可以更笼统地处理这个问题,并定义一个
LAMBDA
函数,该函数将返回一个具有给定数字的省略行和列的数组。我将给出这种函数定义的两种变体:函数可以命名为 eg
SUBMATRIX
,并使用三个参数调用:数据范围、要删除的行号、要删除的列号。此类函数的结果可以作为其他数组函数的参数。