计算包含可变日期标题的交叉表行中第一次出现的ACV值

时间:2016-06-25 20:21:35

标签: sql excel-vba access-vba crosstab access

我有这样的多个交叉表工作簿,每个工作簿代表特定类别国家的ACV数据,例如食品-US。工作簿文件名例如是

  • INO-食品US.xlsx
  • INO-Pet Food-US.xlsx
  • INO-CCare-US.xlsx
  • INO-CCare-UK.xlsx
  • INO-食品-UK

我可以通过文件夹循环并导入所有这些工作簿(每个工作簿包含一张交叉表数据),但我发现很难分析这个巨大的交叉表数据,因为我之前从未使用过交叉表。

我试过Unpivoting它或UNION ALL,但有> 166"周结束dd / mm / yy"列,取决于该工作簿中包含的数据年数!在某些工作簿中也可能缺少几周(本周没有数据)。下面是它作为表导入Access的快照:

Crosstab data imported into Access for Analysis

  • 如果您看到第1列,则其值由" - "分隔。我想要 使用" - "将此列拆分为3个新列作为分隔符,例如

ASDA DIET - LINE EXTENSION - 2012/03/02

将进入3栏,即

  

品牌类型评估

     

ASDA DIET LINE EXTENSION 2012/03/02

  • RECDATE并不重要。
  • 但即使类型保留为单列(而不是3列) 列),这也有助于仅在Type列上聚合。
  • 我想循环遍历所有这些工作簿并将这些数据拉入 记录集,一次一个。 (已完成)
  • 然后对此记录集运行查询以计算第一次出现的ACV 每个BRAND / TYPE行的值。
  • 然后计算每个品牌的第一次ACV值的计算 或年中的类型。
  • 如果显示NA,则表示"无可用数据"或者那个品牌/类型"没有存在"直到那些日期,在他们的专栏中显示NA。

结果表应该看起来像这样,其ACV值应显示为列标题,其值为其计数,对于该年份的每个品牌或类型,例如2010:

Output table

与这样的Crosstabs合作过的人可以帮忙吗?

0 个答案:

没有答案