为何H1单元格的数组公式无法正确计算首次呼叫时的年龄区间?
问题解决:年龄区间数组公式修正
问题根源
你所用公式里的AND函数无法在ARRAYFORMULA中实现数组级别的逻辑判断——AND会把整个数组的条件合并成单个布尔值,导致公式无法逐个处理每行数据,最终得不到预期的区间结果。
修正后的公式
直接利用IF的顺序判断特性(无需AND,因为前面的条件不满足才会进入下一层判断),同时加入空行容错:
={"Array";ARRAYFORMULA( IF(ISBLANK(F2:F)+ISBLANK(C2:C), "", IF(DATEDIF(F2:F, C2:C, "Y") <25, "18-24", IF(DATEDIF(F2:F, C2:C, "Y") <35, "25-34", IF(DATEDIF(F2:F, C2:C, "Y") <45, "35-44", IF(DATEDIF(F2:F, C2:C, "Y") <55, "45-54", "55+")))) )}
进阶优化(简化重复计算)
用LET函数一次性计算年龄,避免重复调用DATEDIF,提升公式效率:
={"Array";ARRAYFORMULA( LET(ages, DATEDIF(F2:F, C2:C, "Y"), IF(ISBLANK(ages), "", IF(ages <25, "18-24", IF(ages <35, "25-34", IF(ages <45, "35-44", IF(ages <55, "45-54", "55+")))) ) )}
内容的提问来源于stack exchange,提问作者Mikey
相关产品推荐
相关产品推荐

