Mohammad Yusuf Asked: 2021-11-21 23:11:02 +0800 CST2021-11-21 23:11:02 +0800 CST 2021-11-21 23:11:02 +0800 CST 计算公式中的单元格数 772 我想引用一个单元格。Sheet2!D1 和下一行将有 Sheet2!D10。我不想写这个,而是写 Sheet2!DRow()+8。 计算 row()+8 然后将其附加到 D 的正确语法是什么? 感谢任何提示。 microsoft-excel 3 个回答 Voted Best Answer Ron Rosenfeld 2021-11-22T04:06:10+08:002021-11-22T04:06:10+08:00 @MohammadYusuf 建议的解决方案将起作用。 但是INDIRECT,它是一个不稳定的函数,这意味着它会在工作表上的任何内容重新计算时重新计算,并且可能会减慢速度。 可以使用以下方法构造非易失性等价物INDEX: =INDEX(Sheet2!$D:$D,IF(ROWS($1:1)=1,1,(ROWS($1:1)-1)*10),1) 当您填写时,ROWS($1:1)参数将递增并生成您的一系列行号。 如果您有 Office 365,另一种选择是: =LET(x,INDEX(Sheet2!$D:$D,SEQUENCE(100,,1,10),1), IF( x="","",x)) 输入单个单元格,它将溢出结果 Hannu 2021-11-22T11:25:04+08:002021-11-22T11:25:04+08:00 嗯... (LibreOffice显然使用.而不是使用)! =OFFSET(Sheet2.D1,0,0) =OFFSET(Sheet2.D1,8,0) ...是另一种选择。 (ROW()-n)*8根据公式所在的位置,第二个参数(即 0 和 8)可以替换为for indexing,n=1 表示第一行。 Mohammad Yusuf 2021-11-22T00:03:58+08:002021-11-22T00:03:58+08:00 明白了,我们可以这样做: =INDIRECT(CONCATENATE("Sheet2!D",9*(ROW()-1)+1))
@MohammadYusuf 建议的解决方案将起作用。
但是
INDIRECT
,它是一个不稳定的函数,这意味着它会在工作表上的任何内容重新计算时重新计算,并且可能会减慢速度。可以使用以下方法构造非易失性等价物
INDEX
:当您填写时,
ROWS($1:1)
参数将递增并生成您的一系列行号。如果您有 Office 365,另一种选择是:
输入单个单元格,它将溢出结果
嗯... (LibreOffice显然使用
.
而不是使用)!
=OFFSET(Sheet2.D1,0,0)
=OFFSET(Sheet2.D1,8,0)
...是另一种选择。
(ROW()-n)*8
根据公式所在的位置,第二个参数(即 0 和 8)可以替换为for indexing,n=1 表示第一行。明白了,我们可以这样做:
=INDIRECT(CONCATENATE("Sheet2!D",9*(ROW()-1)+1))