如果两个参数使用不同的范围尺寸,Google电子表格可以广播其功能中的行或列,尤其是在SUMIF
中吗?
例如,我希望SUMIF(B1:F1, "Offices", B2:F4)
返回56+23+23
,因为在行维中将重复1x5
范围B1:F1
以匹配3x5
范围B2:F4
。 PS:这种重复称为“维度广播”。不幸的是,这行不通,SUMIF
只是忽略了没有条件的两行并返回了56
。
A B D D E F
1 Month Maintenance Offices Cars Employees Cars
2 Jan 23 56 43 23 56
3 Feb 12 23 67 43 21
4 March 44 23 45 56 45
问题:我是否可以在SUMIF中指定一个条件,使列或行保持固定(如条件格式设置那样)?换句话说,如何在SUMIF中指定一个标准,以便广播标准范围?
为什么DSUM不起作用:请注意SUMIF(B1:F4,"Offices",B1:F4)
可以解决问题,只是由于B1:F4
不是一个合适的数据库,在这里它会失败,因为存在两列名为"Car"
。此外,DSUM
要求列标题与它们的数据相邻,而我想我想将总和放在标题和数据之间。话虽这么说,我还想学习一个强大的imho概念,而不是DSUM
函数。
条件格式 Google电子表格确实提供了格式广播,例如,如果我在条件A1:F4
下格式化范围=A$1="Cars"
,则两个“汽车”列将被格式化,即使它们是列D
和F
。
与numpy进行比较,可以广播 numpy
,可以在编写Python时用作电子表格库,它执行(维度)广播。考虑一个1行3列的数组(读取电子表格)a
和另一个3行3列的数组b
。然后,我们可以要求numpy
乘以两个元素(读取单元格),然后将a
的单行重复三次以匹配b
的尺寸:
import numpy
a = numpy.array([
[0, 1, 2]
])
b = numpy.array([
[0, 1, 2],
[3, 4, 5],
[7, 8, 9],
])
a * b
结果,请注意整个第一列乘以0,整个第二列乘以1,整个第三列乘以2:
numpy.array([
[0, 1, 4],
[0, 4, 10],
[0, 8, 18],
])