我不确定如何称呼这个标题,但我认为这只是描述它。
我想在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个剩余时间。
我希望我努力完成的事情很明确,如果有人愿意帮助我,我真的很感激。
答案 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。