ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 对于有合并单元格的数量和金额统计,不能兼得。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-17 16:54 | 显示全部楼层
ourvip 发表于 2024-10-17 16:35
感谢大佬,你的这个也是数量重复了,你看8号的数量应该都是1,你这里都重复了。

难道这不是2笔?描述里面没有明确说明数量的计算方式呀!

1729155786577.png

TA的精华主题

TA的得分主题

发表于 2024-10-17 16:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =LET(a,SCAN("",A3:A19,LAMBDA(r,t,IF(t="",r,t))),b,SCAN("",C3:C19,LAMBDA(q,w,IF(w="",q,w))),c,UNIQUE(b),REDUCE(I2:N2,c,LAMBDA(x,y,LET(s,(a=H2)*(b=y),d,IFERROR(ROWS(UNIQUE(FILTER(b,s))),0),e,DROP(REDUCE("",K2:N2,LAMBDA(m,n,HSTACK(m,IFERROR(SUM(FILTER(E3:E19,s*(D3:D19=n))),0)))),,1),VSTACK(x,HSTACK(y,d,e))))))
复制代码
1729156099422.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-17 16:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hxj119 发表于 2024-10-17 16:54
难道这不是2笔?描述里面没有明确说明数量的计算方式呀!

这里可能是我给的示例不严谨的问题,这个图已经没有这个歧义了,其实这种混合支付的项目个数,应该都是1,只是因为支付有几种,就用了几行来记录。
微信截图_20241017164804.png

TA的精华主题

TA的得分主题

发表于 2024-10-17 17:06 | 显示全部楼层
本帖最后由 edwin11891 于 2024-10-17 19:19 编辑

按照楼主的重新解释,独立单元格算2笔,合并单元格的只算1笔,并隐去数字支付金额 0 :
  1. =LET(sRc,TRANSPOSE(SCAN(,TRANSPOSE(A3:E19),LAMBDA(a,b,IF(b=0,a,b)))),n,IF(C3:C19="",0,1),a,PIVOTBY(INDEX(sRc,,3),INDEX(sRc,,4),INDEX(sRc,,5)*(INDEX(sRc,,1)=H2),SUM,,0,,0),b,IF(a=0,"",a),m,PIVOTBY(INDEX(sRc,,3),INDEX(sRc,,4),n*(INDEX(sRc,,1)=H2),SUM,,0,,0),num,VSTACK("数量",DROP(BYROW(m,SUM),1)),d,HSTACK(TAKE(b,,1),num,DROP(b,,1)),d)
复制代码
微信图片_20241017170531.png

TA的精华主题

TA的得分主题

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

大佬,数量你是不是设置为了常量1,你看我把8号的项目都改为了B,那应该项目B的数量是3,出来的还是1
111.png

TA的精华主题

TA的得分主题

发表于 2024-10-17 17:20 | 显示全部楼层
ourvip 发表于 2024-10-17 17:17
大佬,数量你是不是设置为了常量1,你看我把8号的项目都改为了B,那应该项目B的数量是3,出来的还是1

规则解释清楚了就好说,上一帖子在审核中,已经解决这个问题。

TA的精华主题

TA的得分主题

发表于 2024-10-17 19:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 uneye2 于 2024-10-17 19:11 编辑

J3=COUNTIFS($C$3:$C$19,I3,$A$3:$A$19,$H$2,$B$3:$B$19,"*")

图片1.png
图片1.png

TA的精华主题

TA的得分主题

发表于 2024-10-17 19:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
老是要审核,重新发一下:
  1. =LET(sRc,TRANSPOSE(SCAN(,TRANSPOSE(A3:E19),LAMBDA(a,b,IF(b=0,a,b)))),n,IF(C3:C19="",0,1),a,PIVOTBY(INDEX(sRc,,3),INDEX(sRc,,4),INDEX(sRc,,5)*(INDEX(sRc,,1)=H2),SUM,,0,,0),b,IF(a=0,"",a),m,PIVOTBY(INDEX(sRc,,3),INDEX(sRc,,4),n*(INDEX(sRc,,1)=H2),SUM,,0,,0),num,VSTACK("数量",DROP(BYROW(m,SUM),1)),d,HSTACK(TAKE(b,,1),num,DROP(b,,1)),d)
复制代码
微信图片_20241017192326.png

TA的精华主题

TA的得分主题

发表于 2024-10-17 19:55 | 显示全部楼层
Python+Pandas:
import pandas as pd

df = pd.read_excel('pandas exercise/sample494.xlsx', usecols='a:e', header=1, nrows=17)
df['时间'] = pd.to_datetime(df['时间'] - 2, unit='D', origin='1900-01-01')
df = df.ffill()
df1 = df.groupby(['时间', '项目', '支付方式'])['金额'].sum().unstack().fillna(0)
df1.insert(0, '数量', df.groupby(['时间', '项目']).size())
df1
image.png

TA的精华主题

TA的得分主题

发表于 2024-10-18 12:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-10-18 13:19 , Processed in 0.043265 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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