如何跨表,多行,文本匹配

Power Query Jason.L ⋅ 于 2018-11-27 22:38:05 ⋅ 最后回复由 Jason.L 2018-12-05 10:22:40 ⋅ 2832 阅读

如下图,如何从第一个表中找到第二表中的号? 结果见最右侧表
file

成为第一个点赞的人吧 :bowtie:
最佳答案
  • klzb
    2018-11-28 09:18:21

    Table.AddColumn(表1,"品号",(x)=>Table.SelectRows(表2,each Text.Contains([规格],x[PartNO]))[品号]{0})

回复数量: 4
  • klzb
    2018-11-28 09:18:21

    Table.AddColumn(表1,"品号",(x)=>Table.SelectRows(表2,each Text.Contains([规格],x[PartNO]))[品号]{0})

  • 飞天篮球 Talk is cheap, show me your code.
    2018-11-28 16:58:35

    fyi...

    也可以在PBID中试试Table.FuzzyNestedJoin这个函数。

    把那两张表分别命名为表1,表2,通过Excel导入该工作簿:

    let
        源 = Excel.Workbook(File.Contents("\\Mac\Home\Desktop\11.xlsx"), null, true),
    
        fuzzyNestedJoin = Table.FuzzyNestedJoin( 源{[Name="表1"]}[Data],"PartNo",
                                                 源{[Name="表2"]}[Data],"规格",
                                                 "a",
                                                  1,
                                                 [ IgnoreCase=true,
                                                   IgnoreSpace=true,
                                                   Threshold=0 ] ),
    
        expnd = Table.ExpandTableColumn( fuzzyNestedJoin, "a", {"品号"} )
    in
        expnd

    file

  • Jason.L
    2018-12-05 10:21:56

    @klzb 实验后可行,但是数据量大了之后非常卡,需要运算很长时间

  • Jason.L
    2018-12-05 10:22:40

    @飞天篮球 还没学会用PBID,待稍后尝试呢

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter