excel 在Power Query中根据多个条件(包括子字符串)合并表

s4n0splo  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(186)

我对PowerQuery比较陌生,它的功能让我很着迷。
我正尝试将第一个定义良好的表与第二个以自由文本形式输入数据的表连接起来(shakter)。
我想尝试和做的是以下几点:

left join if table1.id = table2.id OR
    table1.id in table2.metadata OR
    (firstName in metadata AND lastName in metadata)

有什么方法可以做到这一点吗?请看下面的示例表。我的一个问题是,我无法真正从元数据中提取所需的内容到新列中,因为这些值没有特定的分隔符,所有值并不总是存在,有时顺序也不相同。
我有两张table:

    • 表一**

| 日期|名字|姓氏|识别号|
| - ------|- ------|- ------|- ------|
| 2023年1月1日|约翰|史密斯|小行星123456|
| 2023年1月1日|简|母鹿|小行星654321|

    • 表二**

| 日期|元数据|识别号|
| - ------|- ------|- ------|
| 2023年2月1日|一些文本1235:约翰·史密斯什么的|小行星123456|
| 2023年2月1日|某些文本:1236简·某某654321|零|

qvsjd97n

qvsjd97n1#

给你。

添加新列,如下所示。

Table.SelectRows(Table2,
(x)=> [ID]= x[ID] or 
Text.Contains(x[metadata], Text.From( [ID])) or 
(Text.Contains(x[metadata],[firstName]) and Text.Contains(x[metadata],[lastName]))

)

仅供参考,PQ有一个相当强大的模糊合并选项,这可能是有用的非精确匹配。

相关问题