带有IF语句的工作表中的相对单元格位置

时间:2019-01-15 14:22:06

标签: excel

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

我需要:

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

在工作表1上我有类似的东西

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

在工作表2上,我需要这个:

Barney Fred Wilma
105 105 101 102  103 106
104

我要在工作表2的每个单元格中使用的方程是“

= IF('Sheet 1'!B:B =“ Barney”,相对位置,位于名称左侧,“”)

谢谢。

1 个答案:

答案 0 :(得分:0)

不需要数组公式:

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

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

enter image description here

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

为方便起见,我将两个表放在同一张纸上,但是,如果需要,可以很容易地将它们移动到另一张纸上。

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

所以:

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$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)))

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