【发布时间】:2015-07-08 13:15:57
【问题描述】:
需要以下链接中发布的查询的解决方案,
应该将 PersonWeek 作为单独的列显示周数。
任务:根据列标题动态汇总行值?
【问题讨论】:
标签: excel excel-formula
需要以下链接中发布的查询的解决方案,
应该将 PersonWeek 作为单独的列显示周数。
任务:根据列标题动态汇总行值?
【问题讨论】:
标签: excel excel-formula
在本网站上重新发布整个问题是一种很好的形式;尽管如此:
您正在寻找的内容相对简单。有很多方法可以做到这一点,但我建议您结合使用“匹配”功能和“偏移”功能。 Offset 函数根据给定的起点创建一个范围,如图所示向上/向下/向左/向右移动,具有给定的高度/宽度。例如:
=偏移量(B2,1,2,3,4)
表示范围 D3:G5。这是从单元格 B2 开始,向下移动 1 行,向右移动 2 列,总共 3 行和 4 列给出的范围。
所以剩下的一点是确定从哪里开始和停止偏移。
首先,偏移函数中的第一个字段将是单元格 A1,因为它是数据表的左上角。要找到向下移动的行数,您需要找到您所指的项目(我假设单元格 A6 是您输入您关心的项目名称的地方,A7 是您输入您关心的第一周的地方, A8 是您输入您关心的最后一周的位置)。要查找从 A1 向下移动的行数,请使用 Match:
=匹配(A6, A2:A5,0)
要找到向右移动多少列以找到您的第一周,请再次使用 Match:
=匹配(A7, B1:G1,0)
假设您只想查看单个项目,我们知道我们希望范围有多高 (1)。
要确定我们希望范围有多宽,我们需要知道您的结束周,而不是您的开始周:
=(匹配(A8,B1:G1,0)-匹配(A7, B1:G1,0))
所以整个事情将是:
=偏移(A1,Match(A6, A2:A5,0),Match(A7, B1:G1,0),1,Match(A8,B1:G1,0)-Match(A7, B1:G1 ,0))
现在唯一剩下的就是将新定义的范围包装在“sum”函数中,如下所示:
=Sum(偏移量(A1,Match(A6, A2:A5,0),Match(A7, B1:G1,0),1,Match(A8,B1:G1,0)-Match(A7, B1) :G1,0)))
如果有人以您的表格中未找到的方式输入项目名称/周名称,此公式将产生错误 - 因此,在单元格 A6-A8 中,您可能希望使用数据验证仅允许输入这些名称- 如果您想详细说明,请告诉我。
【讨论】: