google-sheets - VLOOKUP/在 Google 表格上一次转置多个 ID/搜索键
问题描述
我目前有一张工作表,我可以在其中将项目列表从一张工作表转移到另一张工作表(行到列)。
我想知道是否有办法做到这一点,以便我可以一次提取多个搜索键/ID,并一次以列格式自动填充。
目前:
- 数据表选项卡:我的项目 ID(例如“11111”)和我的项目标签(例如快乐)。
- 转置表选项卡:如果我在 A2 中输入一个 ID(存在于“数据表”选项卡上),它会为我转置标签。
- 目标:如果可以一次输入多个项目 ID 并让它如图所示填充(因此一次转置多个项目+它们的标签)。
可能是诸如 INDEX、MATCH 或辅助列之类的东西,或者与要排序的 SQL 查询相关的东西……?谢谢!
这是测试表!:链接
解决方案
这是一个有效的公式:
=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:A
了arrayformula(to_text(A2:A))
. 然后我明确地填写了工作表名称。
现在我们有了所有对(包括空对),我们可以使用查询将它们过滤掉。过滤器的第一部分是删除没有任何值的行。第二部分生成并过滤搜索键。这个工作原理如下:从x,y,z
我们需要得到(Col1='x' or Col1='y' or Col1='z')
. 如果我们,
为' or Col1='
您替换可以看到我们得到了中间部分。我们用替代品来做到这一点。所以与查询的其余部分连接,我们得到了它!
参考
推荐阅读
- sql - 条件发生时将所有行标记为 1
- laravel - Laravel Eloquent 多对多对一关系
- php - 何将我的活动集成到 Google 日历
- sharepoint - 通过单击指向 word 文档的直接超链接,在用户桌面应用程序中打开 sharepoint word 文件
- node.js - 错误:找不到模块;反应项目中的打字稿错误
- python - 检测 Python 脚本是否在焦点上运行
- flutter - 是否可以在 Flutter 中以 SVG 格式重复图像(图案)?
- pine-script - 简单问题:当 RSI 低于 10 对于一定数量的柱时的条件
- html - 不能对主要元素的最小高度使用百分比值
- java - 我正在尝试将变量传递给 java 中的 cronSchedule 表达式函数