仅当与保管箱中的特定字符串匹配时才对特定单元格求和
Sum particular cells only if matched a particular string from a dropbox
我有这个项目成本计算电子表格,我可以在其中跟踪我所有的项目利润、费用等。
每个项目中的项目数量总是不同的。然后我有一些项目状态,例如:进行中、已开具发票、已付款、已关闭等。
我需要的是只计算已关闭项目的所有销售额、成本和利润的总和。您可以在每个项目的顶行看到我有一个数据验证单元格,其中我 select 项目的状态。关闭后,我需要将其销售额、成本和利润添加到顶部单元格(橙色、蓝色和绿色)。
我这辈子都想不出该怎么做。试过 sumif 加上查询没有运气。有什么想法吗?
这是电子表格的示例https://docs.google.com/spreadsheets/d/18Y-2jeKue9aH4gGdKHZjECygo47JFOp2W11C2sy7fJk/edit?usp=sharing
编辑:
我找到了解决方法。通过在 Total: cell 旁边的单元格中重复项目的状态。然后只需使用 =SUM(QUERY($B:$M,"select M WHERE B = 'Closed'"))
。但我确信有更优雅、更强大的方法可以解决我的问题。
因为有时我遇到只支付了整个销售价格的 50%(预付款)的情况,所以我也想反映一下。
如果您对解决方法不满意,可以这样做:
=ARRAYFORMULA(SUM(QUERY({VLOOKUP(ROW(A12:A), IF(IFERROR(REGEXEXTRACT(K12:K,
"Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"))<>"",
{ROW(A12:A), K12:K}), 2, 1), C12:C, M12:N},
"select Col3 where lower(Col1) = 'closed' and lower(Col2) = 'total:'", 0)))
利润:
=ARRAYFORMULA(SUM(QUERY({VLOOKUP(ROW(A12:A), IF(IFERROR(REGEXEXTRACT(K12:K,
"Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"))<>"",
{ROW(A12:A), K12:K}), 2, 1), C12:C, M12:N},
"select Col4 where lower(Col1) = 'closed' and lower(Col2) = 'total:'", 0)))
我有这个项目成本计算电子表格,我可以在其中跟踪我所有的项目利润、费用等。 每个项目中的项目数量总是不同的。然后我有一些项目状态,例如:进行中、已开具发票、已付款、已关闭等。
我需要的是只计算已关闭项目的所有销售额、成本和利润的总和。您可以在每个项目的顶行看到我有一个数据验证单元格,其中我 select 项目的状态。关闭后,我需要将其销售额、成本和利润添加到顶部单元格(橙色、蓝色和绿色)。
我这辈子都想不出该怎么做。试过 sumif 加上查询没有运气。有什么想法吗?
这是电子表格的示例https://docs.google.com/spreadsheets/d/18Y-2jeKue9aH4gGdKHZjECygo47JFOp2W11C2sy7fJk/edit?usp=sharing
编辑:
我找到了解决方法。通过在 Total: cell 旁边的单元格中重复项目的状态。然后只需使用 =SUM(QUERY($B:$M,"select M WHERE B = 'Closed'"))
。但我确信有更优雅、更强大的方法可以解决我的问题。
因为有时我遇到只支付了整个销售价格的 50%(预付款)的情况,所以我也想反映一下。
如果您对解决方法不满意,可以这样做:
=ARRAYFORMULA(SUM(QUERY({VLOOKUP(ROW(A12:A), IF(IFERROR(REGEXEXTRACT(K12:K,
"Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"))<>"",
{ROW(A12:A), K12:K}), 2, 1), C12:C, M12:N},
"select Col3 where lower(Col1) = 'closed' and lower(Col2) = 'total:'", 0)))
利润:
=ARRAYFORMULA(SUM(QUERY({VLOOKUP(ROW(A12:A), IF(IFERROR(REGEXEXTRACT(K12:K,
"Undefined|Quote|Accepted|In-progress|Cancelled|On-hold|Not Paid|Paid 50%|Closed"))<>"",
{ROW(A12:A), K12:K}), 2, 1), C12:C, M12:N},
"select Col4 where lower(Col1) = 'closed' and lower(Col2) = 'total:'", 0)))