【问题标题】:Create a truth table of results in an excel formula在 Excel 公式中创建结果真值表
【发布时间】:2016-05-31 10:22:33
【问题描述】:

基于两个输入条件,我希望能够输出 4 个输出值中的 1 个。例如,在检查两个表之间的匹配时,我希望能够访问如下函数:

=TRUTHTABLE(condition1,condition2,true-true,true-false,false-true,false-false)

做一些类似的事情:

=TRUTHTABLE(MATCH(value,array1,0),MATCH(value,array2,0),"Good","Missing","Redundant","Good")

到目前为止,我提出的两个选项是:

=IF(条件1,IF(条件2,真-真,真-假),IF(条件2,假-真,假-假))

或:

=CHOOSE(1--condition1*2--condition2,false-false,false-true,true-false,true-true)

由于条件 2 的重复,选项 1 维护起来很麻烦,而选项 2 很复杂,以便将来的维护者理解。我目前倾向于选项 2,但有人知道更好的选项吗?

【问题讨论】:

  • 您只处理 4 个选项,因此管理起来相对较小。您可以将表格写成 4 行 3 列,条件 1 的 A 列可能结果与 B 列中条件 2 的可能结果相匹配。每一对/行形成一个唯一标识符。然后,您只需查看表中条件 1 和条件 2 为真的行,并从匹配行中的 C 列返回结果。
  • 如果我只使用该公式一两次可能会起作用,但我计划在一列的每一行重复数百个单元格高。
  • A potentially easier way to manage multiple if results 而不是进入嵌套 IF 表。只要您的四个可能结果保持不变,您就应该能够将公式复制到您的数据列旁边。
  • 谢谢。今天下午我会尝试这种方法。
  • 您的问题中让我想起这一点的部分是未来的可维护性。是的,这个公式可能很疯狂,但是您要检查的表格相对容易维护。

标签: excel formula truthtable


【解决方案1】:

使用 A1 和 B1 的输入:

=LOWER(A1&"-"&B1)

A1 例如可能包含:

=NOT(ISERROR(MATCH(value,array1,0)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2021-03-05
    相关资源
    最近更新 更多