使用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:1
为No, ITEM, Cost, Category
和B:B
是ITEM, item1, item2, ...
,我们将输出放在F:K
,所以F1:G1
是Category, A
, H1:I1
是Category, B
和J1:K1
是Category, 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.