【菁培函高班PK】顺序兑奖

尹俊超
尹俊超

创作者俱乐部成员

现有如下需求:在A列有一列兑换码,右侧需要根据兑换码的券的数量来兑换相应数量的兑换码。需要使用函公式完成。

例如:

兑奖人1有一张券,他兑换的就是兑换码1。兑奖人2有2张券,他兑换的就是兑换码2和3,以此类推...根据先来先得的原则,到人员10的时候,其实兑换码就不够了,之后的人员已无兑换码可以兑换。

相关案例完整文件:

【金山文档】 菁培函高班PK

河南省
浏览 1135
1
7
分享
7 +1
14
1 +1
全部评论 14
 
尹俊超
尹俊超

创作者俱乐部成员

跟大家分享一下我的写法: =IF(TEXTJOIN(",",TRUE,OFFSET($A$1,SUM($D$2:D2),,-D2))="","没有兑换码了!",TEXTJOIN(",",TRUE,OFFSET($A$1,SUM($D$2:D2),,-D2)))
· 上海
回复
 
辛伟兴
一组接招! E2单元格公式如下: IF(COUNTA(A:A)-1<SUM(D$1:D1),"没有兑换码了!",TEXTJOIN(",",1,OFFSET($A$2,SUM(D$1:D1),0,D2,1))) 当A列后续继续补充兑换码时也可以很好地进行判断。由于需要获取多个单元格的内容,此处优先考虑了offset来完成,offset也可以很好地获取区域内的内容且以数组的形式呈现。
· 河南省
2
回复
尹俊超
尹俊超

创作者俱乐部成员

· 上海
回复
 
邓华
邓华

WPS函数专家

=IF(COUNT(D$2:D2)>10,"没有兑换码了!",TEXTJOIN(",",1,OFFSET($A$1,SUM($D$1:D1)+1,0,D2,1)))
· 广东省
1
回复
拾光漫行
拾光漫行

WPS函数专家

请问老师10从哪来的 怎么判断出来,而且感觉你这个有问题 如果前面全是1个,那人员11,人员12不就有兑换码了?但是你这么做就会显示没有兑换码
· 重庆
回复
 
Yhan
Yhan

创作者俱乐部成员

题解如下。思路分析:本题是一个引用问题,我们常见的一些引用函数有index、indirect等,由于本题需要连接多个元素,所以引用值也不止一个,考虑使用indirect函数。文本连接且有连接符,想到用textjoin函数。最后再进行计数判断即可解。
· 四川省
1
回复
尹俊超
尹俊超

创作者俱乐部成员

一点毛病没有
· 上海
回复
 
尹俊超
尹俊超

创作者俱乐部成员

案例文件:https://www.kdocs.cn/l/cub6EHF4kxjO
· 上海
1
回复
 
拾光漫行
拾光漫行

WPS函数专家

连接失效 手动模拟个 =IF(SUM($D$1:D1)>19,"没有兑换码了",TEXTJOIN(",",1,OFFSET($A$1,SUM($D$1:D1)+1,0,D2)))
· 重庆
2
回复
拾光漫行
拾光漫行

WPS函数专家

野生菜鸟参战
· 重庆
1
回复
 
Yhan
Yhan

创作者俱乐部成员

文件打不开哟
· 四川省
1
回复
尹俊超
尹俊超

创作者俱乐部成员

再试一下:https://www.kdocs.cn/l/cub6EHF4kxjO
· 上海
回复