在 ArrayFormula 中使用 Google 工作表中的列名称(标题)引用另一个 sheet 中的列
Reference a column in another sheet using column name (heading) in Google Sheets inside an ArrayFormula
我在 https://docs.google.com/spreadsheets/d/1i96cjWWGwLQQd2enqQhLylFo31n5GyxbCTcTEPk2I2A/edit#gid=0 有一个例子 sheet。
我的问题分为两个部分。
第 1 部分
在names
sheet中,在C1
中,我有这个公式:
={
"Is Special";
ARRAYFORMULA(
IF(
A2:A <> "",
REGEXMATCH(B2:B, "b|d|e"),
)
)
}
该公式按预期工作,但我不喜欢 B2:B
参考,因为我要检查的列不是很明显。我宁愿通过名称引用该列(在本例中为 First Name
)。那可能吗?我可以用一些公式或函数替换 B2:B
,让我通过搜索 First Name
来查找列范围吗?我知道我可以使用 MATCH
来获取 First Name
的列号,但我不确定如何将其放入此公式中——尤其是因为我不能在 [= 中使用 INDRECT
24=].
类似于:
={
"Is Special";
ARRAYFORMULA(
IF(
A2:A <> "",
REGEXMATCH([some formula or function that lets me lookup the column range by searching for "First Name"], "b|d|e"),
)
)
}
第 2 部分
与上面类似,在 names
sheet 中,在 D1
中我有这个公式:
={
"Count of one Properties";
ARRAYFORMULA(
IF(
A2:A <> "",
COUNTIFS(
properties!A:A, A2:A,
properties!B:B, "one"
),
)
)
}
公式按预期工作。但是,我不喜欢 properties!B:B
参考。阅读公式时,我检查的 properties
sheet 中的哪一列并不明显。是否有可能像上面那样通过搜索列名获取列范围,在本例中为 type
?
不确定您是否熟悉“命名范围”:
={"Is Special"; ARRAYFORMULA(IF(A2:A<>"", REGEXMATCH(FirstName, "b|d|e"), ))}
更新:
={"Is Special"; ARRAYFORMULA(IF(A2:A<>"",
REGEXMATCH(QUERY(FirstName, "offset 1", 0), "b|d|e"), ))}
如果您不喜欢命名范围,请尝试:
={"Is Special"; ARRAYFORMULA(IF(A2:A<>"",
REGEXMATCH(FILTER({A2:B, D2:E}, {A1:B1, D1:E1}="First Name"), "b|d|e"), ))}
或喜欢:
={"Count of one Properties"; ARRAYFORMULA(IF(A2:A<>"",
COUNTIFS(properties!A2:A, A2:A,
VLOOKUP(ROW(properties!A2:A),{ROW(properties!A2:A), properties!A2:Z},
MATCH("type", properties!1:1, 0)+1, 0), "one"), ))}
我在 https://docs.google.com/spreadsheets/d/1i96cjWWGwLQQd2enqQhLylFo31n5GyxbCTcTEPk2I2A/edit#gid=0 有一个例子 sheet。
我的问题分为两个部分。
第 1 部分
在names
sheet中,在C1
中,我有这个公式:
={
"Is Special";
ARRAYFORMULA(
IF(
A2:A <> "",
REGEXMATCH(B2:B, "b|d|e"),
)
)
}
该公式按预期工作,但我不喜欢 B2:B
参考,因为我要检查的列不是很明显。我宁愿通过名称引用该列(在本例中为 First Name
)。那可能吗?我可以用一些公式或函数替换 B2:B
,让我通过搜索 First Name
来查找列范围吗?我知道我可以使用 MATCH
来获取 First Name
的列号,但我不确定如何将其放入此公式中——尤其是因为我不能在 [= 中使用 INDRECT
24=].
类似于:
={
"Is Special";
ARRAYFORMULA(
IF(
A2:A <> "",
REGEXMATCH([some formula or function that lets me lookup the column range by searching for "First Name"], "b|d|e"),
)
)
}
第 2 部分
与上面类似,在 names
sheet 中,在 D1
中我有这个公式:
={
"Count of one Properties";
ARRAYFORMULA(
IF(
A2:A <> "",
COUNTIFS(
properties!A:A, A2:A,
properties!B:B, "one"
),
)
)
}
公式按预期工作。但是,我不喜欢 properties!B:B
参考。阅读公式时,我检查的 properties
sheet 中的哪一列并不明显。是否有可能像上面那样通过搜索列名获取列范围,在本例中为 type
?
不确定您是否熟悉“命名范围”:
={"Is Special"; ARRAYFORMULA(IF(A2:A<>"", REGEXMATCH(FirstName, "b|d|e"), ))}
更新:
={"Is Special"; ARRAYFORMULA(IF(A2:A<>"",
REGEXMATCH(QUERY(FirstName, "offset 1", 0), "b|d|e"), ))}
如果您不喜欢命名范围,请尝试:
={"Is Special"; ARRAYFORMULA(IF(A2:A<>"",
REGEXMATCH(FILTER({A2:B, D2:E}, {A1:B1, D1:E1}="First Name"), "b|d|e"), ))}
或喜欢:
={"Count of one Properties"; ARRAYFORMULA(IF(A2:A<>"",
COUNTIFS(properties!A2:A, A2:A,
VLOOKUP(ROW(properties!A2:A),{ROW(properties!A2:A), properties!A2:Z},
MATCH("type", properties!1:1, 0)+1, 0), "one"), ))}