在 Excel 中使用什么函数可以根据另一个变量的值计算一个变量的所有数值?

在 Excel 中使用什么函数可以根据另一个变量的值计算一个变量的所有数值?

如果您能对我使用 Excel 处理数据集提供帮助,我将非常感激。

我有一个大数据表,其中列有 4 个变量,行有多个案例。

部门变量显示案例属于哪种部门类型,例如 A01、A02....C01 等。还有一个国家变量,描述数据来源和描述数据收集年份。

M_EUR 是一个描述花了多少钱的数值变量;它也有很多 NA,表示没有数值数据。

以下是数据集的较小版本:
这是数据集的较小版本。

我想要计算 M_EUR 变量对于每个部门有多少个数值。因此,对于上面显示的数据集,Excel 将返回 M_Eur 对于部门 A01 有 8 个数值。

如果代码能够快速轻松地在许多领域重复使用,那就最好了

我知道 StackExchange 上有一个关于 R 的类似主题,但我无法确定应该使用哪个函数,因为我仍然是游戏中的新手。(以下是讨论的链接:https://stackoverflow.com/questions/3505701/grouping-functions-tapply-by-aggregate-and-the-apply-family)。

答案1

您可以在 Excel 中使用以下公式:

=COUNTIFS(A:A,F2,D:D,">=0")

在此处输入图片描述

答案2

由于您正在处理庞大的数据集,因此我想建议采用两步解决方案来解决该问题。

步骤1:

  • 总结部门列,创建唯一的部门列表。
  • 它避免从键盘输入扇区的值,也节省了时间。
  • 单元格中的数组公式E39

    {=IFERROR(INDEX($A$39:$A$65, MATCH(0,COUNTIF($E$38:E38, $A$39:$A$65), 0)),"")}
    
  • 完成公式Ctrl+Shift+Enter

第2步:

  • 计算列中对应的数字D
  • 单元格中的公式F39

    =IF(SUMPRODUCT(--(A$39:A$65=E39)*(D$39:D$65<>"NA"))=0,"",SUMPRODUCT(--(A$39:A$65=E39)*(D$39:D$65<>"NA")))
    

在此处输入图片描述

注意:

  • 我已使用IFwithSUMPRODUCT来替换0with Blanks
  • 您也可以使用此公式将零替换为空白。

     =TEXT(SUMPRODUCT(--(A$39:A$65=E39)*(D$39:D$65<>"NA")),"0;-0;;@")
    
  • 如果你希望数据集定期更新,那么最好使用动态命名范围为了部门&欧洲列。

根据需要调整公式中的单元格引用。

相关内容