使用if和array从excel中的未sorting列表中创build一个sorting列表

我陷入了困境,试图在我的Excel表中做一些组织。 希望可以有人帮帮我。 谢谢。

我知道如何使用数组的嵌套if语句,但有一些我无法弄清楚。

我有一个未sorting的列表:

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 

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

例如,

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

但它不能正确sorting并显示错误。 我有几百个以上的东西,每次我想查找一些东西时都会有点困难。 该列表不能sorting使用“sorting”在Excel中,因为我想要未sorting的列表按date排列。

对不起,我只需要有人教我如何做到这一点,我应该自己解决。 谢谢。

F3单元格中使用以下数组公式如下所示。 然后向右拖动1个单元格并根据需要拖放到下面。 对于Category B您只需在I3单元格中input相同的公式,然后将A to B更改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

在这里输入图像描述

试试这个公式:

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

请注意,这是仅用于单个单元格的数组公式。 使用CTRL+SHIFT+ENTER第2行单元格中的公式,然后向剩余单元格中填充公式。

这个公式使用SMALL函数。 它首先find包含值“A”的D列的第一个最低行数。 然后,当填充公式时,您将接下来find包含值“A”的D列的第二低ROW,依此类推。 索引函数从find的行号的项目列中返回值。

唉,因为它提供了query() ,所以在Google Spreadsheet中很容易。

1:1No, ITEM, Cost, CategoryB:BITEM, item1, item2, ... ,我们将输出放在F:K ,所以F1:G1Category, AH1:I1Category, BJ1:K1Category, C 。 现在在F2:G2数组公式下面input。 (注意G$1'A'

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

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