繁体   English   中英

Google表格中数组中的索引匹配

[英]Index Match in Array in Google Sheets

我有一个电子表格“数据库”,其中有两列,“国家”(A)和“公司”(B)。 国家编号从1到10。 公司标有字母。

电子表格跟踪在每个国家/地区运营的公司。 因此,在A列的国家1和B列的公司A的行表示公司A在国家1中运营。这是此电子表格的屏幕截图:

在此处输入图片说明

然后,我还有第二个电子表格,称为“公司国家/地区”,我想在其中列出公司运营所在的国家/地区。 我希望它们在“按国家(地区)”表的单元格B3开头的不同行中列出。 在同一工作表的B1单元格中应列出国家/地区的公司名称。 我认为必须使用ARRAY版本的INDEX MATCH函数来完成此操作,但是我似乎无法使其正常工作。

我在“按公司划分的国家”工作表的单元格B3中输入了以下公式: =INDEX(Database!$A$1:$B$76, MATCH($B$1, Database!$B$1:$B$76, 0), COLUMN(Database!A:A)) 但是,正如预期的那样,它将仅返回单元格B1中公司在其中运营的第一个国家,而不会返回其他国家。 同样,我需要该公司运营所在的所有国家/地区与B3单元格不同。

我在这里设置了一个样本表。 我认为这可能会有所帮助,以防我不太清楚。

谢谢你的帮助!

使用FILTER可以将“数据库”表上的值限制为仅与给定条件匹配的值:

=FILTER(Database!$A:$A, Database!$B:$B=$B$1)

产生Database表上给定公司索引的每个国家/地区索引。 如果只需要国家索引值(例如1、3、6),而不是将这些索引值转换为假设的“国家DB”表中保存的名称或其他属性,则上述FILTER足够了。

如果需要其他信息,则可以使用VLOOKUP返回多个输入(即数组输入)的相应值:

B3:  =ARRAYFORMULA(VLOOKUP(
         FILTER('Database'!$A:$A, 'Database'!$B:$B=$B$1),  // Searched values
         'Country DB'!$A:$B,                               // Database sheet having more country information (like name, gdp, ...)
         2,                                                // Column of the desired information
         FALSE))

将在“国家/地区数据库”表中每个相应的国家/地区索引行中产生第二列:

显示国家名称

尝试使用过滤器

=filter(Database!A2:B,Database!A2:A=B1)

暂无
暂无

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

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