Excel-将对角线元素设为0后,间接对列求和行

d7v8vwbk  于 2023-10-22  发布在  其他
关注(0)|答案(2)|浏览(133)

以下代码间接引用excel中另一个工作表“Sheet 2”中的columnsum行,其中“C11”是用户输入的sheet 1中的工作表名称。
片1

INDIRECT("'"&C2&"'!B6:E6")

Sheet2

| | 2 | 3 | 4 | 4 |
| --|--|--|--|--|
| 1 | 334 | 199 | 451 | 258 |
| 2 | 104 | 104 | 303 | 86 |
| 3 | 919 | 443 | 289 | 81 |
| 4 | 560 | 250 | 182 | 54 |
如果我们通过将对角线元素设置为零来创建另一个Sheet 3,则可以将此公式用于第一个相应的单元格并拖动它。

=IF(ROW()=COLUMN(),0,'Sheet1'!B2)

随后,我们可以在用户输入中给给予Sheet 3并得到值。

但是,我想在不创建另一个Sheet 3的情况下实现这一点。从本质上讲,我想在Sheet 1中引用表的列和行,当对角元素设置为0时,不修改Sheet 1。

7gcisfzg

7gcisfzg1#

这可能有帮助:

=LET(a,Sheet2!B2:E5,
MMULT(COLUMN(a)^0,ABS(MUNIT(ROWS(a))-1)*a))
8wigbo56

8wigbo562#

替代方法使用:

·单元格E2中使用的公式

=LET(
     a, INDIRECT("'"&C2&"'!B2:E5"),
     b, ABS(MUNIT(ROWS(a))-1)*a,
     BYCOL(b,LAMBDA(z,SUM(z))))

或者,这也可以工作:

=LET(
     a, INDIRECT("'"&C2&"'!B2:E5"),
     b, IF(ROW(a)=COLUMN(a),0,a),
     BYCOL(b,LAMBDA(z,SUM(z))))

相关问题