1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 从消费订单中分日分餐提取数据,并统计出未就餐人员名单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-3-6 16:57 | 显示全部楼层

自己在最外面套个iferror就可以了啊

TA的精华主题

TA的得分主题

发表于 2025-3-6 17:08 | 显示全部楼层
本帖最后由 mykitami 于 2025-3-6 17:19 编辑
zdblhq 发表于 2025-3-6 16:53
请问能不能让里面显示的不是次数,直接显示5或9或8,怎么修改

=LET(_Can,IF(--Sheet0!I2:I10320=8," 8",--Sheet0!I2:I10320),_Rq,INT(Sheet0!R2:R10320),_h,HSTACK(Sheet0!F2:F10320,Sheet0!B2:B10320,Sheet0!G2:G10320),_l,HSTACK(_Rq,_Can),PIVOTBY(_h,_l,_Can*1,SUM,0,0,,0,))

红色部分是改动过的

有一个叫万小红的,2025年3月5日刷了两次早餐卡,汇总为10

消费订单(统计模板) --公式 的副本.zip

1.36 MB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2025-3-7 19:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=PIVOTBY(Sheet0!H2:H10320,HSTACK(TEXT(INT(Sheet0!R2:R10320),"mm/dd/yy"),TEXT(Sheet0!I2:I10320,"0")),Sheet0!H2:H10320&","&Sheet0!F2:F10320,LAMBDA(x,TEXTJOIN(",",1,FILTER(学生登记!C:C,ISERROR(XMATCH(学生登记!B:B&","&学生登记!A:A,x))*(学生登记!B:B=TEXTBEFORE(TAKE(x,1),",")),""))),0,0,,0)

TA的精华主题

TA的得分主题

发表于 2025-3-7 21:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
分日分餐统计表D2,下拉
=LET(s,FILTER(Sheet0!$I$2:$R$10320,Sheet0!$F$2:$F$10320=分日分餐统计!A3),a,INT(--TAKE(s,,-1))&"-"&LEFT(TAKE(s,,1)),b,SCAN("",$D$1:$R$1,LAMBDA(x,y,IF(y<>"",y,x)))&"-"&$D$2:$R$2,IFERROR(BYCOL(IF(a=b,1,0),SUM),""))

TA的精华主题

TA的得分主题

发表于 2025-3-8 09:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =SUM((LOOKUP(9^9,$D$1:D$1)=INT(Sheet0!$R$2:$R$10320))*((Sheet0!$K$2:$K$10320)*1=分日分餐统计!D$2)*(Sheet0!$F$2:$F$10320=分日分餐统计!$A3))
复制代码
  1. =TEXTJOIN(CHAR(10),TRUE,FILTER(FILTER(学生登记!$C$2:$C$1376,学生登记!$B$2:$B$1376=未进餐人员表!$B3,""),NOT(BYROW(N(FILTER(学生登记!$A$2:$A$1376,学生登记!$B$2:$B$1376=未进餐人员表!$B3,"")=TOROW(FILTER(Sheet0!$F$2:$F$10320,(LOOKUP(9^9,$C$1:C$1)=INT(Sheet0!$R$2:$R$10320))*((Sheet0!$K$2:$K$10320)*1=C$2)*(Sheet0!$H$2:$H$10320=未进餐人员表!$B3),""))),SUM)),""))
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-1 16:56 | 显示全部楼层
橒♂蝣 发表于 2025-3-7 19:15
=PIVOTBY(Sheet0!H2:H10320,HSTACK(TEXT(INT(Sheet0!R2:R10320),"mm/dd/yy"),TEXT(Sheet0!I2:I10320,"0")), ...

这个公式很好,就是统计出来是按5\8\9的顺序排列的,5元是早餐,9元是中餐,8元是晚餐,能不能按5\9\8也就是按早中晚的顺序排,谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-4-1 17:06 | 显示全部楼层
mykitami 发表于 2025-3-6 17:08
=LET(_Can,IF(--Sheet0!I2:I10320=8," 8",--Sheet0!I2:I10320),_Rq,INT(Sheet0!R2:R10320),_h,HSTACK(She ...

请问1.如果中午晚上消费数据都是9元,能按5、9、9和上表一样统计吗?
      2.消费数据达到10万条时为什么出现了1900年元月0日,怎么处理?谢谢

TA的精华主题

TA的得分主题

发表于 2025-4-1 17:35 | 显示全部楼层
=LET(D,GROUPBY(HSTACK(INT(Sheet0!R2:R10320),Sheet0!G2:G10320),Sheet0!G2:G10320,COUNTA,,0),W,FILTER(TAKE(D,,2),TAKE(D,,-1)<3),GROUPBY(TAKE(W,,1),DROP(W,,1),ARRAYTOTEXT,,0))
image.png

TA的精华主题

TA的得分主题

发表于 2025-4-1 17:36 | 显示全部楼层
不一定按你的要求,仅供参考。

TA的精华主题

TA的得分主题

发表于 2025-4-1 22:31 | 显示全部楼层
zdblhq 发表于 2025-4-1 17:06
请问1.如果中午晚上消费数据都是9元,能按5、9、9和上表一样统计吗?
      2.消费数据达到10万条时为什 ...

问题1   可以的
问题2.  10万条,是因为有空行,空也代表0,如果是日期格式就为变为1900年1月0日,解决办法就是先清除掉空行。
公式已经更改,请看附件,已经扩充到数据可以达到90多万条。

消费订单(统计模板) --公式 (早5午9晚9).zip

1.34 MB, 下载次数: 9

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

本版积分规则

1234

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

GMT+8, 2025-4-23 22:09 , Processed in 0.027790 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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