如果条件发生在列中,则为Excel 2010

时间:2015-07-22 13:12:15

标签: excel if-statement excel-2010

我不确定如何称呼这个标题,但我认为这只是描述它。

我想在Excel 2010中创建一个表,它看起来如下所示:

表1:

没有。 |名称|可用时间|剩余时间|
1 |约翰| 40 | |
2 |皮特| 35 | |
3 |简| 24 | |

表2:

没有。 |客户|需要的时间|谁? |
1 |客户1 | 4 |约翰|
2 |客户2 | 16 |简|
3 |客户3 | 8 |皮特|
4 |客户4 | 9 |约翰|

在表1的“剩余时间”栏中,我希望公式发生。公式必须根据它的行的名称进行检查,如果它出现在表2中,如果它出现,则取“需要的小时数”。然后选择'可用时间'并减去'需要的小时数'并将结果输出到'剩余时间'。

在这个例子中;约翰应该有27个剩余时间,皮特应该有27个剩余时间,简应该有8个剩余时间。

我希望我努力完成的事情很明确,如果有人愿意帮助我,我真的很感激。

3 个答案:

答案 0 :(得分:0)

表2中的额外列(E),填写:=SUMIF($D$2:$D$5,D2,$C$2:$C$5)

表1中的最后一栏,填写:=C2-INDEX('table 2'!E:E,MATCH('table 1'!B2,'table 2'!D:D,0),0,1)

答案 1 :(得分:0)

我想你想使用SUMIFS函数:

http://www.techonthenet.com/excel/formulas/sumifs.php

因此,您的剩余时间列将如下所示:

=SUMIFS([Table2]$C$2:$C$5,[Table2]$D$2:$D$5,"=B2")

答案 2 :(得分:0)

您的问题相当简单,需要3个功能。首先,它需要公式INDEX&组合匹配(这类似于VLOOKUP,如果您熟悉它,但它允许您将'索引列'放在'结果列'的右侧)。从MATCH公式开始 - 它找到表2中与表1中的名称匹配的行[假设表1中的名称在A列中,表2中的名称在Sheet2上的C列中;此公式适用于表1中的第2行:

=Match(A2,sheet2!C:C,0)

然后在INDEX函数中使用它,它在给定的行号为您提供给定列的数据:

=Index(sheet2!B:B,Match(A2,sheet2!C:C,0))

然后,从当前可用小时数中减去,然后将其包装在IFERROR函数中 - 该函数检查是否使用上述INDEX&比赛。如果找到了一个值,它会保留它;如果发现错误,我们告诉它给“”。

=Iferror(B2-Index(sheet2!B:B,Match(A2,sheet2!C:C,0)),"")

就是这样 - 只需向下拖动其余的table1数据。

编辑请注意,有人向我指出,表2中有相同名称的多个结果;因此,其他答案的建议需要SUMIFS。