我需要匹配的两个没有唯一值的表,并根据日期范围和邮政编码字段返回值字段、返回值、邮政编码、根据

由网友(冷清一笑倾所爱)分享简介:我有两组数据;第一组(Wind Claims)包含StartDate、EndDate和Zip Code字段。第二个(PLRB Wind)包含日期、邮政编码和风速字段。我的目标是,如果PLRB Wind选项卡中的日期介于Wind Claims选项卡上的StartDate和EndDate之间,并且PLRB Wind选项...

我有两组数据;第一组(Wind Claims)包含StartDate、EndDate和Zip Code字段。第二个(PLRB Wind)包含日期、邮政编码和风速字段。

我的目标是,如果PLRB Wind选项卡中的日期介于Wind Claims选项卡上的StartDate和EndDate之间,并且PLRB Wind选项卡中的邮政编码与Wind Claims选项卡上的邮政编码匹配,则将风速从PLRB Wind选项卡获取到Wind Claims选项卡。重点是确定报告损坏的风速。

我尝试了几个公式;这一个我实际上得到了结果,但16822个公式中只有1227个。我不会期望有100%的匹配,但肯定比我得到的要多得多。我认为原因是因为此公式查找的是特定日期,而不是日期范围:

=XLOOKUP(Z2&N2,'PLRB Wind'!$I$2:$I$78525&'PLRB Wind'!$D$2:$D$78525,'PLRB Wind'!$M$2:$M$78525,"")
如何将Excel多个表格数据进行合并统计分析

我还尝试了索引匹配(这只是公式的匹配部分)

=MATCH(1,IF('PLRB Wind'!D2>=$B$2:$B$16823,IF('PLRB Wind'!D2<='Wind Claims'!$C$2:$C$16823,IF('PLRB Wind'!I2='Wind Claims'!$Z$2:$Z$16823,1))),0)

提前感谢您看这篇文章。感谢您能提供的任何帮助!

推荐答案

我会为此使用POWER查询。你知道什么是强大的查询吗?当我发现这一点时,我很不高兴,因为我以前本可以使用它的所有有用的方式。

不过,你可能会有不同的感受。为此创建工作簿的新副本,以防您讨厌它。:-)

在Excel的数据功能区的获取转换部分,有一个来自表格的按钮(&A)。突出显示您的PLRB表(包括列标题),然后单击从表中创建新查询按钮。它将创建表和查询。

将弹出一个POWER查询编辑器窗口,将您的查询显示为两个步骤,列在右侧边栏的中间。第一步是从您的工作表中获取信息。第二步更改数据类型。单击每个日期列标题左侧的图标,将类型从DateTime更改为Date,因为原因不是这样。在右侧边栏上,将查询名称更改为PLRB

现在,单击主页功能区上的关闭&;加载(&p>)。它将创建一个包含您的表结果的新选项卡。先别管它了。您可以稍后删除该选项卡,但它不会删除查询。

因此,回到您的工作表,突出显示WIND Claims表的前三列的列标题行和数据行。从表创建另一个查询。称之为WindClaimsInput。再次将DateTime列更正为Date Columns

好的,现在您有两个查询。它们都是从您的工作簿读取的,但它们可能来自另一个文件或文本文件等。如果您喜欢此解决方案,则您的最终表单可能是一个工作表,其中实际上没有任何源数据,只是从其他地方获取原始数据的查询,以及显示我们即将进行的第三个查询的选项卡。

现在是有趣的部分。

仍在POWER查询编辑器中编辑WindClaimsInput查询时,在&Home";功能区的左侧边缘附近有一个名为&Manage...";的按钮。单击它,然后单击引用以创建从旧查询开始的第三个查询。请记住,查询只是指令。在运行查询之前,我们不会复制数据。

现在,找到添加列的按钮。它应该会打开一个询问列名和公式的对话框。将其命名为";plrb";并使用以下公式:Table.SelectRows(PLRB, (r) => (r[Date] >= [CATFromDt] and r[Date] <= [CATThruDt] and r[ZipCode] = [ClaimZip]))Table.SelectRow是一个带有两个参数的幂查询函数:

表(或返回表的查询),和 对表的每条记录(也称为行)运行并返回TRUE/FALSE的函数。在本例中,我们创建了一个接受一个参数(R)并返回TRUE或FALSE的函数。 因此,上面的公式表示&为给定的ClaimZip邮政编码在PLRB中给出一个包含所有行的表,该表的日期也在CATFromDt和CATThruDt之间。&因为它是一个列公式,所以它在中每行运行一次。Wind索赔。

现在您有了一个表,其中最后一列是另一个表!具体地说,PLRB中与该Wind索赔行相关的行。您可以单击最后一列中的任何单元格来查看子表。

在最后一列标题的右侧将显示一个小的展开图标。点击它,选择按最大风速聚合。(风速选项的右侧允许您将其更改为最大值、平均值或您喜欢的任何值。)取消单击使用原始列名作为前缀(&Q)。点击OK(确定)。别担心,您可以删除此新步骤,如果我没有很好地描述它,请重试。

点击关闭并加载以在工作簿中查看(&P>关闭)。如果看起来是对的,那就太好了!否则,请随时返回并编辑更多内容。

现在您完成了!与公式不同,它不会自动刷新,但当您要根据输入表刷新输出时,您可以刷新该查询,或者在数据功能区中,您可以单击";全部刷新(&p>)。

在Excel的数据功能区的&Get&;Transform";部分,有一个&Show Queries";按钮,用于切换显示您所做查询的侧边栏。您可能只想继续加载第三个查询,因此可以将其他两个查询的加载更改为...仅连接。

抱歉,我现在无法进行屏幕截图。

阅读全文

相关推荐

最新文章