繁体   English   中英

在 ArrayFormula 中使用 Google 表格中的列名(标题)引用另一张表格中的列

[英]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有一个示例表。

我的问题有两个部分。

第1部分

names表中,在C1中,我有这个公式:

={
    "Is Special";
    ARRAYFORMULA(
        IF(
            A2:A <> "",
            REGEXMATCH(B2:B, "b|d|e"),
        )
    )
}

该公式按预期工作,但我不喜欢B2:B参考,因为我要检查的列不是很明显。 我宁愿通过它的名称来引用该列(在本例中为First Name )。 那可能吗? 我可以用一些公式或 function 替换B2:B ,让我通过搜索First Name来查找列范围吗? 我知道我可以使用MATCH获取First Name的列号,但我不确定如何将其放入此公式中——尤其是因为我不能在INDRECT中使用ARRAYFORMULA

就像是:

={
    "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表上,在D1中我有这个公式:

={
    "Count of one Properties";
    ARRAYFORMULA(
        IF(
            A2:A <> "",
            COUNTIFS(
                properties!A:A, A2:A,
                properties!B:B, "one"
            ),
        )
    )
}

该公式按预期工作。 但是,我不喜欢properties:B:B参考。 阅读公式时,我并不清楚我正在检查properties表中的哪一列。 是否有可能像上面那样通过搜索列名(在本例中type )来获取列范围?

如果您不喜欢命名范围,请尝试:

={"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"), ))}

在此处输入图像描述

不确定您是否熟悉“命名范围”:

在此处输入图像描述

在此处输入图像描述

={"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"), ))}

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM