我已经创建了这个表来测试这个公式:
| | A | B | C | D |
| 1 | Object | Yes | Maybe | No |
| 2 | Object 1 | 50 | 25 | 0 |
| 3 | Object 2 | 20 | 10 | 0 |
| 4 | Object 3 | 20 | 10 | 0 |
| 5 | Object 4 | 10 | 5 | 0 |
规则
| | A | B | C | D | E | F | G |
| 1 | Article | Object 1 | Object 2 | Object 3 | Object 4 | Total | |
| 2 | Article 1 | 50 | 20 | 20 | 10 | 100 | |
| 3 | Article 2 | Yes | Yes | Yes | Yes | 100 | |
| 4 | Article 3 | Yes | No | No | Yes | 60 | |
| 5 | Article 4 | No | Yes | Yes | No | 40 | |
| 6 | Test | No | Yes | Yes | No | #VALUE! | |
| 7 | Test2 | Yes | Yes | No | Yes | 50 | |
| 8 | Test3 | Yes | Yes | No | Yes | 70 | * |
* This works partially, but if No is selected the next Yes won't be calculated and breaks
if first Object is not Yes. The example says 70 but should be 80.
工作表
https://docs.google.com/spreadsheets/d/1ydSfa4dpkTdcvwPPqGLRdQ9r-JZstB-hYS7J7tondUs/edit?usp=sharing
我想要实现的是,当Rules!
中列出的值与Sheet!
中的Yes/No
相加时,应该与它相对应。
例如,在Sheet!中,如果我选择Yes, Yes, No, Yes
,那么它的总和应该是50 + 20 + 0 + 10 = 80
。因为第一个Yes
等于50
,然后是20, 20, 10
,任何No
都等于0
。
当涉及到电子表格时,我知道非常基本的公式,到目前为止,我已经尝试了以下公式,这也是我被卡住的地方。
我希望它通过E8
读取B8
,查看列出了多少Yes
,如果列出了任何Yes
,则通过B5
将其与B2
进行比较。
=SUMIF(B8:E8,"Yes",Rules!B2:B5)
我最接近的做法是忽略规则表,并通过重复IF语句将规则直接放入公式中。以这种方式工作,但我仍然更喜欢由规则表来设置规则。
=IF(B10="Yes",50+IF(C10="Yes",20+IF(D10="Yes",20+IF(E10="Yes",10,0))))
我尝试的东西可能非常不正确,但正如我所说的,我不知道如何继续或修复它。
有没有人给我提个建议?
或者如果你需要进一步解释我想要实现的目标,如果有什么不清楚的地方,请让我知道,我会尝试解释。
发布于 2018-09-29 08:11:07
也许你的目标是SUMPRODUCT:
=sumproduct(B$2:E$2,B3:E3="Yes")
在Sheet
的F3中,复制下来以适合,或者可能:
=sumproduct(transpose(Rules!B$2:B$5),B3:E3="Yes")
https://stackoverflow.com/questions/52563540
复制相似问题