Excel公式修改需求:相邻列值为1时跳过当前行查看下一行
解决Mac版Excel 2016中跳过特定行比对Dot后数字的问题
问题场景
原Z列公式用于比对D列相邻行中“Dot”后的数字是否相同,但当D列某行值为“115”时(Y列通过=IF(ISNUMBER(FIND("115"; Dn)); 1; 0)标记为1),需要跳过该行,直接比对前后有效行的Dot数字(例如D116=Dot7、D117=115、D118=Dot7时,需比对D116和D118)。
适配Mac Excel 2016的解决方案
由于Mac Excel 2016不支持XLOOKUP等新函数,我们采用传统函数组合实现需求,提供两种方案:
方案1:直接使用复合公式(无需额外辅助列)
在Z列目标单元格(以Z117为例)输入以下公式,下拉填充适配所有行:
=IF( Y117=1; IF( IFERROR(MID(D116;FIND("Dot";D116)+3;LEN(D116)-FIND("Dot";D116)-2);"")=IFERROR(MID(D118;FIND("Dot";D118)+3;LEN(D118)-FIND("Dot";D118)-2);""); "Same"; "Different" ); IF( Y116=1; IF( IFERROR(MID(D115;FIND("Dot";D115)+3;LEN(D115)-FIND("Dot";D115)-2);"")=IFERROR(MID(D117;FIND("Dot";D117)+3;LEN(D117)-FIND("Dot";D117)-2);""); "Same"; "Different" ); IF( IFERROR(MID(D116;FIND("Dot";D116)+3;LEN(D116)-FIND("Dot";D116)-2);"")=IFERROR(MID(D117;FIND("Dot";D117)+3;LEN(D117)-FIND("Dot";D117)-2);""); "Same"; "Different" ) ) )
公式逻辑说明
- 第一层判断:若当前行Y列值为1(Dn是115),则直接比对**上一行(Dn-1)和下一行(Dn+1)**的Dot数字。
- 第二层判断:若当前行Y列不为1,但上一行Y列值为1(Dn-1是115),则比对**上上行(Dn-2)和当前行(Dn)**的Dot数字。
- 默认逻辑:无115行干扰时,执行原比对逻辑,对比**上一行(Dn-1)和当前行(Dn)**的Dot数字。
- 所有提取操作包裹
IFERROR,避免因单元格不含"Dot"导致公式报错。
方案2:新增辅助列简化公式(更易维护)
新增提取Dot数字的辅助列:在空白列(如X列)的X117单元格输入以下公式,下拉填充:
=IFERROR(MID(D117;FIND("Dot";D117)+3;LEN(D117)-FIND("Dot";D117)-2);"")该公式负责提取D列单元格中“Dot”后的数字,若单元格不含"Dot"则返回空值。
简化Z列比对公式:在Z117单元格输入以下公式,下拉填充:
=IF( Y117=1; IF(X116=X118;"Same";"Different"); IF( Y116=1; IF(X115=X117;"Same";"Different"); IF(X116=X117;"Same";"Different") ) )此方案通过辅助列分离提取逻辑,大幅简化比对公式,降低出错概率。
内容的提问来源于stack exchange,提问作者Annelies
相关产品推荐
相关产品推荐

