dynamicExcel公式

我有一个主表为每个代码提供4种types的代码和子表。 我希望每个子表都有一个dynamic公式,无论新的代码在主表中input,公式都会自动将新条目添加到相应的子表中。

示例:如果我在主表中的代码B旁边input代码A,则新代码将显示在子表A以及其info1和info2条目下。

在这里输入图像说明

我不是以英语为母语的人,所以我希望我的解释不会使事情复杂化。 🙂

注意:表格不限于三列。

使用“插入”>“表”将数据条目表转换为Excel表格对象。

现在,您可以构build三个显示Info1和Info2的数据透视表。 筛选每个数据透视表,分别显示代码A,B或C.

在数据input表中input新数据时,使用数据>全部刷新,数据透视表将更新。 您可以创build工作表更改事件,以便在数据条目表中的单元格更改时自动更新数据透视表。

在这里输入图像说明

一个公式化的方法只能通过用一个数组公式填充一个固定的范围来实现。 在下面的屏幕截图中,E列中的黄色单元格被选中,下面的公式被input并用Ctrl-Shift-Enter确认:

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

复制到F列

在这里输入图像说明

在H列的公式是

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

复制到第一列

在列K中的公式是

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

复制到列L.

请注意,这些数组公式不允许编辑单个单元格。 您将一直需要select具有相同数组公式的所有单元格,然后使用Ctrl-Shift-Enter再次确认。

一旦您的数据在列A到C超出第20行,您将需要相应地调整数组公式。

这种方法效率不高,因为无论数据input列中存在多less行,预先填充的公式将始终计算。

请注意,数组公式应该不使用整列引用,因为这会显着减慢工作簿。

数据透视表的方法将会更加高效,如果设置正确,则需要更less的设置工作和无需维护。

我想出了一个不包含索引的公式,但是需要另一个列作为一种“索引”。

 {=IFERROR(SMALL(IF($AB$11:$AB$100=$BG$9,$AJ$11:$AJ$100),$BB11),"")} 

其中$ BB11是第一个列表中的第一个数字。 奇迹般有效!