根据数组值将数据移动到另一个表

问题描述 投票:0回答:3

我有两个 Excel 表格:

表流程:
enter image description here

餐桌订单:
enter image description here

当存在值为 ProcessID 的标签时,我想使用 Orders 表中的 OrderID 填充 Process 表中的 OrderID 列。

我正在研究 Excel 数组,因此如果需要,我知道如何将标签更改为类似 {217,218,229,230} 的内容。

这就是我正在寻找的结果:
enter image description here


我自己的解决方案:

在遇到下面答案中提出的解决方案的问题后 - 对于较大的字段大小(标签),我改为按分隔符将标签分成 60 列(这比我需要的多了几列,但您需要自己检查一下,因为 Excel自动值并不总是正确的,或者看起来如此) enter image description here 然后使用 =LOOKUP(A:A;Orders!$B$1:$BI$1566; Orders!A:A) enter image description here

回复CLR的回答:
enter image description here

excel vba excel-formula lookup
3个回答
2
投票

您可以使用公式来完成此操作:

=IFERROR(INDEX(OrderTab!A:A,MATCH("*|"&A2&"|*","|"&OrderTab!B:B&"|",0)),"Not Found")

假设您的订单表位于名为

OrderTab
的工作表上。改变这个。

结果:

enter image description here


1
投票

Excel365 可能有一种更简单的方法,但至少在旧版本中这是有效的:

enter image description here

C 栏公式:

=INDEX($E$2:$E$9;SUMPRODUCT(--(IFERROR(SEARCH("|"&A2&"|";"|"&$F$2:$F$9&"|");0)>0)*ROW($F$2:$F$9))-1)

为此,您需要将公式作为数组公式输入,然后按 CTRL+SHIFT+ENTER


0
投票

如果你有 Microsoft 365,你可以尝试这个(不在这里竞争简短的答案:)

  • 对于每个进程ID
     MAP(process_ids, LAMBDA(process_id
  • 在订单 ID 的标签中,每个订单 ID 的标签
    MAP(tags_for_order_ids, LAMBDA(tags_for_order_id,
  • 拆分标签并寻找匹配项
    OR(process_id = TRIM(TEXTSPLIT(tags_for_order_id, "|"))
    `
  • 如果匹配,则返回订单 ID,并使用
    #NA
     删除不匹配 (
    TOCOL
  • )
  • 在第一个单元格中输入以下内容(示例中为
    C2
    ),无需填写
=LET(
    process_ids, TRIM(A2:A9),
    tags_for_order_ids, OrderTab!B2:B9,
    order_ids, OrderTab!A2:A9,
    MAP(
        process_ids,
        LAMBDA(process_id,
            IFERROR(
                TOCOL(
                    IF(
                        MAP(
                            tags_for_order_ids,
                            LAMBDA(tags_for_order_id,
                                OR(
                                    process_id =
                                        TRIM(TEXTSPLIT(tags_for_order_id, "|"))
                                )
                            )
                        ),
                        order_ids,
                        NA()
                    ),
                    3
                ),
                "no match"
            )
        )
    )
)

Formula and resuult


在 Excel 的单元格内开始新的文本行 - Microsoft 支持

© www.soinside.com 2019 - 2024. All rights reserved.