使用其他列的数据作为过滤条件,从电子表格中的范围内获取第一个值和最后一个值

使用其他列的数据作为过滤条件,从电子表格中的范围内获取第一个值和最后一个值

我的工作表中的电子表格中有如下数据:

1

这种格式的数据存放在哪里

[ID] | [日期] | [小时] |

我还有另一张工作表,我希望其中的数据如下:

2

我希望显示的数据如下:

[日期范围的第一个 ID + “ - “ + 日期范围的最后一个 ID] | [日期范围的第一个 ID + “ - “ + 日期范围的最后一个 ID] | [日期]

我如何使用公式或 VBA 宏来实现这一点?

答案1

如果您不介意使用数据透视表......

我会将数据透视表运行到数据上,将其Date作为行标签,并将两个 IDID放在值中。第一个 ID 将按最小值汇总,第二个 ID 将按最大值汇总。

在此处输入图片描述

然后,您可以将所需信息复制/粘贴(粘贴值并设置日期格式)到新工作表中,然后将日期列移到右侧。在最大 ID 和日期之间插入两列,然后进行简单的连接:

=CONCATENATE(A2," - ",B2)

(我忘记了下面截图中的空格)

在此处输入图片描述

此公式同样适用:=A2&" - "&B2

您只需重命名列标题,然后通过复制/粘贴值删除单元格中的公式后,即可删除 A 列和 B 列。

答案2

如果你想要第一个和最后一个 ID,请尝试

=INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,0))&" - "&INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,1))

当前工作表上的 C1 包含日期。

如果 ID 不是按升序排列的,而你想要获取日期的最小 ID 和最大 ID,请尝试

=MIN(INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,0)):INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,1)))&" - "&MAX(INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,0)):INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,1)))

相关内容