Google Sheets:ArrayFormula拼接公式失效问题排查
Google Sheets公式失效问题分析与修正
核心问题根源
匹配键格式不匹配:
你的公式中用EQUIV('Réponses au formulaire 1'!C1:AK1;'Réponses au formulaire 1'!C1:AK1;0)返回的是表头的位置数字(比如1、2...),再和响应值拼接成类似1Oui的字符串,但参数表parametres!C:D的C列是Cat1_Oui这类“类别名称_选项”的格式,两者完全不匹配,导致RECHERCHEV无法找到对应值,最终SOMME计算无结果。ARRAYFORMULA与SOMME的嵌套逻辑错误:
原公式中SOMME包裹整个RECHERCHEV数组,会把所有行的结果一次性求和,而不是逐行计算每个表单响应的得分。正常示例的写法能生效,核心是其匹配键格式与参数表完全对应,且逻辑适配逐行计算需求。
修正方案
步骤1:修正匹配键生成逻辑
把数字索引替换为实际表头文本,直接拼接成参数表对应的“类别_选项”格式:
'Réponses au formulaire 1'!C1:AK1&"_"&'Réponses au formulaire 1'!C2:AK2
步骤2:调整数组求和逻辑
方案A(兼容旧版Google Sheets):
=ARRAYFORMULA(IF('Réponses au formulaire 1'!A2:A="",,MMULT(N(RECHERCHEV('Réponses au formulaire 1'!C1:AK1&"_"&'Réponses au formulaire 1'!C2:AK2,parametres!C:D,2,FALSE)),SEQUENCE(COLUMNS('Réponses au formulaire 1'!C1:AK1),1,1,0))))
方案B(新版推荐,逻辑更直观):
=BYROW('Réponses au formulaire 1'!C2:AK, LAMBDA(row, SUM(RECHERCHEV('Réponses au formulaire 1'!C1:AK1&"_"&row, parametres!C:D, 2, FALSE))))
步骤3:提取前3高得分
得到每个响应的4个类别得分后,用LARGE函数提取前3名,示例:
=LARGE(目标得分区域,1)&", "&LARGE(目标得分区域,2)&", "&LARGE(目标得分区域,3)
内容的提问来源于stack exchange,提问作者Jockalia
相关产品推荐
相关产品推荐

