ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7146|回复: 55

[Excel 函数与公式] [开_157]名单增加(已总结)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2022-4-18 15:28 | 显示全部楼层 |阅读模式
本帖最后由 满坛皆为吾师 于 2022-5-10 16:22 编辑

一、题目说明:
      根据K1单元格的数值进行对B列首次出现的人名进行个数增加,结果如D2:J31区域所示。
      如K1=1,增加一次;K2=4,则增加四次。若有不解,请参照答案。


二、答题要求:(答案仅取楼层第一条)
      1、禁止任意方式引用结果示例。
      2、答题区域为L2:R31单元格。
      3、答案请用代码模式提交。
      4、禁止占楼,一人一层。

三、评分规则:
      1、2013及以下版本,公式正确且字符<100技术分+1,最佳答案(字符数最少)技术分+2。
      2、接受365测试通道及其它版本公式答案,公式正确且字符最少,技术分+1,仅评一人。
      3、若答案并列最短,则以发贴时间(最后编辑时间)为先者设为最佳答案。

四、竞赛日期:
      2022-4-18至2022-5-8



157.jpg

[开_157]名单增加.rar (17.31 KB, 下载次数: 387) 本期题目采纳自坛友:客都梅州





点评

感谢坛友Hu***aby指出说明笔误,K2实为K1~!  发表于 2022-4-24 15:49

评分

21

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 16:24 | 显示全部楼层
本帖最后由 tchh666 于 2022-4-22 08:38 编辑

区域数组,86字符

  1. =INDEX(B:B,SMALL(((B2:B31<>B3:B32)*K1+1<COLUMN(A:H))*99+ROW(),7*ROW()+COLUMN()-25))&""
复制代码





88字符。。。

  1. =LET(X,B2:B31,Y,UNIQUE(X),WRAPROWS(TEXTSPLIT(CONCAT(REPT(Y&0,COUNTIF(X,Y)+K1)),0),7,""))
复制代码


18字符,引用答案区,闹着玩。。。
  1. =TAKE(D2:J31,30,7)
复制代码


评分

11

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 17:23 | 显示全部楼层
本帖最后由 624134745 于 2022-4-21 09:16 编辑

=IFERROR(INDEX(DROP(REDUCE("",DROP(UNIQUE(B2:B32),-1),LAMBDA(x,y,VSTACK(x,EXPAND(y,K1+COUNTIF(B2:B30,y),,y)))),1),SEQUENCE(30,7)),"")365预览通道,字符133。=WRAPROWS(DROP(REDUCE("",DROP(UNIQUE(B2:B32),-1),LAMBDA(x,y,VSTACK(x,EXPAND(y,K1+COUNTIF(B2:B30,y),,y)))),1),7,"")优化一下,365预览通道字符114。

评分

13

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 17:55 | 显示全部楼层
=IFERROR(INDEX(UNIQUE($B$2:$B$31),SMALL(IFERROR(IF((COUNTIF($B$2:$B$31,UNIQUE($B$2:$B$31))+$K$1)>=COLUMN($A:$CD),ROW($B$1:$B$30)),4^8),COLUMN(A1)+7*(ROW(A1)-1))),"")

评分

8

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 18:31 | 显示全部楼层
区域数组:
  1. =INDEX(B:B,SMALL(IFERROR(--MID(REPT(TEXT(A2:A31+1,"00"),IF(MATCH(B2:B31,B2:B31,)=--A2:A31,K1)+1),COLUMN(A:I)*2-1,2),66),ROW(1:31)*7+COLUMN(A:G)-7))&""
复制代码

评分

12

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 18:38 | 显示全部楼层
L2
  1. =IFERROR(INDEX($B:$B,SMALL(IF((COUNTIF($B$2:$B$31,$B$2:$B$31)+$K$1)*(MATCH($B$2:$B$31&"",$B$2:$B$31&"",)=ROW($1:$30))*($B$2:$B$31<>"")>=COLUMN($A:$Z),ROW($2:$31)),COLUMN(A1)+7*ROW(A1)-7)),"")
复制代码
数组三键,右拉、下拉。

评分

8

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 18:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =LET(x,UNIQUE(B2:B31),INDEX(TEXTSPLIT(CONCAT(REPT(x&" ",COUNTIF(B2:B31,x)+K1))&REPT("  ",99)," "),SEQUENCE(30,7)))
复制代码
  没思路,参与一下,这个感觉又是“循环引用”类的,引用前半部

评分

11

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 19:09 | 显示全部楼层
365 版本
=IFERROR(INDEX(TEXTSPLIT(TEXTJOIN(" ",1,TRIM(REPT(UNIQUE(B2:B31)&" ",K1+1)))," "),SEQUENCE(30,7,1,1)),"")

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-18 22:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-4-19 09:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 李逸雪 于 2022-4-19 09:37 编辑

区域数组:
  1. =INDEX(B:B,SMALL((COLUMN(A:H)>K1*(B1:B30<>B2:B31)+1)*30+ROW(),ROW()*7+COLUMN()-25))&""
复制代码




评分

15

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 04:00 , Processed in 0.040691 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表