ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 自动排序加求和方案

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-23 15:26 | 显示全部楼层 |阅读模式

求助大神:
-将原始数据 表格整理成 按 表格 目标 整理

原始数据表格
image.png

目标 表格
image.png

Test.rar

11.33 KB, 下载次数: 14

TA的精华主题

TA的得分主题

发表于 2022-12-23 16:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请测试。。。。。。。。

Test.rar

20.53 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2022-12-23 16:17 | 显示全部楼层
Sub GGH()
Dim arr, brr, i, j, s, k, 行次, d
Set d = CreateObject("scripting.dictionary")
arr = Sheets("原始数据").[a1].CurrentRegion
ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2) / 2 + 1)
brr(1, 1) = "MODEL":    k = 2
For j = LBound(arr, 2) + 1 To UBound(arr, 2) Step 2
    brr(1, j / 2 + 1) = arr(1, j)
    For i = LBound(arr) + 2 To UBound(arr)
        s = arr(i, j)
        If Len(Trim(s)) = 0 Then GoTo 100
        If Not d.Exists(s) Then
            d(s) = k
            brr(k, 1) = s
            brr(k, j / 2 + 1) = brr(k, j / 2 + 1) + arr(i, j + 1)
            k = k + 1
        Else
            行次 = d(s)
            brr(行次, j / 2 + 1) = brr(行次, j / 2 + 1) + arr(i, j + 1)
        End If
100:
    Next i
Next j
Sheets("结果").[a1].Resize(k, UBound(brr, 2)) = brr
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-23 16:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-12-23 16:50 | 显示全部楼层
用pq处理后透视即可!!

Test.rar

25.37 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2022-12-23 16:51 | 显示全部楼层
=SUM(N(IF((原始数据!$B$3:$O$30=目标!$K2)*(原始数据!$B$1:$O$1=目标!L$1),原始数据!$C$3:$P$30)))

数组公式

回答Test.rar

13.24 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2022-12-23 17:12 | 显示全部楼层
试试 下班了 比较急 就没对了

Test.zip

12.99 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2022-12-23 19:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 一杯绿茶来了 于 2022-12-23 19:27 编辑

=LET(s,SORT(WRAPROWS(TOCOL(B3:O30),2)),_a,DROP(UNIQUE(TAKE(s,,1)),-1),_b,UNIQUE(B1:O1,TRUE,TRUE),yy,REDUCE(HSTACK(B2,_b),_a,LAMBDA(x,y,VSTACK(x,HSTACK(y,DROP(REDUCE("",_b,LAMBDA(r,c,HSTACK(r,IFERROR(SUM(FILTER(OFFSET(A3:A30,,MATCH(c,B1:O1,)+1),OFFSET(A3:A30,,MATCH(c,B1:O1,))=y)),"")))),,1))))),yyds,REDUCE("合计",SEQUENCE(,COUNT(_b)),LAMBDA(x,y,HSTACK(x,SUM(CHOOSECOLS(DROP(yy,1,1),y))))),VSTACK(yy,yyds))
你这个示例好像结果不对哎!
12-23-1.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-27 09:40 | 显示全部楼层
一杯绿茶来了 发表于 2022-12-23 19:17
=LET(s,SORT(WRAPROWS(TOCOL(B3:O30),2)),_a,DROP(UNIQUE(TAKE(s,,1)),-1),_b,UNIQUE(B1:O1,TRUE,TRUE),yy, ...

结果不对就是对的;RANDBETWEEN 函数没有及时取消造成结果不对

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-27 09:41 | 显示全部楼层
一杯绿茶来了 发表于 2022-12-23 19:17
=LET(s,SORT(WRAPROWS(TOCOL(B3:O30),2)),_a,DROP(UNIQUE(TAKE(s,,1)),-1),_b,UNIQUE(B1:O1,TRUE,TRUE),yy, ...

高手;我先研究一下
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-28 03:17 , Processed in 0.042766 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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