Excel:聚合函数结合IF函数

Excel: Aggregate function combined with IF function

我有一个 Excel 公式有问题。我在 Google 和 YouTube 上搜索过答案,但似乎找不到。

在 Excel 中,我使用了具有两个条件的聚合函数。基于 "Location" 和 "Function" 我能够从无穷无尽的数据行和列中提取记录。

我有一个用于位置和功能的下拉列表。对于 "Location",我希望能够在以下选项之间进行选择:

No Selection, Amsterdam, Paris, London and Madrid.

对于 "Function" 我希望能够在以下选项之间进行选择:

No Selection, Banker, Banker II and Assistant.

我正在使用以下公式:

=IF(ROWS(M:M2)>$I;"";INDEX(source[Name];AGGREGATE(15;6;(ROW(source[Name])-ROW(source[#Headers]))/((source[Location]=$I)*(source[Function]=$I));ROWS(M:M2))))

我希望能够基于两个标准和一个标准提取数据。这就是我使用 "No Selection" 的原因。不,每当我为位置选择 "No Selection" 时,我都希望能够提取所有位置的所有银行家的数据。

我遇到的问题是上面的公式我必须选择两个标准。每当我 select "No Selection" 在其中一个下拉列表中时,它不会提取数据。

我知道可以使用 IF 函数,但我做不对。这是我正在做的一个学校项目,我对 Excel 的了解非常有限。

Link 我正在使用的示例:https://www.dropbox.com/s/mhsfzv7d63y7rb7/example%281%29.xlsx?dl=0

您需要为每个聚合的分母条件加1,同时确保分母永远不会超过1。

=IF(ROWS(M:M2)>$I; ""; INDEX(source[Name]; AGGREGATE(15; 6; (ROW(source[Name])-ROW(source[#Headers]))/SIGN((($I="No Selection")+(source[Location]=$I))*(($I="No Selection")+(source[Function]=$I))); ROWS(M:M2))))

你的样本 sheet:

M2: =IFERROR(INDEX(source,AGGREGATE(15,6,1/(((source[[Location]:[Location]]=$I)+($I="No Selection"))*((source[[Function]:[Function]]=$I)+($I="No Selection")))*(ROW(source)-ROW(source[#Headers])),ROWS(:1)),COLUMNS($A:A)),"")
  • Select M2 并向下填写 M14

  • Select M2:M14 并右填

请注意,addition 运算符正在为数组中的每个条目模仿 IF 函数。即 ((source[[Location]:[Location]]=$I)+($I="No Selection")) 将 return a 1 如果 Location = 下拉列表中的名称, 如果下拉列表 = No Selection