如何使用忽略错误的排名公式

时间:2019-03-26 21:17:47

标签: excel excel-formula

我正在尝试建立一个忽略错误的排名公式。

我尝试过:

library(data.table)
setDT(df)
setkey(df,start,end)
df[,row_id:=1:nrow(df)]

temp <- foverlaps(df,df)
temp[, `:=`(c("start","end"),list(min(start,i.start),max(end,i.end))),by=row_id]
temp[, `:=`(c("start","end"),list(min(start,i.start),max(end,i.end))),by=i.row_id]
temp2 <- temp[, list(group2=.GRP, row_id=unique(c(row_id,i.row_id))),by=.(start,end)][,.(row_id,group2)]

setkey(df,row_id)
setkey(temp2,row_id)
temp2[df]

我也尝试过:

=Rank(BN4,(if(iserror(BQ4:BQ31),"",BQ4:BQ31)))

公式是否有问题?有没有更好的办法?参见下图,等级公式出现在Col BN中。谢谢!

![enter image description here] 1

2 个答案:

答案 0 :(得分:1)

给出以下电子表格:

enter image description here

您可以在C2上使用以下公式并将其拖动:

=IF(ISERR(A2),"",COUNTIF($A$2:$A$7,">"&A2)+1)

答案 1 :(得分:0)

我认为这是怎么回事:在您的第二个公式中,您的Sumproduct仍然计算有错误。尽管您的公式的第一部分告诉Excel在计算ERROR的等级时返回空白,但错误仍会输入到您实际计算等级的第二部分,因此Excel即使计算出的等级也会吐出Error。普通号码

上面卢卡斯提供的公式可能是最简单的方法。如果必须使用sumproduct,则应在sumproduct中包含一些内容,以告诉excel如果在计算某些乘积时遇到错误,则使用空白值。

例如,如果您尝试执行A1:A4和B1:4的总和,但两个范围都存在一些错误,则可以使用:

 =SUMPRODUCT(IF(ISNA(A1:A4),0,A1:A4),IF(ISNA(B1:B4),0,B1:B4))