投票调查分数分配函数的高效输入方法咨询
简化投票分数分配的电子表格函数方案
在投票调查场景中,需要为每人选出的前20个选项分配20至1的递减分数,目前使用的SWITCH函数写法繁琐且耗时:=switch(B3:B62,B65,"20",B66,"19",B67,"18",B68,"17",B69,"16",B70,"15",B71,"14",B72,"13",B73,"12",B74,"11",B75,"10",B76,"9",B77,"8",B78,"7",B79,"6",B80,"5",B81,"4",B82,"3",B83,"2",B84,"1","0")
该函数用于汇总每人的投票分数并在表格顶部统计,以下是更高效的函数输入方案:
方案1:用MATCH函数实现(简洁高效)
假设B65:B84是按分数从高到低排列的选项列表(B65对应20分,B66对应19分……B84对应1分),可以用MATCH函数直接计算分数:=IFERROR(21-MATCH(B3,B65:B84,0),0)
- 逻辑:MATCH返回单元格内容在B65:B84中的位置序号,用21减去序号就能得到对应的递减分数;如果找不到匹配项,返回0。
- 批量计算:如果使用Excel 365或Google Sheets的动态数组功能,直接输入
=IFERROR(21-MATCH(B3:B62,B65:B84,0),0),就能一次性算出B3到B62所有单元格的分数。
方案2:用XLOOKUP函数实现(灵活适配)
如果需要更灵活的匹配规则,XLOOKUP函数也是不错的选择:=XLOOKUP(B3,B65:B84,SEQUENCE(20,1,20,-1),0,0)
- 逻辑:
SEQUENCE(20,1,20,-1)会自动生成20到1的递减分数序列,XLOOKUP会根据B3的内容在B65:B84中匹配,返回对应的分数,无匹配则返回0。 - 优势:即使B65:B84的选项顺序变动,只要保证选项和分数的对应关系正确,函数依然有效。
内容的提问来源于stack exchange,提问作者Yagshmere
相关产品推荐
相关产品推荐

