ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

我想实现这样的效果,不知道咋描述,有大佬可以指点吗

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-5 12:21 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 2108789160 于 2024-4-5 12:31 编辑

我想实现这样的效果,有大佬可以指点吗 test.zip (7.16 KB, 下载次数: 16)
image.png
image.png

TA的精华主题

TA的得分主题

发表于 2024-4-5 12:42 | 显示全部楼层
image.png
  1. let
  2.     项目 = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
  3.     国籍 = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
  4.     Custom1 = #table({"项目","x","y"},List.TransformMany(Table.ToRows(项目),each Text.Split(_{1}," "),(x,y)=>{x{0},y,国籍{[人员=y]}[国籍]})),
  5.     Custom2 = Table.Pivot(Custom1,List.Distinct(Custom1[y]),"y","x",Text.Combine)
  6. in
  7.     Custom2
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-4-5 12:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-4-5 12:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub 整理()
Dim ar As Variant
Dim d As Object
Set d = CreateObject("scripting.dictionary")
Set dc = CreateObject("scripting.dictionary")
With Sheets("国籍")
    r = .Cells(Rows.Count, 1).End(xlUp).Row
    If r < 2 Then MsgBox "国籍工作表为空!": End
    ar = .Range("a1:b" & r)
End With
For i = 2 To UBound(ar)
    If ar(i, 1) <> "" Then
        d(ar(i, 1)) = i
       dc(ar(i, 2)) = ""
    End If
Next i
sl = dc.Count
dc.RemoveAll
With Sheets("项目")
    rs = .Cells(Rows.Count, 1).End(xlUp).Row
    If rs < 2 Then MsgBox "项目工作表为空!": End
    br = .Range("a1:b" & r)

    ReDim arr(1 To UBound(br), 1 To sl + 1)
    arr(1, 1) = "项目"
    y = 1
    n = 1
    For s = 2 To UBound(br)
        If br(s, 1) <> "" Then
            n = n + 1
            arr(n, 1) = br(s, 1)
            rr = Split(br(s, 2), " ")
            For i = 0 To UBound(rr)
                zd = rr(i)
                If zd <> "" Then
                    xh = d(Trim(zd))
                    If xh <> "" Then
                        gj = ar(xh, 2)
                        lh = dc(gj)
                        If lh = "" Then
                            y = y + 1
                            dc(gj) = y
                            lh = y
                            arr(1, y) = gj
                        End If
                        arr(n, lh) = zd
                    End If
                End If
            Next i
        End If
    Next s
    .Columns("i:l") = Empty
    .[i1].Resize(n, y) = arr
End With


End Sub

TA的精华主题

TA的得分主题

发表于 2024-4-5 13:00 | 显示全部楼层
test.rar (18.33 KB, 下载次数: 2)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-5 13:01 | 显示全部楼层

谢谢大佬,再咨询下大佬, image.png 这个是怎么弄出来的

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-5 13:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-4-5 13:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
2108789160 发表于 2024-4-5 13:17
谢谢大佬,我想用PQ处理哈,VBA还没学

视图,列质量

TA的精华主题

TA的得分主题

发表于 2024-4-5 15:30 | 显示全部楼层
不会M,只用菜单操作:
QQ拼音截图20240405152954.png
  1. let
  2.     源 = Excel.CurrentWorkbook(){[Name="表2"]}[Content],
  3.     按分隔符拆分列 = Table.SplitColumn(源, "人员", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"人员.1", "人员.2", "人员.3"}),
  4.     逆透视的其他列 = Table.UnpivotOtherColumns(按分隔符拆分列, {"项目"}, "属性", "值"),
  5.     合并的查询 = Table.NestedJoin(逆透视的其他列, {"值"}, 表1, {"人员"}, "表1", JoinKind.LeftOuter),
  6.     #"展开的“表1”" = Table.ExpandTableColumn(合并的查询, "表1", {"国籍"}, {"国籍"}),
  7.     删除的列 = Table.RemoveColumns(#"展开的“表1”",{"属性"}),
  8.     已透视列 = Table.Pivot(删除的列, List.Distinct(删除的列[国籍]), "国籍", "值")
  9. in
  10.     已透视列
复制代码

TA的精华主题

TA的得分主题

发表于 2024-4-5 15:37 | 显示全部楼层
整理源表,再合并查询!!!!!!!!!!!!!!!!!!!
捕获.PNG
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-9 17:19 , Processed in 0.055496 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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