ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 再求论坛大神帮忙,多表格,如何根据单元格是否有数据重新生成表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-30 16:09 | 显示全部楼层
=LET(a,C3:G38,s,LAMBDA(ew,hz,TOCOL(IF(ew>0,hz,x),2,1)),aa,HSTACK(s(a,C2:G2),s(a,A1),s(a,A3:A38),s(a,B3:B38),s(a,a)),b,C46:H55,bb,HSTACK(s(b,C45:H45),s(b,A44),s(b,A46:A55),s(b,B46:B55),s(b,b)),SORT(VSTACK(aa,bb),1))

如果按你模拟的姓名顺序排列
=LET(a,C3:G38,s,LAMBDA(ew,hz,TOCOL(IF(ew>0,hz,x),2,1)),aa,HSTACK(s(a,C2:G2),s(a,A1),s(a,A3:A38),s(a,B3:B38),s(a,a)),b,C46:H55,bb,HSTACK(s(b,C45:H45),s(b,A44),s(b,A46:A55),s(b,B46:B55),s(b,b)),h,VSTACK(aa,bb),VSTACK(I2:M2,SORTBY(h,MATCH(TAKE(h,,1),TAKE(h,,1),))))


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-30 22:27 | 显示全部楼层
edwin11891 发表于 2024-10-30 13:21
在此基础上,通过自定义函数做了一个通用公式,如图中示例,如还有添加源数据块,只需在前面的数据源中仿 ...

大神,这个函数在同一张sheet没有问题,如果数据源在不同的sheet就会报错。

TA的精华主题

TA的得分主题

发表于 2024-10-30 22:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
gwgha 发表于 2024-10-30 22:27
大神,这个函数在同一张sheet没有问题,如果数据源在不同的sheet就会报错。

那就修改一下数据源啊,在所有引用数据前面加上 “数据源!" (数据源是你的表名称)。

=LET(Sa,VSTACK(数据源!C2:G2,数据源!C45:H45,数据源!C60:H60),Sb,HSTACK(数据源!A3:A38,数据源!A46:A55,数据源!A61:A70),Sc,HSTACK(数据源!B3:B38,数据源!B46:B55,数据源!B61:B70),Sd,VSTACK(数据源!A1,数据源!A44,数据源!A59),Se,HSTACK(数据源!C3:G38,数据源!C46:H55,数据源!C61:H70),fx,LAMBDA(x,y,TOCOL(IF(y<>"",x,1/0),2,1)),Res,LAMBDA(XX,YY,ZZ,SS,Src,IFNA(HSTACK(fx(XX,Src),YY,fx(ZZ,Src),fx(SS,Src),fx(Src,Src)),YY)),s,REDUCE("",SEQUENCE(ROWS(Sa)),LAMBDA(x,y,VSTACK(x,Res(CHOOSEROWS(Sa,y),CHOOSEROWS(Sd,y),CHOOSECOLS(Sb,y),CHOOSECOLS(Sc,y),CHOOSECOLS(Se,SEQUENCE(SUM(N(IFERROR(CHOOSEROWS(Sa,y)<>"",0))),,1+SUM(N(IFERROR(TAKE(Sa,y-1)<>"",0))))))))),SORT(DROP(s,1)))

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-30 22:57 | 显示全部楼层
edwin11891 发表于 2024-10-30 22:35
那就修改一下数据源啊,在所有引用数据前面加上 “数据源!" (数据源是你的表名称)。

=LET(Sa,VSTACK( ...

我修改过了的,如果分别把表放在sheet1,sheet2,sheet3,只能取到第一个表格的结果,其他的报错。

TA的精华主题

TA的得分主题

发表于 2024-10-31 10:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =LET(款号888,DROP(REDUCE("",C2:G2,LAMBDA(X,Y,LET(T,CHOOSECOLS(C3:G38,MATCH(Y,C2:G2,0)),VSTACK(X,IFNA(HSTACK(Y,IFNA(HSTACK("款号888",FILTER(HSTACK(A3:B38,T),T<>"")),"款号888")),Y))))),1),款号999,DROP(REDUCE("",C41:H41,LAMBDA(X,Y,LET(T,CHOOSECOLS(C42:H51,MATCH(Y,C41:H41,0)),VSTACK(X,IFNA(HSTACK(Y,IFNA(HSTACK("款号999",FILTER(HSTACK(A42:B51,T),T<>"")),"款号999")),Y))))),1),SORT(VSTACK(款号888,款号999)))
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-10-31 20:16 , Processed in 0.027539 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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