【问题标题】:Multiple Criteria Splitout in ExcelExcel中的多个条件拆分
【发布时间】:2017-03-27 13:46:31
【问题描述】:

我的数据看起来像:

A   B   C   D   E   F   G   H   I

1个水果 年   一月 二月 三月 四月 五月 六月 七月

2个苹果 2011   1   0   0   0   0   0   0

3 个苹果   2010   0  11   12   11   11   12   11

4个橙子  2011   11   10   12   10   11   11   10

5个橙子  2012  5   5   0   0   0   0   0

我需要不同格式的数据,以便我可以看到随着时间推移的趋势(即苹果从 2010 年 2 月到 2011 年 1 月,橙子从 2011 年 1 月到 2012 年 1 月 - 这里缺少一些数据,因为我没有足够的代表点来发布图片)。这只是我拥有的数据的一个非常小的样本,所以我不想手动创建一个新表,其中每个月都有正确的年份作为值。我知道每个水果/年将有 12 个新行(因为有 12 个月),如果有一个可以自动执行此操作的公式,这将是可以的。如果公式在一行完成后将跳转到下一行,那将是理想的。有没有人对如何做到这一点有任何想法?这在 Access 中会更容易吗?

【问题讨论】:

  • 听起来您正在寻找 Unpivot .. 看看 stackoverflow.com/questions/32115219/…
  • 你可以使用类似的东西(我的数据在 k1:x5 中)=SUM(OFFSET(INDIRECT(ADDRESS(MAX(IF((($K$2:$K$5="orange")*($L$2:$L$5=2010)),ROW($K$2:$K$5))-1),MATCH("Mar",$M$1:$X$1,0)+COLUMN(L1))),0,0,1,(12-(MATCH(2010,$L$2:$L$5,0)+ROW(L1))))) 这将从开始月份到年底,公式将需要为第二部分更改,这个将是相同的,行的单元格 1,与结束月份的单元格。以后有时间再补充。

标签: vba excel excel-formula


【解决方案1】:

您可以将其用于 YTD 月份,使用橙色和 2010 年 3 月到 2011 年 2 月,数据在 k1:x5 中

=SUM(OFFSET(INDIRECT(ADDRESS(MAX(IF((($K$2:$K$5="orange")*($L$2:$L$5=2010)),ROW($K$2:$K$5))),MATCH("Mar",$M$1:$X$1,0)+COLUMN($L$1))),0,0,1,(12-(MATCH(2010,$L$2:$L$5,0)+ROW($L$1)))))

这个是明年一月到一个月

=SUM(OFFSET(INDIRECT(ADDRESS(MAX(IF((($K$2:$K$5="orange")*($L$2:$L$5=2010+1)),ROW($K$2:$K$5))),COLUMN($M$1))),0,0,1,MATCH("Mar",$M$1:$X$1,0)-1))

给出一个组合公式

=SUM(OFFSET(INDIRECT(ADDRESS(MAX(IF((($K$2:$K$5="orange")*($L$2:$L$5=2010)),ROW($K$2:$K$5))),MATCH("Mar",$M$1:$X$1,0)+COLUMN($L$1))),0,0,1,(12-(MATCH(2010,$L$2:$L$5,0)+ROW($L$1)))))+SUM(OFFSET(INDIRECT(ADDRESS(MAX(IF((($K$2:$K$5="orange")*($L$2:$L$5=2010+1)),ROW($K$2:$K$5))),COLUMN($M$1))),0,0,1,MATCH("Mar",$M$1:$X$1,0)-1))

【讨论】:

    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多