使用if和array

时间:2017-03-15 05:46:15

标签: excel excel-formula

我试图在我的Excel工作表中做一些组织工作。希望可以有人帮帮我。谢谢。

我知道如何为数组使用嵌套的if语句,但是我无法弄明白。

我有一个未排序的列表:

No | ITEM   | Cost | Category 
#1 | item 1 | $10  |    A
#1 | item 2 | $30  |    C
#2 | item 3 | $70  |    A
#3 | item 4 | $20  |    B
#4 | item 5 | $50  |    B

我想将它们分类到Excel工作表右侧的3个单独列表中。 A,B和C类

A类

ITEM   | Cost
item 1 | $10
item 3 | $70

B类

ITEM   | Cost
item 4 | $20
item 5 | $50

C类

ITEM   | Cost
item 2 | $30

我最初做的是在排序列表中的单个单元格的嵌套if语句中使用数组。

例如,

 =IF(D1 : D5="A", B1, "")

但它没有正确排序并显示错误。我有数百个项目,每次我想查找某些东西时都很难通过它们。无法使用Excel中的“排序”对列表进行排序,因为我希望按日期排列未排序的列表。

对不起,我只需要有人教我如何做一个排序类别,我应该自己弄清楚其余部分。谢谢。

3 个答案:

答案 0 :(得分:1)

F3单元格中使用以下数组公式,如下面的屏幕截图所示。然后根据需要向右拖动1个单元格并向下拖动。对于Category B您必须在I3单元格中输入相同的公式,只需更改A to B

=IFERROR(INDEX(B$2:B$6,SMALL(IF($D$2:$D$6="A",ROW($D$2:$D$6)-ROW($D$1),""),ROW(1:1))),"")
  

注意:输入公式后,您必须按 CTRL + SHIFT + ENTER

enter image description here

答案 1 :(得分:0)

唉,谷歌电子表格很容易,因为它提供了query()

1:1No, ITEM, Cost, CategoryB:BITEM, item1, item2, ...时,我们将输出放在F:K中,因此F1:G1Category, A },H1:I1Category, BJ1:K1Category, C。现在在F2:G2处输入数组公式。 (请注意G$1'A'

{=IF($D2=G$1, $B2:$C2, "")}

现在复制F2:G2并粘贴F3:G6。然后复制F2:G6并粘贴H2:K6。 现在,您可以为类别A排序F:G,为类别B排序H:I,为类别C排序J:K

答案 2 :(得分:0)

试试这个公式:

CTRL+SHIFT+ENTER

请注意,这只是单个单元格的数组公式。使用o在第2行的单元格中确认公式,然后在剩余的单元格中填充公式。

此公式使用SMALL函数。它首先找到包含值" A"的D列的第一个最低ROW编号。然后,当公式被填满时,您接下来会找到D列的第二个最低ROW,其中包含值" A"等等。 Index函数返回找到的ROW编号的Item列中的值。