如何在Excel中创建动态表?

时间:2015-06-12 14:33:33

标签: mysql excel excel-vba excel-formula vba

我正在尝试创建一个动态表 - 我尝试了一个数据透视表,但无法让它工作。所以我想也许可以通过IF语句完成,但这对我来说也不起作用。

基本上,我有2个表,1个表包含信息(数据源表)和1个表,根据第一个表中的数据应该是动态的。

Table 1

因此,如果我更改电子列中的数据,必须相应地更新Fruit表(下图)。

Table 2

因此,如果我在苹果计数中写出2而不是1,那么它应该在" Fruit" -column"下创建2个苹果。其余列中的数据将使用公式/固定数据计算 - 因此这并不重要 我愿意接受任何解决方案;公式,数据透视表,VBA等。

周末愉快。 我有Excel 2010和2013。

1 个答案:

答案 0 :(得分:2)

如果您想多次重复某些文字,可以使用稍微复杂的公式来完成。它依赖于Fruits表中没有重复条目而没有0计数的条目。

范围和结果的图片

ranges and results

涉及的

公式包括起始单元格E2和重复条目E3并向下复制。这些实际上是普通公式,不需要数组。请注意,我为数据创建了Table,这允许我使用命名字段来获取整个列。

E2 = INDEX(Table1[Fruits],1)
E3 = IF(
      INDEX(Table1[Count],MATCH(E2,Table1[Fruits],0))>COUNTIF($E$2:E2,E2),
      E2,
      INDEX(Table1[Fruits],MATCH(E2,Table1[Fruits],0)+1))

工作原理 此公式依赖于检查当前条目上方的条目数并与所需的计数进行比较。一些说明:

  • 需要起始单元才能获得第一个结果。
  • 在第一个单元格之后,它计算上面的值在总列表中出现的频率。将其与期望的计数进行比较。如果低于预期值,它将重复上面的值。如果更大,它将转到列表中的下一个项目。这里有一个双重相对/绝对参考来计算上面的单元格。
  • 由于它转到列表中的下一个项目,因此不要将0设为计数,否则它将被包含一次。

您可以根据需要将其复制到尽可能多的单元格。数据耗尽时#REF!。你可以用IFERROR(..., "")换行,使这些显示非常漂亮。

如果非0规则太多,可能只需要一点点努力就可以删除它。如果有重复,那将更难处理。