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

Excel/LO Calc/谷歌表格中列对处理后向量的标量积实现问题

跨Excel、LO Calc与谷歌表格的解决方案

需求回顾

数据按列对(奇数列+后续偶数列)排列:

  • 首行仅取奇数列的值作为权重
  • 其余行对每列对执行自定义双输入函数foo,再将结果与对应首行权重计算标量积(加权求和)

示例对应公式:=A$1*foo(A2,B2)+C$1*foo(C2,D2)+E$1*foo(E2,F2),实际为50行24列(12组列对)。


Excel & LO Calc 兼容方案

优先支持这两个工具,分两种场景:

1. 手动列对(适合少量列对)

直接按示例公式扩展,24列时的完整公式如下,下拉即可应用到所有行:

=A$1*foo(A2,B2)+C$1*foo(C2,D2)+E$1*foo(E2,F2)+G$1*foo(G2,H2)+I$1*foo(I2,J2)+K$1*foo(K2,L2)+M$1*foo(M2,N2)+O$1*foo(O2,P2)+Q$1*foo(Q2,R2)+S$1*foo(S2,T2)+U$1*foo(U2,V2)+W$1*foo(W2,X2)

2. 数组公式(适合大量列对,自动适配)

针对24列(12组列对),用数组公式自动生成列索引,无需手动罗列所有列对:

=SUM(INDEX($1:$1,,ROW(INDIRECT("1:12"))*2-1)*foo(INDEX(A2:X2,,ROW(INDIRECT("1:12"))*2-1),INDEX(A2:X2,,ROW(INDIRECT("1:12"))*2)))
  • 输入方式:旧版Excel/LO Calc需按Ctrl+Shift+Enter确认数组公式;Excel 365/LO Calc 7.5+可直接回车,公式自动溢出到下方行
  • 参数说明:12是列对总数(24÷2),A2:X2是当前行的全列数据范围

自定义函数foo注意事项

  • 若使用数组公式,foo需支持数组输入(Excel UDF需添加Application.Volatile或处理数组参数;LO Calc宏函数需启用数组运算)
  • 基础场景下(如示例中foo(x,y)=x*y),可直接替换为对应运算,无需自定义函数:
    =SUM(INDEX($1:$1,,ROW(INDIRECT("1:12"))*2-1)*INDEX(A2:X2,,ROW(INDIRECT("1:12"))*2-1)*INDEX(A2:X2,,ROW(INDIRECT("1:12"))*2))
    

谷歌表格方案

利用SEQUENCE生成列索引,结合ARRAYFORMULA实现数组运算:

=SUM(INDEX(1:1,,SEQUENCE(12,1,1,2))*ARRAYFORMULA(foo(INDEX(A2:X2,,SEQUENCE(12,1,1,2)),INDEX(A2:X2,,SEQUENCE(12,1,2,2)))))

或用MAP函数简化逻辑:

=SUM(MAP(SEQUENCE(12,1,1,2),LAMBDA(col, INDEX(1:1,col)*foo(INDEX(A2:X2,col),INDEX(A2:X2,col+1)))))

验证示例

以Julia示例数据测试:

  • 第2行结果:60*3*2 +20*5*4 +30*2*4 = 360+400+240=1000
  • 第3行结果:60*0*0 +20*2*3 +30*3*1 = 0+120+90=210
    与Julia代码输出一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:55:24