Google sheets 平均从finviz提取的值时出错

Google sheets 平均从finviz提取的值时出错,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,因此,在构建我的股息投资组合电子表格时,我从finviz网站上提取了各个股票的年收益率%,尽管价值提取效果很好,但当我试图找到包含这些价值的单元格的平均值时,问题就来了 例如,在下表中:单元格B2通过使用公式提取VTI(位于单元格A2)的年股息收益率%: =IF(SUBSTITUTE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,&quo

因此,在构建我的股息投资组合电子表格时,我从finviz网站上提取了各个股票的年收益率%,尽管价值提取效果很好,但当我试图找到包含这些价值的单元格的平均值时,问题就来了

例如,在下表中:单元格
B2
通过使用公式提取
VTI
(位于单元格
A2
)的
年股息收益率%

=IF(SUBSTITUTE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,"table", 9),8,2),"","")="-","", 
    SUBSTITUTE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,"table", 9),8,2),"",""))  
我明白了

现在,当我尝试在单元格
B4
中查找年度股息收益率的平均值时,使用以下公式:

=AVERAGE(B2:B3)
然后我得到了
#DIV/0的错误
我假设这是因为我从finviz中抓取数据,然后尝试平均,但不确定


不管怎样,有没有办法绕过这个问题并找到平均百分比?

您的公式结果是包含
*
以及
%
符号的文本。
你需要改变你的公式,这样你就可以得到一个数字

=IF(REGEXREPLACE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,"table", 9),8,2),"\*|%","")*1="-","", 
    REGEXREPLACE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,"table", 9),8,2),"\*|%","")*1)

我们实际要做的是将
SUBSTITUTE
函数更改为
REGEXREPLACE
one,并使用
*1

将结果从文本更改为数字,因此我需要它是%年龄形式,即1.72%,而不是仅仅1.72%,因此我将*1更改为*0.01,然后对该列使用纸张百分比格式!这是正确的方法吗?另一个问题:如果某只股票或ETF没有股息%,那么它从finviz中提取-符号,因此我写了一个If规则,如果它等于-符号,那么将单元格设为空,但现在它给我的错误是“-”是一个文本,不能强制为数字!您很可能还需要使用
IFERROR
功能。如果仍有麻烦,请分享新配方
=IF(REGEXREPLACE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,"table", 9),8,2),"\*|%","")*1="-","", 
    REGEXREPLACE(index(IMPORTHTML("http://finviz.com/quote.ashx?t="&REGEXEXTRACT(A2, "[^:]+$") ,"table", 9),8,2),"\*|%","")*1)