我正在尝试使用以下公式从 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
找到了解决方案:
使用Filter
Excel 的 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& 向下填充。
公式中的单元格引用是可调整的。