首页 > 解决方案 > VLOOKUP/在 Google 表格上一次转置多个 ID/搜索键

问题描述

我目前有一张工作表,我可以在其中将项目列表从一张工作表转移到另一张工作表(行到列)。

我想知道是否有办法做到这一点,以便我可以一次提取多个搜索键/ID,并一次以列格式自动填充。

目前:

  1. 数据表选项卡:我的项目 ID(例如“11111”)和我的项目标签(例如快乐)。
  2. 转置表选项卡:如果我在 A2 中输入一个 ID(存在于“数据表”选项卡上),它会为我转置标签。
  3. 目标:如果可以一次输入多个项目 ID 并让它如图所示填充(因此一次转置多个项目+它们的标签)。

可能是诸如 INDEX、MATCH 或辅助列之类的东西,或者与要排序的 SQL 查询相关的东西……?谢谢!

这是测试表!:链接

标签: google-sheetsvlookuptranspose

解决方案


这是一个有效的公式:

=query(
  {
    arrayformula(to_text('Data Sheet'!A2:A)),'Data Sheet'!B2:B;
    arrayformula(to_text('Data Sheet'!A2:A)),'Data Sheet'!C2:C;
    arrayformula(to_text('Data Sheet'!A2:A)),'Data Sheet'!D2:D;
    arrayformula(to_text('Data Sheet'!A2:A)),'Data Sheet'!E2:E;
    arrayformula(to_text('Data Sheet'!A2:A)),'Data Sheet'!F2:F
  },
  "select Col1, Col2 where Col1 is not null and Col2 is not null and (Col1='" & SUBSTITUTE(A2, ",", "' or Col1='") & "') order by Col1"
)

主要思想是:

={
  A1:A3,B1:B3;
  A1:A3,C1:C3
}

会产生

={
  A1,B1;
  A2,B2;
  A3,B3;
  A1,C1;
  A2,C2;
  A3,C3
}

所以要生成你可以做的所有对

={
  A2:A,B2:B;
  A2:A,C2:C;
  A2:A,D2;D;
  ...
}

现在,第一列的值被解释为数字,所以我们需要将它们转换为文本以便能够比较它们。所以我换成A2:Aarrayformula(to_text(A2:A)). 然后我明确地填写了工作表名称。

现在我们有了所有对(包括空对),我们可以使用查询将它们过滤掉。过滤器的第一部分是删除没有任何值的行。第二部分生成并过滤搜索键。这个工作原理如下:从x,y,z我们需要得到(Col1='x' or Col1='y' or Col1='z'). 如果我们,' or Col1='您替换可以看到我们得到了中间部分。我们用替代品来做到这一点。所以与查询的其余部分连接,我们得到了它!

参考


推荐阅读