【问题标题】:Excel - Removing outliers from horizontal data using IF statements and dynamic thresholdExcel - 使用 IF 语句和动态阈值从水平数据中删除异常值
【发布时间】:2018-09-20 19:40:24
【问题描述】:

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

       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

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

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

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

【问题讨论】:

    标签: excel if-statement excel-formula outliers


    【解决方案1】:

    如果你的数据如下-

         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 行 :-)

    附: - 我已将“Sat2 行减去该值乘以 20%”转换为 Sat2 行的 80%。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-10
      • 2016-08-20
      • 2022-07-06
      • 2021-11-20
      • 2023-03-11
      • 1970-01-01
      • 2021-01-16
      • 2015-12-24
      相关资源
      最近更新 更多