ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-14 14:40 | 显示全部楼层 |阅读模式
各位EH函数老师和大佬们下午好,请教一个比较难的案例,使用函数将下图的左边的数据变成右边的数据,如何做到?谢谢各位老师,文件已附上。
数据图片.png

数据和示范.zip

10.84 KB, 下载次数: 54

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-14 15:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-3-14 16:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 tmplinshi 于 2024-3-15 00:34 编辑
  1. =LET(
  2.     src, A1:B33,
  3.     fruits, K1:K11,
  4.     fn, LAMBDA(self, [i], [isPreFruit], [out],
  5.         LET(
  6.             i, i + 1,
  7.             a, INDEX(src, i, 1),
  8.             b, INDEX(src, i, 2),
  9.             isFruit, COUNTIF(fruits, b),
  10.             out, IF(
  11.                 AND(a = "", isFruit, isPreFruit),
  12.                 out & "、" & b,
  13.                 out & ";" & a & "," & b
  14.             ),
  15.             IF(i < ROWS(src), self(self, i, isFruit, out), out)
  16.         )
  17.     ),
  18.     TEXTSPLIT(REPLACE(fn(fn), 1, 1, ), ",", ";", , , "")
  19. )
复制代码


image.png
示例结果少了一个“苹果”。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-14 18:31 来自手机 | 显示全部楼层
tmplinshi 发表于 2024-3-14 16:44
示例结果少了一个“苹果”。

楼主太牛逼了,真的强,佩服佩服,好好学习一下

TA的精华主题

TA的得分主题

发表于 2024-3-14 21:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
数据和示范.zip (15.64 KB, 下载次数: 18)

非365,采用了辅助列,供参考

TA的精华主题

TA的得分主题

发表于 2024-3-14 22:45 | 显示全部楼层
tmplinshi 发表于 2024-3-14 16:44
示例结果少了一个“苹果”。

竟然都没用365循环函数!

TA的精华主题

TA的得分主题

发表于 2024-3-14 23:15 | 显示全部楼层
=LET(a,SCAN(,A2:A33,LAMBDA(x,y,IF(y="",x,y))),w,REDUCE(A1:B1,UNIQUE(a),LAMBDA(x,y,LET(b,FILTER(B2:B33,a=y),c,FILTER(b,MAP(b,LAMBDA(z,ISNUMBER(MATCH(z,K1:K11,)))),""),d,FILTER(b,MAP(b,LAMBDA(z,1-ISNUMBER(MATCH(z,K1:K11,)))),""),VSTACK(x,IFNA(HSTACK(y,VSTACK(TEXTJOIN("、",,c),d)),y))))),p,FILTER(w,TAKE(w,,-1)<>""),HSTACK(SCAN("",SEQUENCE(ROWS(TAKE(p,,1))),LAMBDA(m,n,IF(SUM(N(TAKE(TAKE(p,,1),n)=INDEX(TAKE(p,,1),n)))=1,INDEX(TAKE(p,,1),n),""))),TAKE(p,,-1)))

image.jpg

TA的精华主题

TA的得分主题

发表于 2024-3-15 00:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
还可以简单一点
  1. =LET(
  2.     src, A1:B33,
  3.     fruits, K1:K11,
  4.     a, INDEX(src, , 1),
  5.     b, INDEX(src, , 2),
  6.     isFruit, ISNUMBER(MATCH(b, fruits, 0)),
  7.     isPreFruit, VSTACK(0, DROP(isFruit, -1)),
  8.     str, CONCAT(IF((a = "") * isFruit * isPreFruit, "、" & b, ";" & a & "," & b)),
  9.     TEXTSPLIT(REPLACE(str, 1, 1, ), ",", ";", , , "")
  10. )
复制代码


image.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-15 09:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
厉害!!!!!!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-15 10:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
世界客都 发表于 2024-3-14 21:52
非365,采用了辅助列,供参考

低版本注重的就是逻辑,看了大神的公式,思路非常牛逼,公式也简短,厉害
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 10:47 , Processed in 0.045046 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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