0

我有一个 Excel 工作表(表 1),其中列出了人员的姓名及其负责的培训组......基本上是分配给不同处理程序的数字。

我需要:

在工作表 2 上,我需要一个 IF 语句来检查工作表 1 的 B 列,如果出现某个人的姓名,它会将值返回到最左边。

我在表 1 上有这样的东西:

集团名称
101 Fred
102 Wilma
103 Fred
104 Fred
105 Barney
106 Wilma

在表 2 上,我需要这个:

巴尼弗雷德威尔玛
105 101 102
            103 106
            104

我试图在表 2 上的每个单元格中使用的方程式是“

=IF('Sheet 1'!B:B="Barney",相对位置在名称左侧一个单元格,"")

提前致谢。

4

1 回答 1

0

不需要数组公式:

MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1))

只是一个简单的 MINIFS。然后将其包装在 IF 中以删除零:

在此处输入图像描述

编辑:进一步澄清回应评论。

为方便起见,我已将两张表放在同一张表上,但是,如果需要,可以轻松地将一张表移到单独的表上。

该公式通过选择具有最低值的组来工作,该组的名称显示在列的顶部并且尚未列出。

所以:

MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1))

MINIFS 公式中的第一个参数是$A$2:$A$7. 这是包含所有组的列,我们要拆分并列出每个名称。

第二个和第三个参数 ( $B$2:$B$7,D$1) 是一个标准范围和它的值。这用于过滤掉我们不想在此特定单元格中返回的任何名称(在 D2 的情况下不是“Barney”的任何名称)。请注意,D$1公式中的 不以 a 开头$,这意味着我们可以将公式拖过其他名称列,它会自动过滤掉正确的名称。

第 4 和第 5 个参数 ( $A$2:$A$7,">" & MAX(D$1:D1)) 也是一个标准范围及其值。但是,对于这次的值,我们正在寻找一个范围内的最大值。我们正在查看已针对名称列出的所有组,并使用 MAX 选择最高的组。请注意,$公式中的第一个“1”之前有一个,但第二个之前没有。这意味着当我们向下拖动公式时,它正在寻找 MAX 的范围将自动扩展以包括当前单元格上方的单元格。另请注意,没有$在任何一个“D”之前,这样当您将公式向右拖动时,它正在检查的范围也会向右移动。一旦我们有了已经根据名称列出的 MAX 组,我们告诉 MINIFS 公式只查看大于该名称的组。

一旦没有名称组大于前面列出的组,MINIFS 公式将返回 0。为了防止表格显示很多 0,我们简单地说“如果 MINIFS 公式返回 0,则返回一个空字符串反而:

=IF(<the result of the MINIFS>=0, "",<the result of the MINIFS>)

所以最终的公式是:

=IF(MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1))=0,"",MINIFS($A$2:$A$7,$B$2:$B$7,D$1,$A$2:$A$7,">" & MAX(D$1:D1)))

我希望这对你更有意义。如果解释有点冗长,我很抱歉,但由于你没有给我一个你不理解的具体领域,我只是试图扩大我的解释。如果有任何具体部分需要我进一步解释,请告诉我。

于 2019-01-15T17:36:18.133 回答