如何解决使用定义的行名称对仅 SUMPRODUCT 的行进行干净的方法
首先,这更像是一个与 excel 相关的问题,而不是与 openpyxl 相关的问题,但我提到它是因为该解决方案需要通过 openpyxl 手段可行。
问题:
我正在尝试使用 openpyxl 生成一个电子表格,其中包含一些产品的数量(行)及其每月(列)的销售价格(行):
the generated worksheet looks like this
所有行都有一个关联的定义名称。例如“产品_1_数量”或“产品_1_销售价格”。
我想创建一行,通过将每个数量乘以其售价,然后将所有产品相加来计算我的产品的总价值。
我尝试过的:
我已经通过在目标行中插入 CSE 公式来完成我想要的,例如:{=product_1_quantity*product_1_selling_price + product_2_quantity*product_2_selling_price + product_3_quantity*product_3_selling_price}
其中“product_1_quantity”定义为“E15:P15”,“product_1_ sell_price”定义为“E18:P18” "等等。
我在寻找什么:
我想找到一种更简洁的方法(也许使用 SUMPRODUCT 列方式?),在添加额外产品时不会使我的公式变得非常长,但不会放弃使用我定义的名称。
我想继续为每个产品使用定义的名称,因为它们使我的公式更具可读性和可维护性(不仅从 excel 的角度,而且从 python-openpyxl 的角度)。我也可以接受,例如,对包含价格的整个范围使用一个定义的名称,对包含数量的范围使用另一个定义的名称,只要代码和 excel 可以保持相当的可读性和可维护性。
解决方法
定义 E15:T17
的名称数量和 E18:T20
的另一个价格,然后在第 14 行中使用 CSE 公式 =MMULT({1,1,1},quantity*prices)
。
如果您有支持动态数组的 Excel 版本,您可以在 E14 中输入公式,它会自动溢出到其他列。
如果添加产品,第一个参数中的产品数量需要等于产品数量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。