过滤子串的列并返回相邻单元格的最大值 - Excel 2013(无宏)

时间:2017-05-22 20:15:07

标签: excel excel-formula

我想获得每天的最长通话时间,当天所有通话的平均时间以及超过20秒的任何通话。

由于工作中的安全策略我仅限于excel提供的公式,我不能使用宏或VB(否则我会写一些合适的东西)。我对excel没有多少经验,所以如果这是一个简单的道歉我很抱歉。我试图找到搜索并返回一个我可以轻松操作的子阵列的方法,但似乎唯一的方法是使用宏。目前我认为我可以使用VLOOKUP,但我不太了解它是否可以将其用于其他功能。

基本上,如果我可以使用的公式或公式组合允许我从列B中收集在A列中共享相同值的所有数据,我可以将其嵌套在我需要计算的公式中数据。

感谢任何帮助!

Sample data

1 个答案:

答案 0 :(得分:2)

只需点击几下,即可通过数据透视表完成此操作。

首先,将源数据转换为Excel表格对象,方法是选择表格中的一个单元格,然后使用插入>表 Ctrl-T 。在20秒内为调用添加辅助列。让列成为"长时间调用"和公式

=IF([@Duration]>TIME(0,0,20),1,0)

然后,选择Excel表格的单元格,单击插入>数据透视表。 (数据透视表现在链接到Excel表对象,当添加更多数据时,您可以刷新数据透视表,而无需更改源数据的定义。)

Day 字段拖到行区域,将 Duration 字段拖到Values区域。右键单击数据透视表中的任何值结果,然后在值字段设置对话框中选择最大值。然后点击数字格式按钮并设置 hh:mm:ss 的自定义数字格式。确认所有对话框。

如果要格式化日期,请右键单击数据透视表中的任何可见日期,选择字段设置,单击数字格式,然后设置自定义格式的 DDD

再次将持续时间字段拖到值区域,并将其计算方法设置为“平均值”。

拖动"长电话"字段进入值区域。

通过数据透视表工具设计功能区命令隐藏Grand Totals。

现在,您可以在A到B列的表格中添加更多数据,右键单击数据透视表并选择刷新。

enter image description here