You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Sheets中用布尔OR生成CxA表格的单单元格公式求解

Google Sheets 单单元格布尔矩阵OR运算公式实现

我需要在Google Sheets中编写一个直观的单单元格公式,已知两个布尔值表格(维度分别为AxB、CxB),按照布尔OR规则生成对应的CxA表格。尝试过map、byrow、bycol或scan函数,但在矩阵操作上遇到了困难。

逻辑示例

R对应[a,e]为真;a对应[1,2,3,6]为真;e对应[3,4,6]为真,因此R对应[1,2,3,4,6]为真。

输入矩阵

AxB矩阵

AxBRBGK
a1000
b0001
c0110
d0100
e1100

CxB矩阵

CxB123456
a111001
b001010
c010110
d110110
e001101

期望输出矩阵

CxA矩阵

CxA123456
R111101
B111111
G010110
K001010

解决方案公式

假设AxB矩阵的数值区域为B2:E6(即去掉第一列标签后的部分),CxB矩阵的数值区域为H2:M6(去掉第一列标签后的部分),使用以下单单元格公式即可生成目标矩阵:

=--(MMULT(TRANSPOSE(B2:E6), H2:M6) > 0)

如果需要保留标签并让公式更易读,可以用LET函数封装变量:

=LET(
  axb_data, B2:E6,
  cxb_data, H2:M6,
  transposed_axb, TRANSPOSE(axb_data),
  product_matrix, MMULT(transposed_axb, cxb_data),
  --(product_matrix > 0)
)

公式说明

  1. TRANSPOSE(B2:E6):将AxB的数值矩阵转置,把原来的5行4列(a-e对应R/B/G/K)转换为4行5列(R/B/G/K对应a-e),匹配矩阵乘法的维度要求。
  2. MMULT(...):执行矩阵乘法,得到的每个元素是对应行(比如R)与列(比如1)的乘积之和。这个和的意义是:R对应的所有为真的行(a、e)在CxB矩阵的1列中,有多少个为1。
  3. --(product_matrix > 0):将乘积和大于0的结果转换为1(布尔真),等于0的转换为0(布尔假),完美匹配布尔OR的逻辑——只要有一个为真,结果就为真。

内容的提问来源于stack exchange,提问作者Konchog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:47:31