根据单元格引用在 google 个工作表中搜索另一个 tab/sheet 的值
Search a value from another tab/sheet in google sheets based on cell reference
我正在尝试在 google sheet 中创建一个搜索页面,用户在其中的一个或多个单元格中输入值,然后在其他单元格 auto-populate 中输入值来自另一个 tab/sheet 基于在搜索单元格中输入的值。
我试图在数组中使用 VLOOKUP
up 但它给出了错误或 N/A
.
我有 'sheet1' 的数据来自 google 表单(从 A 到 BN 的列),我正在尝试在 'Sheet2' 中创建一个搜索页面,位于用户的顶部例如可以写 ID-number,我想从 'sheet1' 中获取与写在 'sheet1'.[=22 的同一行上的 ID-number 相匹配的列的值=]
我已经检查过:
还有其他的,但我不是在寻找任何脚本。
在简单形式中,公式为:
=VLOOKUP(B3,'sheet1'!A:BN,40,False)
但是因为我的列太多而且我也需要获取其他值我正在使用:
=ArrayFormula(IF(LEN(B3),VLOOKUP(B3,{'sheet1'!A:BN},{iferror(match("ID-number",'sheet1'!A1:BN1,0),"No match")},FALSE),""))
解释:
B3是用户输入id号值的单元格
然后...:[=22=]
{'sheet1'!A:BN},{iferror(match("ID-number",'sheet1'!A1:BN1,0),"No match")}
是我正在寻找我正在寻找的价值标题的列号的地方,在这种情况下,它是 AN,这将是第 40 列,但它可以是任何其他列。
然后 ArrayFormula 是因为 sheet1 是来自 Google 表单的数据,该表单正在使用并不断增加行。
它给我一个 #N/A
的错误,因为它没有找到范围内的值(在 sheet 2 中的 B3 中输入)从 A 到 BN 具有值的列)
示例 sheet 有效答案是 [此处]:
(https://docs.google.com/spreadsheets/d/1qLcJdCn4EdV7lPOAfZ_CMak1LBkve45FL5SXyqBV3L8/edit?usp=sharing)
注意: search/return 的值在 sheet 1 中的同一行,当输入新搜索时,只有该行发生变化。
您不能在数组公式中使用匹配。
我建议你使用像
这样的东西
=ArrayFormula(IF(LEN(B3),VLOOKUP(B3,{'sheet1'!AN:AN,'sheet1'!A:BN},column('sheet1'!X:X)-column('sheet1'!A:A)+1,FALSE),""))
其中 X 是结果列(根据您的需要进行更改)。
=ARRAYFORMULA(
IF(B3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(B3, data!A:E, {1,2,3,5}, 0)), CHAR(10))), "♦", ),
IF(C3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(C3, {data!C:C, data!A:E}, {2,3,4,6}, 0)), CHAR(10))), "♦", ),
IF(D3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(D3, {data!E:E, data!A:E}, {2,3,4,6}, 0)), CHAR(10))), "♦", ), ))))
更新:
=IFERROR(ARRAYFORMULA(
IF(B3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(B3, {data!AN:AN, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ),
IF(C3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(C3, {data!AK:AK, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ),
IF(E3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(E3, {data!BJ:BJ, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ),
IF(D3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(D3, {data!R:R, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ), ))))), "no match found")
我正在尝试在 google sheet 中创建一个搜索页面,用户在其中的一个或多个单元格中输入值,然后在其他单元格 auto-populate 中输入值来自另一个 tab/sheet 基于在搜索单元格中输入的值。
我试图在数组中使用 VLOOKUP
up 但它给出了错误或 N/A
.
我有 'sheet1' 的数据来自 google 表单(从 A 到 BN 的列),我正在尝试在 'Sheet2' 中创建一个搜索页面,位于用户的顶部例如可以写 ID-number,我想从 'sheet1' 中获取与写在 'sheet1'.[=22 的同一行上的 ID-number 相匹配的列的值=]
我已经检查过:
还有其他的,但我不是在寻找任何脚本。
在简单形式中,公式为:
=VLOOKUP(B3,'sheet1'!A:BN,40,False)
但是因为我的列太多而且我也需要获取其他值我正在使用:
=ArrayFormula(IF(LEN(B3),VLOOKUP(B3,{'sheet1'!A:BN},{iferror(match("ID-number",'sheet1'!A1:BN1,0),"No match")},FALSE),""))
解释:
B3是用户输入id号值的单元格
然后...:[=22=]
{'sheet1'!A:BN},{iferror(match("ID-number",'sheet1'!A1:BN1,0),"No match")}
是我正在寻找我正在寻找的价值标题的列号的地方,在这种情况下,它是 AN,这将是第 40 列,但它可以是任何其他列。
然后 ArrayFormula 是因为 sheet1 是来自 Google 表单的数据,该表单正在使用并不断增加行。
它给我一个 #N/A
的错误,因为它没有找到范围内的值(在 sheet 2 中的 B3 中输入)从 A 到 BN 具有值的列)
示例 sheet 有效答案是 [此处]: (https://docs.google.com/spreadsheets/d/1qLcJdCn4EdV7lPOAfZ_CMak1LBkve45FL5SXyqBV3L8/edit?usp=sharing)
注意: search/return 的值在 sheet 1 中的同一行,当输入新搜索时,只有该行发生变化。
您不能在数组公式中使用匹配。 我建议你使用像
这样的东西=ArrayFormula(IF(LEN(B3),VLOOKUP(B3,{'sheet1'!AN:AN,'sheet1'!A:BN},column('sheet1'!X:X)-column('sheet1'!A:A)+1,FALSE),""))
其中 X 是结果列(根据您的需要进行更改)。
=ARRAYFORMULA(
IF(B3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(B3, data!A:E, {1,2,3,5}, 0)), CHAR(10))), "♦", ),
IF(C3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(C3, {data!C:C, data!A:E}, {2,3,4,6}, 0)), CHAR(10))), "♦", ),
IF(D3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(D3, {data!E:E, data!A:E}, {2,3,4,6}, 0)), CHAR(10))), "♦", ), ))))
更新:
=IFERROR(ARRAYFORMULA(
IF(B3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(B3, {data!AN:AN, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ),
IF(C3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(C3, {data!AK:AK, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ),
IF(E3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(E3, {data!BJ:BJ, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ),
IF(D3<>"", SUBSTITUTE(TRANSPOSE(SPLIT(TEXTJOIN(CHAR(10)&"♦"&CHAR(10)&"♦", 1,
VLOOKUP(D3, {data!R:R, data!A:BN}, {41,38,19,11,55}, 0)), CHAR(10))), "♦", ), ))))), "no match found")