获得excel以根据单元格值创建数据组

时间:2017-01-20 18:01:44

标签: excel vba excel-vba excel-formula

我有一个让我难过的问题。我觉得我非常接近答案,但是无法创造出足够的解决方案。我已经尝试了嵌套的IF语句,结合了AND函数,并结合了OR函数,我无法提出足够强大的东西来回答这个问题

这是我的问题

我正在创建一个程序,使用振荡器方程自动分析库存。这些方程的结果(理论上)预测了股票在短期内的表现。

在这个等式公式中,如果计算出的振荡器低于30,则认为股票被认为是未买入,如果高于80则认为超买。我想按照计算出的振荡器值的内容对单元进行分组。

期间的开头以上一次出现或超过80的值后的第一个值为30或以下的值开始。

在先前确定的=< 30值之后,首次出现80或80以上的值时,该期间结束。

有时候某个值不适合某个时期。例如,夹在最后一个句点结尾和下一个句点开头之间的值50将不会有一个组。

我附上了2张照片。

第一张图片是数据外观的一个例子。 %D列是计算出的振荡器结果。值得注意的是,我想将此解决方案扩展到多个股票,每个股票都有不同的数据。我会用它来分析不同时期的股票(比如6个月或12个月)。因此,解决方案需要足够动态,以适应不同数量的单元格和不同的数据分布。

第二张图片是我希望结果如何的示例。我添加了一个评论部分来解释分组背后的原因,以防上述说明没有意义。

图片1 Image 1- example of what input data could look like

图片2 Image 2- Example of what I would like the desired result to look like

如果我能为您澄清任何事情,请告诉我。任何想法或帮助都非常感激

1 个答案:

答案 0 :(得分:1)

将其放入B2并复制下来:

=IF(AND(NOT(ISNUMBER(B1)),A2<=30),MAX($B$1:B1)+1,IF(MAX($B$1:B1)=0,"",IF(AND(ISNUMBER(B1),A1>=80),"",B1)))

enter image description here