如何修改=IF(ISNUMBER(MATCH公式跨多工作表多列判断首单/复购?
多工作表判断客户首单/复购的Excel公式调整方案
你的原公式仅能查询当前工作表的历史数据,要扩展到2021、2022等其他工作表,不能用&拼接区域(&是文本连接,并非合并数据区域),以下是两种适配不同Excel版本的解决方案:
方案1:适用于Excel 365/2021及以上版本(支持动态数组)
使用VSTACK函数将当前表历史区域与其他工作表的对应数据区域垂直合并,再用MATCH查询:
=IF(ISNUMBER(MATCH(K339; VSTACK(K5:K338; '2021'!K5:K1000; '2022'!K5:K1000); 0)); "Repeat order"; "First order")
- 说明:
VSTACK会把多个区域堆叠成一个连续数组,MATCH可直接在合并后的数组内查找目标值;建议将其他工作表的K5:K1000替换为实际数据范围,避免空值干扰。
方案2:适用于旧版Excel(不支持动态数组)
用OR函数组合多个MATCH查询结果,只要任一工作表匹配到目标值即判定为复购:
=IF(OR(ISNUMBER(MATCH(K339; K5:K338; 0)); ISNUMBER(MATCH(K339; '2021'!K5:K1000; 0)); ISNUMBER(MATCH(K339; '2022'!K5:K1000; 0))); "Repeat order"; "First order")
- 说明:每个
MATCH单独查询一个工作表的区域,OR函数只要其中一个返回匹配成功(即ISNUMBER结果为TRUE),就返回"Repeat order"。
内容的提问来源于stack exchange,提问作者Martijn
相关产品推荐
相关产品推荐

