excel查找一段时间内的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel查找一段时间内的数据相关的知识,希望对你有一定的参考价值。
参考技术A 您好,方法如图,原始数据是2016年年度内的数据。
首先需要以这些数据为基础插入数据透视表,选择功能 插入-数据透视表。
弹出创建数据透视表的对话框,如图,选择需要分析的数据;
接着选择数据透视表放置的位置,在这里我是放在原始数据的工作表中,大家根据自己情况来选择新工作表或现有工作表即可。
设置好后点击确定按钮。
在工作表最右边会出现 数据透视表字段 的对话框,将字段日期拖拉至行区域,将金额拖拉至值区域。
拖拉好后,看下值区域那个字段的计算类型是否是自己需要的,在这里是求和。
如果是需要计数的话,点击“求和项:金额”后面那个三角按钮,在出来的菜单里选择 值字段设置,在弹出来的 值字段设置 对话框中进行相应的设置。
选中数据透视表区域任一单元格,选择功能选项 插入-日程表,或者 数据透视表工具-分析-插入日程表。
弹出 插入日程表 对话框,勾选上日期,点击确定按钮。
接着会弹出 日期 的筛选器。
如图,直接点击需要查看的月份,左边的数据透视表就会跟着筛选出相应月份所有的数据。
如果需要选择多个月份,则按住shift键再选择需要月份即可。
如果想查看整个季度或整年的所有数据,如图,点击在筛选器窗口右边红色圆框位置的三角按钮,在出来的选项中选择 季度或年或日即可。
如果想清除所有选择,则点击窗口右上角那个清除筛选器按钮即可。
Excel:查找特定时间范围内的值
【中文标题】Excel:查找特定时间范围内的值【英文标题】:Excel: Lookup the value that is within a certain time range 【发布时间】:2017-06-19 13:01:47 【问题描述】:假设我有两张电子表格,一张包含住在我物业中的租户,另一张包含租户离开后在物业中进行的维修。这是他们的样子。 租约:
Property ID | Tenant ID | Start of Tenancy | End of Tenancy | Start of next tenancy
1 | 1 | 01/01/2001 | 30/01/2001 | 15/02/2001
1 | 2 | 15/02/2001 | 28/02/2001 | 15/03/2001
1 | 3 | 15/03/2001 | 30/03/2001 | 15/04/2001
2 | 4 | 15/01/2001 | 30/01/2001 | 31/01/2001
2 | 4 | 31/01/2001 | 30/04/2001 | 05/05/2001
2 | 5 | 05/05/2001 | 05/06/2001 | 20/06/2001
3 | 6 | 03/05/2001 | 15/08/2001 | 30/08/2001
3 | 7 | 30/08/2001 | 15/10/2001 | 15/11/2001
4 | 1 | 31/01/2001 | 30/04/2001 | 15/05/2001
4 | 8 | 15/05/2001 | 30/08/2001 | 30/09/2001
维修:
Property ID | Repair Issued Date |
1 | 08/03/2001 |
1 | 10/04/2001 |
2 | 03/05/2001 |
2 | 15/06/2001 |
3 | 18/08/2001 |
4 | 10/05/2001 |
4 | 15/09/2001 |
我需要在维修完成之前找出谁是租户。因此,我需要匹配“物业 ID”,如果“维修签发日期”在“租赁结束”和“下一个租赁开始”之间的范围内,则分配“租户 ID”。简单的例子,属性“1”的第一次维修是在 2001 年 8 月 3 日,位于租户“2”的无效范围之间,因此将租户 ID 分配到下一列。
通常,如果每处房产只有一个租户,我可以进行简单的查找,但这会使我的情况复杂化。
我尝试使用 vlookup 和日期函数,但不知道怎么做。
感谢您的帮助
【问题讨论】:
【参考方案1】:您可以使用 SUMIFS 函数执行此操作。将所有匹配的租户 ID 相加(只要只有一个)将得出租户 ID:
=SUMIFS(B:B,A:A,G2,D:D,"<" & H4,E:E,">" & H2)
正如@Tom Sharpe 所建议的,您可以测试多个匹配项并“错误”输出:
=IF(COUNTIFS(A:A,G2,C:C,"<" & H2,E:E,">" & H2)>1,"#MULTIPLE FOUND",SUMIFS(B:B,A:A,G2,C:C,"<" & H2,E:E,">" & H2))
【讨论】:
我不认为这是一个坏主意。也许您可以使用 COUNTIFS 来检查是否只有一个? 感谢@TomSharpe,我已经更改了答案以利用这个想法。【参考方案2】:您似乎正在寻找具有多个匹配行号条件的 INDEX。通过在丢弃错误的同时强制所有不匹配的内容进入错误状态,可以使用 AGGREGATE 返回行号。
=INDEX(B:B, AGGREGATE(15, 6, ROW($1:$11)/((A$1:A$11=G2)*(D$1:D$11<=H2)*(E$1:E$11>=H2)), 1))
【讨论】:
这是完美的,公式完全符合我的需要。不过有两个问题。首先,由于我有相当大的数据集(126000 行和 20000 行),因此无法扩大规模。其次,在某些情况下,我会得到 #NUM!错误,即使引用是正确的。 如果我正在处理 126K 行,我会转移到 VBA 并完全在二维变量数组中工作,然后将值返回到工作表 en masse。使用本机工作表公式,没有什么不会导致明显的计算滞后。#REF!
错误来自找不到匹配项,可以使用 IFERROR 包装器来避免。我无法进一步评论#REF!错误,因为我没有重现该问题的数据。以上是关于excel查找一段时间内的数据的主要内容,如果未能解决你的问题,请参考以下文章