我正在制作一个电子表格来对食谱成分进行评分,计算成分质量、包装和份量准确性的平均分,然后使用这些数据来计算整个食谱的平均值。
分数是通过数据验证填写的。1=差,2=一般,3=好。AVERAGE
公式在以下情况下适用:全部 字段是通过下拉列表输入的,但如果任何一行都留空,我会DIV/0
在试图获取平均值(E8:E19
)以及整个配方的平均值(B20
)的列中收到错误。我试过AVERAGEIF
,但没有成功,我被难住了。每个食谱的配料数量都不同,所以无论我有一种配料还是 20 种配料,这个函数都能正常工作,这一点很重要。
我尝试上传截图但网站不允许。
答案1
您是否尝试过使用 Excel 中的错误捕获功能?正如您所说,如果您仅对空白单元格取平均值,Excel 将提供 Div/0 的结果。
假设有 3 个人 (A、B、C) 正在评论鳄梨酱食谱。假设 csv 看起来像这样:
成分,得分 A,得分 B,得分 C
鳄梨,1,2,3
香菜,,,
青柠,1,2,3
番茄,1,2,3
计算每种成分的平均值时,请使用如下公式:=IF(ISERROR(AVERAGE('ingredient score range')=TRUE),"",AVERAGE('ingredient score range')
这个公式的作用是,如果成分得分的平均值有误,则将其留空。否则,计算平均值。
然后,您应该能够毫无问题地计算出所有配料的平均分数。您还可以选择将配料的分数设为 0,而不是空白。这当然会改变食谱的平均分数。
答案2
IFERROR
是一个非常方便的功能;
如果错误(计算值,默认值)
是缩写
如果(IS错误(计算值),默认值,计算值)
即,它替换默认值(通常是非-错误值)来获取错误值。因此,您可能需要类似
IFERROR(AVERAGE(E8:E19), "")
当所有都是非数字时,用""
您想要获得的任何内容替换。E8:E19