菜鸟遇到逻辑问题。使用 IF、AND...或者 OR?我不知道

菜鸟遇到逻辑问题。使用 IF、AND...或者 OR?我不知道

一个新手用户在绕我的逻辑。这是股票期权交易,我想知道 3 件事。1) 交易是开盘还是平仓,2) DTE(到期日)是否高于/低于某个数字(15 天),3) 股票价格与我的执行价格的百分比接近多少。(例如,当前股票价格为 100,我的执行价格为 91 = 比当前价格“低” 9.89%。我已经测试了所有条件的变化,并且它几乎有效。这是当前公式 =if(AND(H25>=15, K25>=0.1),"DTE 和 % 好", IF(P25="打开","DTE 或 % 不好", "关闭所以无所谓"))。

我想要的是:如果仓位为“关闭”,那么我不在乎其他条件是否高于/低于标准,因为这是主要因素。如果仓位为“打开”,那么我想知道 1 或 2 是否为真(DTE 小于等于 15 或百分比小于等于 10%)。

有效的方法:如果我使用 DTE 或 % 的数字,它似乎可以正常工作,因为我得到“DTE 或 % 不好”,而状态 =“打开”。当我更改 DTE 或 % 以触发失败,然后从“打开”切换到“关闭”时,我得到正确的响应“关闭,所以没关系”。问题是当 DTE 和 % 是多于标准(意味着它们不会触发失败)并且状态为“已关闭”,我得到“DTE 和 % 都很好”。我希望它也能显示“已关闭,所以没关系”。

我确信我混淆了 IF、AND、OR 的用法。非常感谢您的帮助。

我的 3 列是:

状态(P 列)- 我以文本形式手动输入“打开”或“关闭”。

% 相对于当前价格() K 列- 格式化为百分比并计算((当前价格 - 执行价格)/执行价格))。

DTE(到期日)H 列- 计算两个日期的差值。

答案1

只需按照你的逻辑“反过来”就可以了,这样它就能与“文字问题”语言相匹配。

首先测试关闭的项目。然后检查其他两个条件是否良好。其余所有项目的倾倒场至少有一个是坏的。

所以:

=IF(P25="Closed","Closed so doesn't matter",  IF(AND(H25>=15, K25>=0.1),"DTE and % are good",  "DTE or % is bad"))

首先,所有已关闭的项目都被“移除”(公式停止并告诉您它已关闭)。唯一没有通过该测试的项目是未关闭的项目。接下来,测试这两个条件是否为真,如果是,则报告为真,并且这些项目被“移除”(公式停止并告诉您两个条件都很好)。剩下的都是已关闭的项目,但其他两个条件中的一个或两个都不可接受。此时公式停止,因为您不需要更多细节。

像这样的嵌套IF()基本上就是从测试中移除项目,然后深入测试。因此,通过首先移除最明显的情况(最简单、嵌套最少)几乎总是效果最好,因为这些情况最容易描述,而当您到达最远的集合(具有最复杂条件集的集合)时,您通常可以像这里一样将它们全部倒入“谁在乎?”桶中。

当然,并非总是如此,但通常如此。在这种情况下肯定如此。

附注:有一种函数叫做IFS(),它很适合这种事情。如果只有一个、两个或三个条件,那么短嵌套IF()就非常清晰且易于维护。但是如果条件越多,看起来就越“密集”,就越难理解,因此也就越难维护,或者向想要确保你的工作有效的老板解释。

使用公式进行操作,Alt-Enter这样公式中就会有多行,可以将每个条件和结果放在一行中。15 个条件?15 行,每个条件一个。易于阅读和理解每个条件,易于更新、删除或添加条件。老板很容易理解您的工作并批准它。

相关内容