SUMIF
和函数对于对范围内的某些值进行简单的和运算COUNTIF
很方便,但是否有更通用的版本可以让我插入我想要的任何其他函数?例如,我可能想要获取符合某些条件的值的标准差 - 但没有。如果没有,最好的方法是什么,显然不需要复制粘贴数据?我正在使用 Excel 2007。SUM
COUNT
STDDEVIF
答案1
您应该研究数据库函数。它们比 Sumif 强大得多,因为条件不受限制。它可以根据需要变得复杂或简单。它们在数据库类别中也有标准偏差函数。它们不允许您插入任何您想要的函数,但它可以解决您的标准偏差问题。
答案2
将数据范围转换为表格并添加总计行(右键单击 -> 表格 -> 总计行)。默认情况下,这将显示,SUM
但您可以轻松将其更改为其他函数的范围,包括STDDEV
。然后将数字过滤器应用于表格列。
编辑:(回复评论)
- 确保所有数据列的第一行都有一个名称。
- 选择范围,包括包含名称的第一行。
- 按Ctrl+ L(Windows) 并确保您已选择“我的表格有标题”。单击“确定”。
- 您现在应该看到 Excel 已将新格式应用于您的数据,并且每个列标题上都有下拉过滤器 - 您现在有一个 Excel桌子。
- 您可以通过右键单击要总计的列的任意位置来添加总计行。现在从弹出菜单中选择表格 -> 总计。默认情况下,您将获得
SUM
列中数据的总计 ( )。 - 选择包含总数的单元格,其右侧会出现一个下拉箭头。您可以单击此箭头将函数从更改
SUM
为所需的函数,例如StdDev
。 - 值是根据以下值计算得出的可见的在列中。您可以通过点击标题行中出现的下拉列表并使用数字或标签过滤器将过滤器应用于一个或多个列。计算值将相应更改。
答案3
这不是真正的答案,但值得考虑:Excel 没有更复杂的 xxxxIF() 函数,因为没有社区可能会使用它们。您的示例 SUMIF() 和 STDEVIF() 将被非常不同的社区使用。很容易看到会计师想要从全局注册表 (SUMIF) 中提取特定客户的所有交易。另一方面,统计人员必须非常仔细地证明从数据集中删除任何值的合理性。因此,自动过滤器不太可能;数据将在分析之前手动调整 (STDEVIF)。因此,这将需要一定程度的手动操作或非常复杂的单元格公式。
您不想为临时空间添加临时表的原因是什么?我很乐意插入工作表,然后手动选择要复制的数据,或者编写公式从原始工作表中提取数据。处理完“如果”部分后,就可以进行分析了。完成后,您可以删除或隐藏临时工作表。
答案4
您需要考虑的另一种方法是使用“辅助”列来标记过滤的数据:
您可以添加一列数据,并使用该列来确定某行是否被隐藏(过滤)。如果 Col A 中的值名义上已填充数据,则可以使用 Col Z(新筛选列)和公式“=subtotal(3,A2)”(从第 2 行开始),并让 Excel 使用 Cntrl+ 句柄自动填充到末尾。设置后,您可以选择隐藏新的筛选数据列。
设置好新的 Filter col Z 后,您可以将其与 COUNTIFS 或普通 IF 条件一起使用。使用 COUNTIFS 时,您可以将其用作类似于 COUNTIFS(Data_Rng,Data_Val,Filter_Rng,1) 的函数,它将过滤掉未隐藏行中等于 Data_Val 的值的 Data_Rng 计数,这些行由 Filter_Rng 等于 1 确定。请确保您的范围长度匹配,否则 Excel 将生成错误。
如果 COUNTIFS 不能满足您的需要,您还可以根据过滤器 Z 列设置派生条件值,并使用 Excel 自动填充功能来填充这些值 IF(Z2=1,compute-new-derived value,error)。