Google Sheets如何使用公式跨工作表将数值替换为对应文本
原公式无法运行的原因
你使用分号拼接多个ARRAYFORMULA的写法是对数组做纵向堆叠,最终会输出6组和ProductID表A列长度一致的结果,完全不符合逐行匹配ID返回对应名称的需求,自然无法正常运行。
可用实现方案
方案1:单ARRAYFORMULA嵌套IFS(直接适配原有逻辑)
只需要一层ARRAYFORMULA包裹IFS多条件判断即可,公式如下:
={"My App";ARRAYFORMULA(IFS( ProductID!A2:A=327939762351,"Apple - 1 mo.", ProductID!A2:A=123456789,"Apple Store", ProductID!A2:A=987654321,"Google Play", ProductID!A2:A=111111111,"InApp Purchase 1", ProductID!A2:A=222222222,"InApp Purchase 2", ProductID!A2:A=333333333,"InApp Purchase 3", TRUE,"0" ))}
IFS会按顺序判断条件,匹配到第一个符合的规则就返回对应名称,最后加TRUE作为兜底条件,所有未匹配到的ID都会返回默认值"0"。
方案2:映射表+XLOOKUP(更易维护)
如果后续会频繁新增/修改产品ID对应关系,推荐用映射表方案,不需要反复修改公式:
- 在ProductID工作表(或单独的隐藏工作表)中新增两列作为映射关系:第一列填产品ID,第二列填对应名称
- Main工作表中使用如下公式即可:
={"My App";ARRAYFORMULA(XLOOKUP(ProductID!A2:A, 映射ID列范围, 映射名称列范围, "0"))}
后续增删产品仅需要修改映射表内容即可,无需调整公式逻辑,出错概率更低。
内容的提问来源于stack exchange,提问作者Constantine Costopoulos
相关产品推荐
相关产品推荐

