在电子表格中使用多个 IF 公式对唯一值进行排序
Sorting for Unique values with multiple IF formula in spreadsheet
我有 sheet 个按日期自然排序的销售条目。每个 属性 可以有多个条目(取消作为负购买输入)。我的苦难是我只需要为 SIGNED 标记的行合并重复项和求和乘积列。
其次,所有 0 值(通过对所有产品列求和来检查,如果 0 = 已取消)不需要从一开始就显示。本质上,该列表必须按 2 个标准排序,然后相应地求和以创建一个 "Active Accounts" table,可以从中提取更多数据。
第三,这一切都必须实时发生。添加销售额后,tables 应该会有效更新。
在理想情况下,创建一个辅助列,如果 "signed" 对产品列求和,如果为 0 则返回 yes/no,因为它迫使我使用视图仅显示活动帐户,而不是这个在 table 开始时动态发生。如果有必要,我想我可以走那条路,但希望你们能帮我指导我这样或那样。
我将尽我最大的努力来说明我目前所拥有的done/tried:
Client Product 1 Product 2 Product 3 Status
AA 50 50 50 Signed
BB 0 0 50 Signed
AA 0 -50 0 Signed
CC 50 0 0 Signed
CC -50 0 0 Signed
BB 0 0 -50 Pending
AA 0 0 50 Signed
AA 0 0 50 Pending
根据上述数据,我的第二个 sheet 会是什么样子。
Client Product 1 Product 2 Product 3 Status
AA 50 0 100 Signed
BB 0 0 50 Signed
此时我只知道A1中的“=unique(client)”动态获取唯一列表,没有荒谬的公式。然后在状态列之后执行 if(sum($b2:$d2)=0,"no",yes")) ,然后用视图进行整理。我唯一的问题是 "Pending" 销售,进入我的table。我试图通过在产品总和列中对其进行排序来解决这个问题。
=if(isblank(A3),,(sumif(client,A2,product1)))
这对我来说非常有用,但它不适合 "Signed" "Pending"
我试过了:
=if(isblank(Properties),,(IF(And(Properties=$A2,status="Signed"),SUM(SEO))))
但我收到错误 "An array value cannot be found."
我真的不知道接下来要采取什么步骤来解决这个问题。
可以使用 QUERY 函数生成这些类型的报告:
=QUERY(QUERY(A:E,"select A, sum(B), sum(C), sum(D), E where E = 'Signed' group by A, E label sum(B) 'Product 1', sum(C) 'Product 2', sum(D) 'Product 3'",1),"select * where Col2 != 0 or Col3 != 0 or Col4 != 0",1)
这里有两个嵌套的QUERY;内部的对每个客户端的值求和,即 "signed",外部的不包括任何没有至少一个非零求和值的客户端。
在新的 GOOGLE 电子表格中,我不得不将逗号更改为分号:
以这种方式为我工作:
=QUERY(QUERY(A:E;"select A, sum(B), sum(C), sum(D), E where E = 'Signed' group by A, E label sum(B) 'Product 1', sum(C) 'Product 2',
sum(D) 'Product 3'";1);"select * where Col2 != 0 or Col3 != 0 or Col4
!= 0";1)
我有 sheet 个按日期自然排序的销售条目。每个 属性 可以有多个条目(取消作为负购买输入)。我的苦难是我只需要为 SIGNED 标记的行合并重复项和求和乘积列。
其次,所有 0 值(通过对所有产品列求和来检查,如果 0 = 已取消)不需要从一开始就显示。本质上,该列表必须按 2 个标准排序,然后相应地求和以创建一个 "Active Accounts" table,可以从中提取更多数据。
第三,这一切都必须实时发生。添加销售额后,tables 应该会有效更新。
在理想情况下,创建一个辅助列,如果 "signed" 对产品列求和,如果为 0 则返回 yes/no,因为它迫使我使用视图仅显示活动帐户,而不是这个在 table 开始时动态发生。如果有必要,我想我可以走那条路,但希望你们能帮我指导我这样或那样。
我将尽我最大的努力来说明我目前所拥有的done/tried:
Client Product 1 Product 2 Product 3 Status
AA 50 50 50 Signed
BB 0 0 50 Signed
AA 0 -50 0 Signed
CC 50 0 0 Signed
CC -50 0 0 Signed
BB 0 0 -50 Pending
AA 0 0 50 Signed
AA 0 0 50 Pending
根据上述数据,我的第二个 sheet 会是什么样子。
Client Product 1 Product 2 Product 3 Status
AA 50 0 100 Signed
BB 0 0 50 Signed
此时我只知道A1中的“=unique(client)”动态获取唯一列表,没有荒谬的公式。然后在状态列之后执行 if(sum($b2:$d2)=0,"no",yes")) ,然后用视图进行整理。我唯一的问题是 "Pending" 销售,进入我的table。我试图通过在产品总和列中对其进行排序来解决这个问题。
=if(isblank(A3),,(sumif(client,A2,product1)))
这对我来说非常有用,但它不适合 "Signed" "Pending"
我试过了:
=if(isblank(Properties),,(IF(And(Properties=$A2,status="Signed"),SUM(SEO))))
但我收到错误 "An array value cannot be found."
我真的不知道接下来要采取什么步骤来解决这个问题。
可以使用 QUERY 函数生成这些类型的报告:
=QUERY(QUERY(A:E,"select A, sum(B), sum(C), sum(D), E where E = 'Signed' group by A, E label sum(B) 'Product 1', sum(C) 'Product 2', sum(D) 'Product 3'",1),"select * where Col2 != 0 or Col3 != 0 or Col4 != 0",1)
这里有两个嵌套的QUERY;内部的对每个客户端的值求和,即 "signed",外部的不包括任何没有至少一个非零求和值的客户端。
在新的 GOOGLE 电子表格中,我不得不将逗号更改为分号:
以这种方式为我工作:
=QUERY(QUERY(A:E;"select A, sum(B), sum(C), sum(D), E where E = 'Signed' group by A, E label sum(B) 'Product 1', sum(C) 'Product 2', sum(D) 'Product 3'";1);"select * where Col2 != 0 or Col3 != 0 or Col4 != 0";1)