3

我在单元格 B5 中写了以下公式

=SUMPRODUCT(--(COLORINDEXOFRANGE(Data!D10:HO10,FALSE,1)=COLORINDEXOFONECELL(Data!$F$3,FALSE,1)))

当我从 B5 向下拖动到下一行时,公式中的单元格变为COLORINDEXOFRANGE(Data!D11:HO11,FALSE,1)

但我希望列号保持不变,只希望行号更改为,例如COLORINDEXOFRANGE(Data!E10:HO10,FALSE,1)单元格 C5 和COLORINDEXOFRANGE(Data!F10:HO10,FALSE,1)单元格 D5 等等。

COLORINDEXOFRANGE 是我在互联网上找到的内置功能。

请帮忙。谢谢

4

4 回答 4

3

如果范围的结尾保持不变,那么您可以使用INDEX仅更改范围的开头,即替换Data!D10:HO10

=INDEX(Data!D$10:HO$10,ROWS(B$5:B5)):Data!HO$10

这种类型的 INDEX 公式只是半易失性的(它们在打开工作表时重新计算),这可能比完全易失性OFFSETINDIRECT函数更可取。函数也ROWS比它更好,ROW因为它可以处理在公式上方插入(或删除)的行而不改变结果

于 2012-09-19T19:25:51.270 回答
1

有几种方法可以解决将公式拖放到固定参考单元格的问题:

  1. 要从字面上回答您的问题,您可以使用 引用他们当前的行号ROW(),因此ROW() - 1给出前一个行号。
  2. 但这不适用于您的情况,因为您正在引用一个范围。另一个功能是INDIRECT(),看看文档,但这可以这样使用 INDIRECT("R5C" & COLUMN(), FALSE)
  3. 因为选项 #2 往往会使公式变得很长并且(几乎)不可读,有时您可以摆脱命名范围
于 2012-09-19T16:44:24.737 回答
1

为了从水平参考更改为垂直参考,我使用OFFSET了 ,在其中我引用另一张表中的值,=OFFSET('Forecast'!$I$17,COLUMN()-3,0)以便参考的 column() 成为行参考

于 2012-09-19T17:49:07.273 回答
0

我有一个类似的问题:向下拖动一个值,没有按预期增加。问题是我对数据应用了过滤器。删除过滤器恢复了功能。

于 2016-03-07T09:19:14.647 回答