将多列中的 ID 标准化为一列

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

我有与产品名称、工具名称和 ID 工具相关的数据,数据示例如下:

产品名称 工具名称 ID 工具(标准) ID 工具(替代方案 1) ID 工具(替代方案 2)
产品A 工具A1 11-A1
产品A 工具A2 12-A2-01 12-A2-02 12-A2-03
产品A 工具A3 13-A3
产品B 工具B1 21-B1-01 21-B1-02
产品B 工具B2 22-B2
产品C 工具C1

我想将其清理为预期的输出,如下所示: enter image description here

对于输出,我尝试了公式:

=LET(
    data; C3:E11;
    row; ROW(C3:E11)-ROW(C3:C11)+1;
    column; COLUMN(C3:E11)-COLUMN(C3:C11)+1;
    sorted_data; FLATTEN(data);
    label; FLATTEN(IF(COLUMN(C3:E11)-COLUMN(C3:C11)=0; "Standard"; "Alternative"));
    result; IFERROR(FILTER(HSTACK(sorted_data; label); LEN(sorted_data)>0); HSTACK(""; ""));
    result
) 

但是工具类型信息没有出现,我仍然对如何输入产品和工具名称感到困惑,因为它一直给出错误。有什么改进公式的建议吗?

这是测试表链接: https://docs.google.com/spreadsheets/d/11caWeL-PPyioovetrUf6rcy6iTb8vVuHgftAWzffpSM/edit?usp=sharing

google-sheets google-sheets-formula spreadsheet
1个回答
-1
投票

要将多列中的 ID 标准化为 Google 表格中的一列,您可以将

ARRAYFORMULA
函数与其他公式(如
FLATTEN
FILTER
UNIQUE
)结合使用。以下是实现这一目标的方法:

公式

=ARRAYFORMULA(UNIQUE(FILTER(FLATTEN(A:C), FLATTEN(A:C) <> "")))

说明

  1. FLATTEN(A:C)
    :将 A、B 和 C 列中的所有值合并到一个数组中。
  2. FILTER(FLATTEN(A:C), FLATTEN(A:C) <> "")
    :从展平数组中删除空白单元格。
  3. UNIQUE(...)
    :确保结果数组仅包含不同的值(无重复)。
  4. ARRAYFORMULA(...)
    :确保公式适用于所有行,无需手动向下拖动。

A:C
替换为您想要标准化的实际列范围。

也请访问我的博客

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