我有一个主表,为每个代码提供4种类型的代码和子表。我希望每个子表都有一个动态公式,无论在主表中输入什么新代码,公式都会自动将新条目添加到相应的子表中。
实施例: 如果我在主表中的代码B旁边输入代码A,则新代码将显示在子表A及其info1和info2条目下。
我不是母语为英语的人,所以我希望我的解释不会让事情变得复杂。 :)
注意:表格不限于三列。
答案 0 :(得分:2)
使用Insert>将数据输入表转换为Excel表格对象表。
现在,您可以构建三个显示Info1和Info2的数据透视表。过滤每个数据透视表以分别显示代码A,或B或C.
在数据输入表中输入新数据时,请使用数据>全部刷新,数据透视表将更新。您可以创建工作表更改事件,以便在更改数据条目表中的单元格时自动更新数据透视表。
只有通过使用数组公式预填充固定范围,才能实现公式化方法。在以下屏幕截图中,选择了E列中的黄色单元格,输入以下公式并使用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)),"")
复制到第I栏。
在K栏中,公式为
=IFERROR(INDEX(B$1:B$20,SMALL(IF($A$1:$A$20=$K$1,ROW($A$1:$A$20)),ROW()-2)),"")
复制到L栏。
请注意,这些数组公式不允许编辑单个单元格。您将始终必须选择具有相同数组公式的所有单元格,进行编辑,然后使用Ctrl-Shift-Enter再次确认。
一旦您的A到C列中的数据超出第20行,您将需要相应地调整数组公式。
这种方法效率不高,因为无论数据输入列中存在多少行,预填充公式都将始终计算。
请注意,数组公式不应使用整列引用,因为这会大大减慢工作簿的速度。
如果设置正确,数据透视表方法将更有效,需要更少的设置工作和无需维护。
答案 1 :(得分:0)
我想出了一个不包含索引的公式,但需要另一个列作为一种索引'。
{=IFERROR(SMALL(IF($AB$11:$AB$100=$BG$9,$AJ$11:$AJ$100),$BB11),"")}
其中$ BB11是第一个列表的数字1。像魅力一样工作!