google-sheets - 在“SUMIF”中沿总和范围广播的标准范围
问题描述
SUMIF
如果两个参数使用不同的范围维度,Google 电子表格能否在其函数中广播行或列,特别是在 中?
例如,我希望SUMIF(B1:F1, "Offices", B2:F4)
返回56+23+23
,因为1x5
范围B1:F1
将在行维度中重复以匹配3x5
范围B2:F4
。PS:这种重复称为次元广播。不幸的是,这不起作用,SUMIF
只是忽略它没有条件的 2 行并返回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
要求列标题与其数据相邻,而我想我想将总和放在标题和数据之间。话虽如此,我也想学习一个强大的概念,而不是DSUM
功能。
条件格式Google 电子表格确实提供格式广播,例如,如果我A1:F4
在条件 上格式化范围=A$1="Cars"
,那么两个“汽车”列将被格式化,即使它们是列D
和F
.
与做广播的 numpy 相比, numpy
在 Python 编程时可以用作电子表格库,做一些称为(维度)广播的事情。考虑一个 1 行 3 列的数组(读取电子表格)a
和另一个b
3 行 3 列的数组。然后我们可以要求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],
])
解决方案
推荐阅读
- r - 如何使 R 对象不可变?
- spring-boot - Spring data elasticsearch 6.8.5 如何配置HTTP端口
- c# - 临时块 REST 控制器
- c# - 取消线程休眠
- java - 如何将 XML 文件中的特定信息解析为 java 中的对象?
- java - 如何从 JavaFX 11 项目构建真正的桌面可执行应用程序?
- python-3.x - 在 AWS SAML 联合登录中使用时 win32crypt.CryptUnprotectData 引发错误
- javascript - 从数据删除行中反应表不刷新
- gremlin - 更改 gremlin 服务器中的默认序列化以使用 GraphSON V1
- c# - 是否可以从 ASP.NET MVC 中的 @Html.EditorFor 中删除或隐藏最后条目的建议