行趋势开关向上或向下

时间:2018-07-18 14:43:25

标签: excel spreadsheet

不确定哪个函数或可能的vlookup,索引,匹配或聚合的组合对此最有效。到目前为止,我已经花了两个多星期的时间,似乎无法确定什么可行。所以,非常感谢您能解决这个难题的人。

我的目标是确定如何编写公式来显示这些结果。我的猜测是,第二个公式等将与初始公式不同,因为它将以从初始公式指定的行开始,因为我们有兴趣根据给定的更改值知道趋势开始向上或向下移动的行。

基于值的变化.15 结果必须为:

13向上(初始公式) 23下(从第13行继续???) 等等

基于值的更改.10 结果必须为:

13向上(初始公式) 17下(从第13行继续???) 19向上(从第17行开始???) 等等

希望我对此做得很好。谢谢,谢谢,谢谢能解决这个问题的人。

1 277.54 2 277.50 3 277.43 4 277.47 5 277.49 6 277.50 7 277.40 8 277.39 9 277.44 10 277.42 11 277.36 12 277.28 13 277.23 14 277.50 15 277.54 16 277.55 17 277.58 18 277.56 19 277.46 20 277.57 21 277.60 22 277.67 23 277.71 24 277.67 25 277.43 26 277.35

这是我的许多尝试之一。 = AGGREGATE(15,6,ROW(1:26)/((($ A $ 1-A2:A26)> = $ I $ 1),1)+1

第一行> =到0.15的差异(第8行)不足 Image showing inadequate result 因为基于.15的变化的上升趋势实际上始于第13行。 Correct example 它应该是什么样的图像: What it should look like image

1 个答案:

答案 0 :(得分:0)

最后我有一个答案。您将需要另外两列来进行操作(我认为您可以隐藏)。

第一步- 要知道什么时候开始出现新趋势,请将此公式放在B2中并向下拉至B26     = IF(A1-A2)(A2-A3)<0,IF(A2-A3 <0,“ Up”,“ Down”),“”) 现在,您可以准确地了解何时开始新趋势以及哪个趋势*。

编辑:现在在B2上使用此公式。之后,您还需要将其拉至B1以生成数据,然后向下拉至B26)。拉到B1之后,请勿直接从B1下拉,因为公式中会出现错误,请始终从中间行的公式中拉出。您需要使用ctrl + shift + enter

将其关闭
=IF(OR(ROW(A2)=SMALL(ROW($A$1:$A$26),1),ROW(A2)=LARGE(ROW($A$1:$A$26),1)),"tail",
IF((A1-A2)*(A2-A3)<0,
IF(ABS(A2-INDIRECT("A"&LARGE(IF(LEN($B$1:B1)>0,ROW($B$1:B1),""),1)))>$K$1,
IF(A2-INDIRECT("A"&LARGE(IF(LEN($B$1:B1)>0,ROW($B$1:B1),""),1))<0,"Up","Down"),
""),
"")
)

第二步- 要知道您的值何时跃迁> =大于您在单元格K1中输入的值(例如0.15),请将此公式放入C2并下拉至C26(使用ctrl + shift + enter将其关闭,这是一个数组公式)     = IF(ABS(A2-A1)> = $ K $ 1,LARGE((1 (LEN($ B $ 1:$ B $ 26)> 0))*((1 * ROW($ B $ 1:$ B $ 26)0,IF(ABS(A2-INDIRECT(“ A”&LARGE(IF((1 *(LEN($ B $ 1:$ B $ 26)> 0)) ROW($ B $ 1:$ B $ 26 )> 0,(ROW($ B $ 1:$ B $ 26)= $ K $ 1,ROW(A2),“”),“”)

另一项编辑:相反,请在C2单元格中使用ctrl + shift + enter关闭此公式,然后下拉至最后一个

=IF(B2<>"",IF(INDIRECT("B"&SMALL(IFERROR(IF(LEN(B3:$B$26)>0,ROW(B3:$B$26),""),""),1))<>B2,B2,""),"")

第三步- 在列表中排列数据。这就是图像中D和E列中的内容。请在所需的任何列的第一行中使用这些公式,并根据需要向下拖动,因为未使用的单元格将为空白     = IFERROR(SMALL($ C $ 1:$ C $ 26,ROW(C1)),“”) 和     = IFERROR(INDEX($ C $ 1:$ C $ 26,E1),“”)

编辑:现在使用下面的这些公式来显示更改的顺序列表

=IFERROR(SMALL(IF(LEN($C$1:$C$26)>0,ROW($C$1:$C$26),""),ROW(A1)),"")

=IFERROR(INDEX(C:C, F1),"")

当我将这两个公式中的第一个放在F1上(并下拉)时,第二个使用F1作为参数,但是您可以放置​​任何想要的列,只是不要忘记更改在索引中。这两个公式中的第一个也需要使用ctrl + shift + enter闭合,第二个不需要。

这是我的工作表现在的外观(最近的更改)

enter image description here

OBS:在此答案中“不建议使用”斜体部分。仅出于“日志”目的保留文本。

这两个公式中的第一个使用ROW()作为SMALL的“ K”参数数量的替罪羊,因此您将其拉低,它将返回第一,第二,第三等趋势更改器行。另一个将拉出匹配的“上”或“下”信息。 OBS:因为我的Excel是葡萄牙语,并且我使用一些网络词典将函数翻译成英语,所以我可能犯了一些错误,例如将分号用作参数分隔符而不是逗号。如果出现问题,请通知我,我将尝试修复。