2015-06-15 139 views
0

我正尝试在Excel中创建一个聚合和图形工具。我的数据非常简单,但是使它变得可绘制的转变不是。Sumif在计算范围内

在Sheet1,我在形成行:

| Ch-x | Theme-1 | Intensity-1 | Theme-2 | Intensity-2 | 

在每行上的主题-1,-2,等会有所不同,尽管它们是一组十几个的范围内。这给了我每章一行。

在Sheet2中,我想变成这样:

+---------+------+------+------+ 
|  n | Ch-1 | Ch-2 | Ch-3 | 
+---------+------+------+------+ 
| Theme-A | 8 |  | 1 | 
+---------+------+------+------+ 
| Theme-B | 4 | 9 |  | 
+---------+------+------+------+ 
| Theme-C |  | 2 | 7 | 
+---------+------+------+------+ 

这可以被绘制代表章之间的各种主题的强度。

为此,我可以手动创建一组sumif()函数来查看正确的行,但这很乏味,因为它不能简单地复制该函数。这个问题部分只是部分轴线的翻转。

为了使它成为可复制的,我需要一种引用sumif()中包含计算部分的范围的方法,这将是隐藏偏移值的总和(第二个表的左上角的n ),以及章节号:有效(在单元格B2):

=sumif(Sheet1!range(B($A$1+B$1):D($A$1+B$1)), B$1, Sheet1!range(C($A$1+B$1):E($A$1+B$1))

其中我已经使用range()作为计算开始和结束位置的函数的概念。

我该如何做这种类型的范围定义/参考?

+0

你能证明将被用来创建转换表中的数据_actual_?然后让我们退一步从sumif公式考虑整个问题,因为你正在深入研究[XY](http://meta.stackexchange.com/questions/66377/what-is-the -xy-problem)问题,具体询问您的尝试解决方案。 – chancea

+0

如果您真的认为这将更容易理解...我想要将与每行相关联的一组AB对变为A行的每个与源行关联的列的B值, 虽然sumif '不是特别干净,它做得很好...... – Rick

回答

1

INDEX函数可以给你一个范围,你可以在SUMIF之内使用,例如,使用例如

=SUMIF(INDEX(Sheet1!B:D,$A$1+B$1,0),B$1,INDEX(Sheet1!C:E,$A$1+B$1,0))

+0

实际上,根据这个问题,'= SUMIF(INDEX(Sheet1!$ B:$ D,$ A $ 1 + B $ 1,0),$ B1,INDEX(Sheet1! $ C:$ E,$ A $ 1 + B $ 1,0)) - 但谁在争论? – Rick

+0

显然,你比我更了解这种方式 – chancea