Excel-使用IF语句和动态阈值从水平数据中删除离群值

时间:2018-09-20 19:40:25

标签: excel if-statement excel-formula outliers

我正在尝试摆脱数据集中的一些异常值。以下是我的数据集的一部分。

       13284    13285   13293   13294   13297   13301   13304   13309
Sat1    0.6140  #N/A    #N/A    #N/A    #N/A    #N/A    0.0635  #N/A
Sat2    #N/A    #N/A    0.5820  #N/A    #N/A    #N/A    #N/A    #N/A

这是整个数据集的图形,因此您可以看到我正在处理的内容。 enter image description here

我想应用一个规则,如果Sat1行中的值小于Sat2行中的最后一个非#N / A值减去该值乘以20%,那么将Sat1值更改为#N / A 。因此,在此示例中,0.0635远小于0.5820-(0.5820 * 0.2),因此将被省略。这将消除您在图中看到的第一个大幅下降。

我确定需要If语句;可能位于其他函数中,但我不知道如何处理#N / As。解决方案必须是动态的,因为我也需要过滤其他数据集(图形),并且#N / A并不总是位于同一位置。有任何想法吗?对于Excel来说可能太复杂了?

1 个答案:

答案 0 :(得分:0)

如果您的数据如下,则-

     A       B      C    D         E      F       G       H       I
#1          13284  13285  13293   13294   13297   13301   13304   13309
#2  Sat1   0.6140  #N/A   #N/A    #N/A    #N/A    #N/A    0.0635  #N/A
#3  Sat2    #N/A   #N/A   0.5820  #N/A    #N/A    #N/A    #N/A    #N/A

您可以在第4行的C列开始放置以下公式-

=IF(C2>LOOKUP(2,1/(ISNUMBER($A3:B3)),$A3:B3)*0.8,C2,NA())

您可以将此公式拖动到整个第4行,以得出更新的Sat1行:-)

P.S。 -我将“ Sat2行减去该值乘以20%”转换为Sat2行的80%。