【发布时间】:2022-12-21 08:29:05
【问题描述】:
我正在尝试协调一些项目数据。我有一个主表,我在其中提取了需要协调的项目。在表 1 中,项目名称有一个额外的标签或标识符,表 2 中有没有标签的“匹配”项目。我正在尝试匹配项目,以便我可以更新其他列中的值并最终用更改替换主表中的项目。
问题:有没有有效的方法来做到这一点?我需要每月进行一次。
例子: 表 1 - 带有标签/项目标识符(AB 或 DDPC)
| Project Name | Profit | Hours | Sales |
|---|---|---|---|
| PROJ123AB - GeneralStoreFront | 100 | 15 | 1000 |
| PROJ123 - DDPCGeneralStoreBack | 100 | 5 | 200 |
| PROJ999AB - MerchStoreFrontDDPC | 100 | 5 | 800 |
| PROJ999AB - MerchStoreBack | 100 | 10 | 500 |
| PROJ111 - AllStoresDDPC | 100 | 10 | 500 |
| PROJ999-01AB - MerchStore123 | 100 | 10 | 500 |
| PROJ111-01AB - AllStores123DDPC | 100 | 10 | 500 |
表 2 - 无标签/项目标识符
| Project Name | Profit | Hours | Sales |
|---|---|---|---|
| PROJ123 - GeneralStoreFront | 125 | 50 | 2000 |
| PROJ123 - GeneralStoreBack | 200 | 15 | 500 |
| PROJ999 - MerchStoreFront | 50 | 50 | 300 |
| PROJ999 - MerchStoreBack | 200 | 10 | 200 |
| PROJ111 - AllStores | 10 | 10 | 100 |
| PROJ999-01 - MerchStore123 | 100 | 10 | 500 |
| PROJ111-01 - AllStores123 | 100 | 10 | 500 |
我尝试将表 1 中的项目名称列拆分为仅用于项目编号(ex PROJ123),表 2 也是如此,然后在表 2 中创建了一个自定义列,其中 IF 语句引用回表 1 项目名称(仅包含 PROJ#)但这些值没有正确返回。
例子: = Table.AddColumn(#"Renamed Columns1", "NEW Sales", each if #"Table1"[PROJ] = [PROJ] then #"Table1"[Sales] else "no match").但这对所有行都返回了“不匹配”。
理想情况下,决赛桌应该是这样的:
| Project Name | Profit | Hours | Sales |
|---|---|---|---|
| PROJ123 - GeneralStoreFront | 112.5 | 65 | 1000 |
| PROJ123 - GeneralStoreBack | 150 | 20 | 200 |
| PROJ999 - MerchStoreFront | 75 | 55 | 800 |
| PROJ999 - MerchStoreBack | 150 | 20 | 500 |
| PROJ111 - AllStores | 55 | 20 | 500 |
| PROJ999-01 - MerchStore123 | 100 | 20 | 500 |
| PROJ111-01 - AllStores123 | 100 | 20 | 500 |
***编辑:在每个表中再添加 2 行,以显示项目名称的另一种变体,并说明在找到匹配的项目“对”后我需要对其他列做什么。
两个项目“对”之间的平均利润栏。 两个项目“对”之间的小时数列相加。 Sales 列使用表 1 [Sales] 中的值。
TIA
【问题讨论】:
标签: powerquery data-cleaning string-matching