我做了这个公式:
replace(
$subject,
replace($searchString, '[.\[\]\\|^$?*+{}()-]','\\$0'),
replace($replacement, '[\\$]', '\\$0')
)
它工作正常,但每当我向下拖动时我都需要=IF(COUNTIF(D5:D8,">0")<>H5,"Yes","No")
跳过5个单元格。因此,COUNTIF
将是D5:D8
下一个单元格,然后是D10:D13
,依此类推。我无法弄清楚如何做到这一点,我真的不想手动更换170多个细胞。
如果有人能提供帮助,我会非常感激。
答案 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所指出的,OFFSET
与ROW
是一个很好的方法:
=IF(COUNTIF(OFFSET($D$5:$D$8,(ROW(1:1)-1)*5,0),">0")<>H5,"Yes","No")
但是,OFFSET
是volatile 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