Excel:在乘以PRODUCT之前添加数字(…)

我正在计算MS Excel中使用GEOMEAN(...)命令行的几何平均数。

什么是几何平均数 :该行可以是A1:A10 。 用几何平均数

  GEOMEAN(A1:A10) 

是所有10个单元值的乘积(相乘在一起)之后第10个根(在math上: nth_root(A_1 x A_2 x ... x A_n) )。

问题 :只要没有单元格包含负值(实际上只要产品结束为正),命令GEOMEAN(A1:A10)可以正常工作。 如果一个单元格有一个负值,那么采取根在math上是一个无效的行为和Excel提供了一个错误。

解决scheme:我可以通过在执行GEOMEAN(A1:A10)之前向每个值添加一个足够大的数字(如+1000000 GEOMEAN(A1:A10) ,然后从结果中减去-1000000来解决此问题。 这是对纯几何平均值的math近似。

问题:但是,如何在Excel中为每个值添加+1000000 ? 解决办法是创build一个新的额外的行,添加数字,然后在这一行做GEOMEAN ,并从结果中减去数字。 但我真的想避免创build一个新的行,因为我有很多长的数据集来执行此命令。

有没有办法在命令本身添加数字? 将它添加到每个值之前,它是乘以? 有些东西是:

 GEOMEAN(A1:A10+1000000)-1000000 

解决scheme,以避免变通

基于@ ImaginaryHuman072889的回答和讨论

事实certificate,避免任何变通的工作命令是:

  IFERROR(GEOMEAN(A1:A10);-GEOMEAN(ABS(A1:A10))) 

如果IFERROR出现错误,那么我们知道会出现一个负面结果,所以在这种情况下手动构build。

但是 :这并没有考虑@ ImaginaryHuman072889提到的情况,因为Excel似乎禁止涉及任何负数,而不仅仅是内部产品是否定的。 例如, GEOMEAN(-2,-2)以及GEOMEAN(-2,-2,-2)在Excel中给出了错误,尽pipe它们在math上都是有效的,分别给出结果2-2 。 为了克服这个Excel问题,我们可以简单地写出完全相同的命令行:

  IFERROR(PRODUCT(A1:A10)^(1/COUNTA(A1:A10));-(PRODUCT(ABS(A1:A10))^(1/COUNTA(A1:A10))))) 

我添加这个解决scheme来帮助任何有同样问题的旁观者。 这在math上是有效的,但-2-2具有几何平均值2事实似乎有点奇怪,并且完全不像“平均值”的任何有用值。 据我所知,它仍然是math上的合法的( WolframAlpha没有问题,维基百科的文章从未提及过)。

你这样做的“解决方法”:

 GEOMEAN(A1:A10+1000000)-1000000 

完全错误的 。 这绝对不等于GEOMEAN(A1:A10)

简单的反例:

GEOMEAN({2,8})返回值4,即2和8的几何平均值。

GEOMEAN({2,8}+1)-1等于GEOMEAN({3,9})-1 ,约为4.196。

什么有效的解决方法是,如果您将GEOMEAN的每个值乘以某个值,然后将结果除以该值。

简单的例子:

GEOMEAN({2,8}*3)/3等于GEOMEAN({6,24})/3 ,即4。

然而,这种乘以常数的方法并不能帮助你的情况,因为这不会消除负面的价值。

在math上,正数和负数的几何平均数是一个虚数,这大概是为什么Excel无法处理它。

例:

 2*-8 = -16 sqrt(-16) = 4i 

因此,4i是2和-8的几何平均数。 请注意,它与“ GEOMEAN({2,8}) 大小相同,只不过是一个虚数。

所有这些说…这是我build议你做的事情:

我build议你返回两个结果,一个结果是几何平均值的大小 ,另一个是几何平均值的相位

公式大小:

 = GEOMEAN(ABS(A1:A10)) 

(注意,这是一个数组公式,所以在input这个公式之后,你必须按Ctrl + Shift + Enter而不是Enter )。在GEOMEAN计算之前,使用ABS将所有的负数转换为正值,保证一个正的几何意思。

公式阶段,我只是做这样的事情:

 = IF(PRODUCT(A1:A10)>=0,"Real","Imaginary") 

如果几何平均值是实数,那么显然返回实数,如果几何平均值是虚数,则返回虚数。


编辑

从技术上说,我所说的一些不完全确切,虽然上面的数量公式仍然存在。

有些事情我想澄清:

  1. 如果PRODUCT(data)正数 (或零),则data的几何平均数是正数 (或零)。
  2. 如果PRODUCT(data)负数, 并且如果data的条目数是奇数 ,那么data的几何平均数是负数 (但仍然是实数 )。
  3. 如果PRODUCT(data)负数, 并且如果data的条目数是偶数 ,则data的几何平均数是虚数的

这就是说…如果你想要这些公式在技术上更准确一点,我会修改为:

调整后的公式为:

 = GEOMEAN(ABS(A1:A10))*IF(AND(PRODUCT(A1:A10)<0,MOD(COUNT(A1:A10),2)=1),-1,1) 

调整后的公式:

 = IF(AND(PRODUCT(A1:A10)<0,MOD(COUNT(A1:A10),2)=0),"Imaginary","Real") 

如果几何平均值是实数,则返回精确的几何平均值(无论是正还是负),如果几何平均值是虚数,则返回具有正确幅度的正实数值。

所以,我刚刚find答案 – 虽然我不知道为什么这个工作。

GEOMEAN(A1:A10+1000000)-1000000实际上是可能的。 但是按下enter ,显示错误#VALUE 。 您必须点击control+shift+enter才能显示实际结果。

据此: https : //www.mrexcel.com/forum/excel-questions/264366-calculating-geometric-mean-some-negative-values.html

如果有人有这个解释,我很感兴趣。