Excel 在字段上循环公式
我在Excel中有如下数据:Excel 在字段上循环公式,excel,excel-formula,excel-2010,excel-2007,Excel,Excel Formula,Excel 2010,Excel 2007,我在Excel中有如下数据: | id | categorie | number | | 1 | a | 123 | | 2 | b | 23 | | 3 | c | 65 | | 4 | b | 102 | | 3 | d | 65 | | 4 | e | 102 | | .. | ... | ... | 我正
| id | categorie | number |
| 1 | a | 123 |
| 2 | b | 23 |
| 3 | c | 65 |
| 4 | b | 102 |
| 3 | d | 65 |
| 4 | e | 102 |
| .. | ... | ... |
我正在写一份报告,上面写着:
| categories | Sum |
| a | 123 |
| b;c | 190 |
| many categories | ... |
如何使用公式循环和拆分单元格的值以计算总和?如果不使用VBA,则无法在Excel中“循环”;然而,“循环”并不是你真正需要的 SUMIFS公式具有以下参数:
=SUMIFS(SUM_Range,CRITERIA1_Range,CRITERIA1,CRITERIA2_Range,CRITERIA2...)
简言之,它添加SUM_范围内的所有项目,其中其他范围内的匹配单元格符合其标准
即:
这将为您提供第C列的总计,其中该行的B列与“a”匹配。假设“a”在单元格D1中,所有其他术语如下。您可以按如下方式重新键入,然后向下拖动:
=SUMIFS(C:C,B:B,D1)
请注意,您的搜索区域中有多个术语-我建议您将这些术语拆分为单独的行;这会让你的生活更轻松。如果需要,请在之后将它们添加到一起。向表中添加一个新列,用于定义类别的分组方式:
| id | categorie | number | group
| 1 | a | 123 | 1
| 2 | b | 23 | 2
| 3 | c | 65 | 2
| 4 | b | 102 | 3
| 3 | d | 65 | 3
| 4 | e | 102 | 3
| .. | ... | ... | 4
及
而不是使用:
SUMIF(范围、标准、[总和范围])
在您的情况下,它将是:
SUMIF(GROUPCOLUMN, "=THATLINEGROUPCELL", NUMBERCOLUMN)
我将调用列(忽略ID)A和B,数据行从2开始,转到第7行。因为我假设你想要一个表格,你可以在引用类别a,b,c的同时向下拖动公式。。。假设这些标签从A10开始(如下所示): 在B10细胞中
=SUMIF($A$2:$A$7),这是公式解决方案
假设您在单元格F2中键入了要求和的类别。例如,您在F2中键入:a;b
然后在G2中,输入以下公式:
=SUM(C2:C7*IFERROR(B2:B7=MID(F2,COLUMN(OFFSET($A$1,,,,LEN(F2))),1),0))
这是一个数组公式,必须用Ctrl+Shift+Enter确认
您应该调整对B2:B7
和C2:C7
的引用,以匹配源代码列表
您可以将此公式用于单字母类别名称的任意组合,以生成这些类别的总和。您是要键入报表的第一列?还是希望公式同时生成两列?我将键入报表中所需的类别,例如col 1:a和col 2:bc以及col 3:a;c;每个兴趣ng-我从未见过使用COLUMN(OFFSET…)创建这样的编号结果数组。
SUMIF(GROUPCOLUMN, "=THATLINEGROUPCELL", NUMBERCOLUMN)
=SUM(C2:C7*IFERROR(B2:B7=MID(F2,COLUMN(OFFSET($A$1,,,,LEN(F2))),1),0))