指数公式问题

时间:2018-01-04 17:22:52

标签: excel excel-formula

image

你能帮忙解决上述问题吗?基本上,我试图根据组织内的其他人名自动化名单。即约翰史密斯是一名经理,我想要归还约翰史密斯的每一个人。所以,我的公式如下:

=IFERROR(INDEX(Sheet1!B:B,SMALL(IF(Sheet1!A:A=$AF$34,ROW(Sheet1!B:B)-MIN(ROW(Sheet1!B:B))+1),COLUMNS($AF$34:AF34))),"")

Sheet1!B:B是员工所在的地方,Sheet1!A: A是经理所在的地方。当我按下control shift并输入时,它会起作用并返回正确的值。然而问题是,我说John Smith下有10个人,而下一个经理是Dave T,这个名单会继续下去并且在Dave下自动填充人员,当我希望它返回"" IFERROR中提供的值(假设它们不属于约翰史密斯)。为此,我将+1添加到:

...(Sheet1!B:B))+1),COLUMNS...

...(Sheet1!B:B))+2),COLUMNS... ...(Sheet1!B:B))+3),COLUMNS...

这让我疯了,你能帮忙吗?

谢谢,科林。

2 个答案:

答案 0 :(得分:0)

首先,如果出于性能原因,最好避免使用INDEX公式的整列,但如果这是您唯一的公式,那么您应该没问题。

现在,当您索引整个列时,您不需要偏移行结果(在我的示例中,我从第1行开始索引,因此再次无需偏移)。此外,您希望一次只进行一次小更新,最常见的是ROW(1:1) [垂直拖动]或COLUMN(A:A) [水平拖动]您的方法也可以,但人们很懒惰喜欢保存字符:

=IFERROR(INDEX(Sheet1!B:B,SMALL(IF(Sheet1!A:A=$AF$34,ROW(Sheet1!B:B)

-MIN(ROW(Sheet1!B:B))+1) ,COLUMNS($AF$34:AF34))),"")

基本上你的公式适用于水平拖动但不适用于垂直拖动,它总是会产生数组中的第一个行号...

=IFERROR(INDEX($B$1:$B$11,SMALL(IF($A$1:$A$11=$AF$34,ROW($B$1:$B$11)),ROW(1:1))),"")

Ctrl + Shift + 输入(公式栏)

enter image description here

答案 1 :(得分:0)

说我们有:

enter image description here

D2 中输入感兴趣的经理的鬃毛。在 C2 中输入:

=IF($D$2=A2,1+MAX($C$1:C1),"")

并复制下来:

enter image description here

Helper 列标记每个下属具有唯一的seq。号。

最后,在 E2 中输入:

=IFERROR(INDEX(B:B,MATCH(ROWS($1:1),C:C,0)),"")

并复制下来:

enter image description here

注意:

通过更改单个单元格 D2,,我们可以选择其他经理。