ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: tpb123

[求助] 数据按指定品名进行合并

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-16 16:23 | 显示全部楼层
也写了一个,供参考。
  1. =LET(d,A2:A33,REDUCE(E1:F1,TOCOL(d,3),LAMBDA(x,y,VSTACK(x,IFNA(HSTACK(y,DROP(GROUPBY((COUNTIF(K:K,B2:B33)=0)*ROW(2:33),B2:B33,LAMBDA(z,TEXTJOIN("、",,z)),,0,,y=SCAN(,d,LAMBDA(m,n,IF(n>0,n,m)))),,1)),"")))))
复制代码




TA的精华主题

TA的得分主题

发表于 2024-3-16 16:33 | 显示全部楼层
F2:

=TEXTJOIN("、",1,TEXTSPLIT(TRIM(MID(SUBSTITUTE(TRIM(CONCAT(IF(COUNTIF(K:K,B$2:B$33),IF(A$3:A$34>0,B$2:B$33&" ",B$2:B$33&"、")," "&B$2:B$33&" ")))," ",REPT(" ",99)),99*ROW(A1)-98,99)),"、"))

数组三键下拉。

TA的精华主题

TA的得分主题

发表于 2024-3-16 17:12 | 显示全部楼层
shaowu459 发表于 2024-3-16 16:23
也写了一个,供参考。

经检验,貌似不对!

TA的精华主题

TA的得分主题

发表于 2024-3-16 17:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
edwin11891 发表于 2024-3-16 17:12
经检验,貌似不对!

每个人底下合并的水果、非水果的内容都是对的,只是排序和示例结果不一样,比如说A有【苹果、梨】和【剪刀】,示例结果是【剪刀】在水果合并结果上面,我的公式可能是【剪刀】在水果合并结果下面。

TA的精华主题

TA的得分主题

发表于 2024-3-16 17:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=CONCAT(IF(MMULT(SEQUENCE(,10)^0,1*ISNUMBER(FIND(TAKE(TEXTSPLIT(B2,"、",,1),,1),$K$2:$M$11)))>0,$K$1:$M$1,""))

TA的精华主题

TA的得分主题

发表于 2024-3-16 17:23 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-3-16 17:47 | 显示全部楼层
tpb123 发表于 2024-3-16 16:12
下载学习了一下  公式可读性很高

遗漏了条件4,五金一次编号跨2个,D2公式修改为:
=IF(G2="","",LET(t,COUNTIF(G$2:G2,G2),IF(LEFT(G2,2)="五金",G2&(2*t-1)&"~WJ"&(2*t),G2&t)))
下拉。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-17 02:15 来自手机 | 显示全部楼层
橒♂蝣 发表于 2024-3-16 15:43
=REDUCE(A1:B1,TOCOL(A2:A33,3),LAMBDA(x,y,LET(
m,LOOKUP(ROW(A2:A33),ROW(A2:A33)/(A2:A33""),A2:A33),
...

老师,下面你还再给了一个公式是干嘛的?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-17 02:17 来自手机 | 显示全部楼层
橒♂蝣 发表于 2024-3-16 17:20
=CONCAT(IF(MMULT(SEQUENCE(,10)^0,1*ISNUMBER(FIND(TAKE(TEXTSPLIT(B2,"、",,1),,1),$K$2:$M$11)))>0,$K$1 ...

这个是辅助的?

TA的精华主题

TA的得分主题

发表于 2024-3-17 07:10 | 显示全部楼层
本帖最后由 tmplinshi 于 2024-3-17 18:35 编辑
  1. =LET(
  2.     src, A2:B26,
  3.     cat, H1:J11,
  4.     loop, LAMBDA(fn, [idx], [groupData], [out],
  5.         LET(
  6.             idx, idx + 1,
  7.             a, INDEX(src, idx, 1),
  8.             b, LET(x, INDEX(src, idx, 2), TEXTBEFORE(x, "、",,,, x)),
  9.             isCatExist, IF(a <> "", 0, ISNUMBER(MATCH(b, groupData, 0))),
  10.             i, MAX(IF(cat = b, SEQUENCE(, COLUMNS(cat)))),
  11.             c, INDEX(cat, 1, i),
  12.             py, SWITCH(c, "水果", "SG", "办公", "BG", "五金", "WJ"),
  13.             n, COUNT(SEARCH(c & "*", out)) * 2 ^ (py = "WJ") + 1,
  14.             result, IF(i, c & py & n & IF(py = "WJ", "~" & py & n + 1, ""), ""),
  15.             out, IF(idx = 1, result, VSTACK(out, IF(isCatExist, "", result))),
  16.             groupData, IF(a <> "", VSTACK(b), VSTACK(groupData, b)),
  17.             IF(idx < ROWS(src), fn(fn, idx, groupData, out), out)
  18.         )
  19.     ),
  20.     loop(loop)
  21. )
复制代码


image.png
(注:原文件“办公”列下面缺少了“钢笔”)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 10:23 , Processed in 0.033090 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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