【问题标题】:Generate a truth table in excel在excel中生成真值表
【发布时间】:2016-03-22 17:55:12
【问题描述】:

我需要制定一个公式,为您提供可变数量列的真值表。

示例

【问题讨论】:

  • 我认为 this 可能是 VBA 方法的目标。

标签: excel excel-formula truthtable


【解决方案1】:

将 FirstCell 替换为对包含第一个 2^1 值的单元格的静态引用,例如$D$1 用于 4 位表(16 个值)并自动填充到网格的其余部分(在示例中为 A1:D16)

=IF(MOD(ROW()-ROW(FirstCell),POWER(2, ((COLUMN() - COLUMN(FirstCell)) * -1) + 1)) >= (POWER(2, ((COLUMN() - COLUMN(FirstCell)) * -1) + 1) / 2),1,0)

这背后的逻辑是:

如果当前行模2幂电流列(*-1为第一个值在最后一列,+1,因为它从0开始)大于或等于2幂电流列的一半,取值为1,否则取值为0。

【讨论】:

  • 提醒那些使用 , 作为小数分隔符的区域设置 => 用 ; 替换出现的 ,
  • 真的很有帮助!对于其他所有人,请注意“FirstCell”是表格的右上角单元格。
【解决方案2】:

当前推荐的答案对我不起作用。对于更简单的方法,我建议使用以下公式:

=IF(MOD(FLOOR((ROW()-ROW(TopRight))/(2^(COLUMN(TopRight)-COLUMN())), 1),2)=0,0,1)

TopRight 是真值表右上角的单元格。

例如,如果您要创建一个包含 8 个以 A3 开头的条目的真值表,请将 TopRight 替换为 $H$3,然后上下拖动公式。


对所发生情况的基本解释:在真值表中,每行数为2 ^ n,行交替为 1 或 0,其中n 是给定列距最右侧列的列数。

【讨论】:

    【解决方案3】:

    其他答案可能会让布尔感到难过。这个旨在更布尔化。

    您需要用0's 填充第一行(2

    对于 LSB 列 (D) - 反转:

    • =NOT(D2)*1(单元格D3的公式,复制到D4:D17
    • 这将反转上面行中的值。 *1 数字化是必要的,以避免看到 TRUEFALSE

    对于所有其他列 - 添加:

    • =XOR(AND(D2:$D2),C2)*1(单元格C3的公式,复制到所有单元格A3:C17
    • 对于 ADD 函数,您希望将列中的上述值与右侧所有列中所有位的结果进行异或运算。 (换句话说:如果上位右侧的所有位都是 1,那么您应该翻转上位的值。此 ADD 公式适用于任意数量的列。)李>
    • AND 范围被引用到上一排和右一列,到$D LSB 列,也是上一排。因此,LSB 列的 $D 锚允许复制到任何其他列
    • 同样,*1 用于对生成的TRUE/FALSE 进行数字化

    【讨论】:

      【解决方案4】:

      这是一个 Microsoft 365 单行:

      =TRANSPOSE(LET(n,5,m,2^n,x,SEQUENCE(n,m,0),y,FLOOR(x/m,1),z,FLOOR((x-y*m)/2^(n-1-y),1),MOD(z,2)))
      

      n 是需要的列数,m 然后存储每列的长度。

      公式找到x的行并将值存储在y中,然后依次将每一行减半为正确的格式,并输出结果mod 2以产生输入真值表集。

      使用TRANSPOSE 是因为SEQUENCE 将数字从左到右、从上到下放置。

      【讨论】:

        【解决方案5】:
        0 0 0 0  
        0 0 0 1   
        0 0 1 0   
        0 0 1 1   
        0 1 0 0    
        .....   
        

        记住数字只有 0 或 1。

        对于 D 列:D2=1-D1
        对于 C 列:C2=IF(D1=1,1-D1,D1)
        对于 B 列:B2=IF((C1=1)*(D1=1),1-B1, B1)
        .....

        完成此操作后,为您的真值表复制没有公式的数字以避免 Excel 计算。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-30
          • 2010-10-31
          • 2011-03-31
          • 1970-01-01
          相关资源
          最近更新 更多