我的工作表中的电子表格中有如下数据:
这种格式的数据存放在哪里
[ID] | [日期] | [小时] |
我还有另一张工作表,我希望其中的数据如下:
我希望显示的数据如下:
[日期范围的第一个 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)))