LibreOffice:如何基于独立单元格的X值实现周期性订购费用汇总
在 LibreOffice 中计算酿酒食材订购总价的实现方案
作为经常和 LibreOffice 表格打交道的人,我来给你拆解这个需求的具体实现步骤,完全适配你酿酒商的场景:
核心逻辑梳理
你的需求本质是:根据累计酿造批次总数,对每个食材计算截至目前需要订购的次数,再乘以单价,最后汇总所有食材的订购费用。
- 订购次数 = 累计批次总数 ÷ 该食材的「每X批次订购一次」数值(向下取整,比如累计12批次、每5批次订一次,就是2次)
- 单食材订购费用 = 订购次数 × 单价
- 总价 = 所有食材订购费用之和
假设的数据结构
先明确你的表格布局(可以根据实际调整单元格范围):
- 食材列表区域:
A2:C10(A列=订购物品名称,B列=单价,C列=每X批次订购一次) - 累计酿造批次总数:放在单元格
E1(如果你的批次是分散在清单里的,先算总数:比如酿造清单在F2:F100,用=COUNTA(F2:F100)统计行数得到批次总数,或者=SUM(F2:F100)如果是数量值)
一步到位的公式实现
直接在需要显示总价的单元格(比如E2)输入以下公式:
=SUMPRODUCT(IFERROR(INT($E$1/C2:C10)*B2:B10, 0))
公式拆解
INT($E$1/C2:C10):对每个食材计算需要订购的次数,INT()实现向下取整,$E$1用绝对引用确保一直指向累计批次的单元格*B2:B10:将订购次数乘以对应食材的单价,得到单食材的总订购费用IFERROR(..., 0):处理异常情况(比如C列有空值、0值),避免出现错误提示,这类情况直接忽略该食材SUMPRODUCT():自动遍历所有食材行,汇总所有单食材的订购费用
举个实际例子验证
比如你的食材列表是:
| 订购物品名称 | 单价 | 每X批次订购一次 |
|---|---|---|
| 啤酒花 | 600€ | 5 |
| 麦芽 | 800€ | 3 |
| 酵母 | 200€ | 10 |
累计酿造批次E1=12,代入公式后:
- 啤酒花:
INT(12/5)=2→2*600=1200€ - 麦芽:
INT(12/3)=4→4*800=3200€ - 酵母:
INT(12/10)=1→1*200=200€ - 总价:
1200+3200+200=4600€,公式计算结果完全匹配
额外提示
- 如果你的「每X批次订购一次」是指每酿造X批次后需要订购一次(包含当前批次),逻辑需要调整为
INT(($E$1+1)/C2:C10),比如累计5批次时,INT((5+1)/5)=1,刚好触发一次订购 - 确保B列单价是数值格式,不要带€符号(可以通过单元格格式设置添加货币符号,不影响计算)
内容的提问来源于stack exchange,提问作者Alexis Métaireau
相关产品推荐
相关产品推荐

