限制表列搜索中的行返回值

限制表列搜索中的行返回值

我正在尝试使用以下公式从 Excel 表中查找一些数据

=IF(Table_People[Polity]=lookup_PolityRuler, Table_People[Name],"")

这确实只返回我想要的动态范围的行。但是,它还返回其他数据所在的空白行(见下文):

查找中的空白行

我怎样才能(/有可能)使用这样的公式从数据中获取行?我正在寻找的解决方案可以总结为以下伪代码:

for each cell in [col Table_People[Polity]]
    if [cell in col Table_People[Polity]] contains [value in lookup cell]  Then
        add [cell in same row in col Table_People[Name]] to [Dynamic Array]

Table_People的内容为:

在此处输入图片描述

并且范围lookup_PolityRuler指向单元格A2,即与其中包含公式的单元格相邻的单元格。

答案1

找到了解决方案:

使用FilterExcel 的 Array 函数中的函数。

在这种情况下有效的解决方案是:

=FILTER(Table_People[Name],Table_People[Polity] = lookup_PolityRuler)

答案2

我确实相信这会对您有所帮助,而且最好的部分是这两种建议的方法都适用于高版本和低版本的 Excel。

在此处输入图片描述

  • 我展示了两种可能的方法,其中第一个命令一次只返回一个值/数据,第二个命令返回多行。

怎么运行的:

  • 范围 AA2 是命名范围PoRuler且可编辑。

  • 公式用于在单元格中一次获取一个名称W11

    =INDEX(TablePeople[姓名],MATCH(PoRuler,TablePeople[政体],0))

  • 单元格X11有一个数组(CSE)公式返回多个名称。

    {=IFERROR(INDEX(TablePeople[Name], SMALL(IF(COUNTIF($AA$2, TablePeople[Polity]), ROW(TablePeople)-MIN(ROW(TablePeople))+1), ROW(A1)), COLUMN(A1)),"")}
    
  • 在 X11 中完成公式Ctrl+Shift+Enter& 向下填充。

  • 公式中的单元格引用是可调整的。

相关内容