【问题标题】:How to count one cell value depending upon the occurrence of specific value in another cell range如何根据另一个单元格区域中特定值的出现来计算一个单元格值
【发布时间】:2015-08-08 09:35:22
【问题描述】:

我正在 Excel 2010 中制作出勤表。我需要根据学生的类别计算出勤总数。 例如,我有 4 个学生类别: CAT1 CAT2 CAT3 第四类

请注意,工作表没有在类别上短路,因此它们的出现是随机的。现在我有 30-31 个与这些类别相邻的单元格用于出勤。这些单元格的值为“P”或“A”。 现在我必须计算月底后每个类别的总出勤人数。 请帮忙!

编辑:请看图片:

编辑:@Rosenheimer,正如您在我上传的图片中看到的那样,我的出勤单元格范围不连续。有什么方法可以引用 SUMPRODUCT 中的多个单元格范围?现在,我为每个范围使用 1 个 SUMPRODUCT 并添加它们,这非常冗长: =SUMPRODUCT((Sheet1!E6:Sheet1!AI14=Sheet1!A65)(Sheet1!D6:Sheet1!D14=Sheet1!A69)(Sheet1!C6:Sheet1!C14=Sheet1!A67)) +SUMPRODUCT((Sheet1!E18:Sheet1!AI26=Sheet1!A65)(Sheet1!D18:Sheet1!D26=Sheet1!A69)(Sheet1!C18:Sheet1!C26=Sheet1!A67)) +SUMPRODUCT((Sheet1!E30:Sheet1!AI37=Sheet1!A65)(Sheet1!D30:Sheet1!D37=Sheet1!A69)(Sheet1!C30:Sheet1!C37=Sheet1!A67)) +SUMPRODUCT((Sheet1!E41:Sheet1!AI45=Sheet1!A65)(Sheet1!D41:Sheet1!D45=Sheet1!A69)(Sheet1!C41:Sheet1!C45=Sheet1!A67)) +SUMPRODUCT((Sheet1!E49:Sheet1!AI62=Sheet1!A65)(Sheet1!D49:Sheet1!D62=Sheet1!A69)(Sheet1!C49:Sheet1!C62=Sheet1!A67))

谢谢!

【问题讨论】:

标签: excel


【解决方案1】:

您可以使用条件总和来做到这一点: 请注意,它在英文 Excel 应用程序中称为 SUMPRODUCT(函数名称被翻译为 Microsoft Excel)。

A$2:A$7=D2 的求值是真或假,与文字 1 相乘将被解释为 0(假)或 1(真)。

现在您可以在评估中添加更多语句,例如您可以将其扩展为 (A$2:A$7=D2)*(C$2:C$7="P")*(F$2:F$7>=DATE(2015,07,01))*(F$2:F$7<DATE(2015,08,01)) 以仅计算 7 月份标记为 P 的学生。

编辑: 由于您有效地使用了矩阵而不仅仅是列表,因此您需要使用稍微不同的变体,但仍然可以使用 SUMPRODUCT 来完成,请看以下示例:

【讨论】:

  • 感谢您的回复。但我无法获得所需的结果。请看我刚刚上传的图片。我正在研究这个结构。
  • 我刚刚为您的结构上传了解决方案。如果您的“星期日”列是单个单元格而不是一个大的连接单元格,如果您想依靠“A”,您可能应该将其变成一个连接单元格,否则您必须在函数中构建日期检查(这会使公式更长一些)。
【解决方案2】:

如果要计算满足特定条件的不同单元格的出现次数,请使用函数"COUNTIF"。但是,如果您想计算满足多个条件的单元格,请使用函数"COUNTIFS"

【讨论】:

  • COUNTIFS 不适合我。请查看我刚刚上传的图片以更好地理解工作表
猜你喜欢
  • 2023-02-05
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
相关资源
最近更新 更多