【问题标题】:excel sorting/filtering/and counting data automatically using macroexcel使用宏自动排序/过滤/计数数据
【发布时间】:2014-09-26 08:54:56
【问题描述】:

所以我有一个包含几列的 excel 数据表 (sheet1)。

公司 |产品代码 |日期 |姓名 |

还有几行填充了上述所有细节。

例如

company 1 | adar1 | 01/sep/14 | title1 |
company 2 | adar2 | 04/sep/14 | title2 |
company 3 | adar1 | 09/sep/14 | title3 |
company 4 | adar3 | 10/oct/14 | title4 |
company 1 | adar2 | 18/oct/14 | title5 |
company 2 | adar1 | 04/nov/14 | title6 |
company 3 | adar3 | 09/nov/14 | title7 |
company 4 | adar3 | 01/nov/14 | title8 |

等等

如您所见,公司名称不同。 产品名称不同。 日期不同 以及我们不关心的姓名/头衔。

我想做的是应用某种可以执行以下操作的过滤器:

PER MONTH,计算每个公司的相同产品名称,并使用以下格式在新工作表 (sheet2) 上创建行/列:

company | quantity | product code | date in specific format below |
company 1    n           adar1       201409
company 1    n           adar2       201409
company 2    n           adar1       201409
company 1    n           adar2       201409
company 1    n           adar1       201410
company 1    n           adar2       201411

等等等等

表示公司 1 在 2014 年 9 月使用了 n 个 adar1 产品,n 个 adar2 产品 (201409) 公司 2 在 2014 年 9 月和 2014 年 10 月等使用了 n 个 adar1 和 n 个 adar3,

我相信你明白了。

我可以使用数据透视表完成上述所有操作,但我想知道在 sheet1 上输入新值时,是否有宏或某些函数/代码可以在 sheet2 上自动完成上述所有操作。

谢谢。

【问题讨论】:

  • 如果您可以使用数据透视表来做到这一点,为什么不简单地添加一个宏来在 sheet1 上输入值时刷新数据透视表?见msdn.microsoft.com/en-us/library/office/…
  • 因为在使用数据透视表对我的所有数据进行排序后,我仍然必须使用上述格式手动将数据透视表的结果复制到工作表 2。 Sheet2 不能是数据透视表。在没有数据透视表的情况下,我曾经花费 8 个小时手动对数据进行排序和过滤。使用数据透视表,我将花费的时间减少到 2 小时。我想知道这里的一些 excel/VBA 大师是否可以帮助我一键完成!

标签: excel vba pivot


【解决方案1】:

我会用这样的 SQL 来解决这个问题:

SELECT * FROM (SELECT s.company, COUNT(s.company) as quantity, s.product_code, "20"&right(s.date,2)&iif(right(left(s.date,6),3)="jan","01",iif(right(left(s.date,6),3)="feb","02","03"))&left(s.date,2) as new_date FROM [Sheet1$] as s GROUP BY s.company,s.product_code,s.date) ORDER BY new_date DESC

要使用它,请参阅数据->外部数据->来自其他来源->Microsoft Query 或使用我的 SQL 插件:http://blog.tkacprow.pl/?page_id=130

上面的 SQL 仍然缺少 3 月至 12 月的映射。我相信您可以自己添加它们。

注意 1:要在值更新时刷新它,您可以添加一个宏按钮来刷新表格或覆盖 VBA 中的 Worksheet Change 事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多