在IF / CountIf中跳过单元格

时间:2018-05-17 20:06:39

标签: excel if-statement excel-formula formulas excel-2016

我做了这个公式:

replace(
  $subject,
  replace($searchString, '[.\[\]\\|^$?*+{}()-]','\\$0'),
  replace($replacement, '[\\$]', '\\$0')
)

它工作正常,但每当我向下拖动时我都需要=IF(COUNTIF(D5:D8,">0")<>H5,"Yes","No") 跳过5个单元格。因此,COUNTIF将是D5:D8下一个单元格,然后是D10:D13,依此类推。我无法弄清楚如何做到这一点,我真的不想手动更换170多个细胞。
如果有人能提供帮助,我会非常感激。

3 个答案:

答案 0 :(得分:1)

如果在公式旁边添加一个以5为增量运行的辅助列,则可以使用OFFSET进行向下拖动,这将不断地偏移您想要的方式:( J1将成为您的帮助列)

=IF(COUNTIF(OFFSET($D$5:$D$8,J1,0),">0")<>H5,"Yes","No")

这也可以在公式中使用(ROW(此行参考) - 公式的行开始)* 5

=IF(COUNTIF(OFFSET($D$5:$D$8,(ROW(J1)-1)*5,0),">0")<>H5,"Yes","No")

答案 1 :(得分:1)

正如@Wedge所指出的,OFFSETROW是一个很好的方法:

=IF(COUNTIF(OFFSET($D$5:$D$8,(ROW(1:1)-1)*5,0),">0")<>H5,"Yes","No")

但是OFFSETvolatile function。如果你过度使用它,它会减慢你的工作簿。

您可以使用INDEX来避免这种情况:

=IF(COUNTIF(INDEX(D:D,ROW(1:1)*5):INDEX(D:D,ROW(1:1)*5+3),">0")<>H5,"Yes","No")

答案 2 :(得分:0)

这是未经测试但我相信以下应该可以解决这个问题:

setTimeout

假设:公式位于=IF(COUNTIF(INDIRECT("D" & (ROW(I1)-1)*5+5):INDIRECT("D" & (ROW(I1)-1)*5+8),">0")<>H5,"Yes","No") 列中,从I开始,您可能需要调整行后的I1