如何截取每个日期中最后的一个时间的对应行

匿名
2023-10-15T03:51:42+00:00

如下图,如何将AB列的信息转成DE列的格式。

每一行都有日期和时间,但日期不连续,时间也不连续;第二列是对应时间的价格。

现在想在E列的对应日期中,获取第一列中每个日期的最后一次出现时间的对应价格。并且自动填充中间有间隔的日期:如A列中只有8月6日与8月9日,中间的8月7日与8月8日的价格就自动填充最后出现的日期的价格(即8月6日的价格)。

非常感谢!

Microsoft 365 和 Office | Excel | 家庭版 | Windows

锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。

0 个注释 无注释
问题作者接受的答案
匿名
2023-10-15T10:13:05+00:00

你好 ZHXiao

很高兴可以收到你对于问题的详细澄清。

我了解到,您的意思是如果当天没有数据,那么填入此前最后一个时间对应的数据。比如,在2023/8/7,没有对应的价格,那么此处填入2023/8/6最后对应的价格:168。

图片

.

为了实现该需求,E1公式保持不变,请修改E2的公式,修改完成后,下拉填充以下单元格。

=IFNA(INDEX(B$2:B$10, MATCH(TEXT(D3, "yyyy/MM/dd"), TEXT(A$2:A$10, "yyyy/MM/dd"), 0)+SUM(IF(INT(A$2:A$10)=D3, 1, 0))-1),E2)

图片

.

同样,我们会将该表格通过私人信息与您分享。您可以检验是否满足您的需要。

关于您提到的公式输出结果变成数组的问题,请检查A列D列格式是否都正确。如果该问题依然存在,您可以将您的文件通过私人信息与我分享,我将直接协助您修改表格。

如果有任何进展,请与我分享。

LucyW-MSFT | 微软社区支持专员

此答案是否有帮助?

1 个人认为此答案很有帮助。
0 个注释 无注释
问题作者接受的答案
匿名
2023-10-15T07:35:08+00:00

尊敬的ZHXiao

欢迎来到微软社区。

您的需求是否如下:

1、A列中是包含日期的时间

2、B列中是对应的价格

3、D列中是您要查询的日期

4、E列中是该日期在A列中时间最新的价格

在此之前我想与您确定,您的日期与时间是否可以按照顺序排布?如果在A列中,您的日期与时间和您图中展示的一样,是按照顺序排布的,请参考以下内容。

请在E2单元格中应用以下公式,然后下拉填充该公式。

=INDEX(B:B, MATCH(TEXT(D2, "yyyy/MM/dd"), TEXT(A:A, "yyyy/MM/dd"), 0)+SUM(IF(INT(A:A)=D2, 1, 0))-1)

.

我将会将该excel文件通过私人信息与你分享,你可以直接在我分享的文件中验证是否可以正常应用。

.

如果有任何进展,请与我分享。

LucyW-MSFT | 微软社区支持专员

此答案是否有帮助?

1 个人认为此答案很有帮助。
0 个注释 无注释

3 个其他答案

排序依据: 非常有帮助
  1. 匿名
    2023-10-15T14:20:29+00:00

    你好 ZHXiao

    很高兴了解到你的excel文档已经可以按照你预想的结果运行了。

    你可以标记上面对你有帮助的回复,这可以帮助更多有相似问题的用户找到该线程。

    .

    您还提到您的疑问:为什么在我的首次回复中,公式引用的值为整列如A:A,但是在您表格中,该公式报错。您将公式引用的值更改为A1:A13,该公式才可以正常运行

    这是由于我制作的表格中,没有标题行(时间、价格),而您制作的表格有标题行。

    MATCH(TEXT(D2, "yyyy/MM/dd"), TEXT(A:A, "yyyy/MM/dd"))该公式在处理非日期格式的信息时会出现问题,无法输出正确的结果。由于A1为“时间”不是日期,所以出现了问题。

    LucyW-MSFT | 微软社区支持专员

    此答案是否有帮助?

    0 个注释 无注释
  2. 匿名
    2023-10-15T10:41:51+00:00

    非常感谢你的回答!我的excel已经可以成功运行出来我想要的结果了!

    另外还有一个小问题,就是我在下午的回复时提到的,只能选中指定的单元格来运行公式,而如果选择一整列单元格去运行公式的话,公式会报错,这是为什么呢?以下是我的回复原文:

    ”在你提供的表格中,你用的公式 INDEX(B:B, MATCH(TEXT(D2, "yyyy/MM/dd"), TEXT(A:A, "yyyy/MM/dd"), 0)+SUM(IF(INT(A:A)=D2, 1, 0))-1),我加粗下划线的那三个地方,在我的表格上要改为B$1:B$13 与 A$1:A$13,然后按ctrl+shift+enter才能成功运行,如果直接用你的公式(即直接引用一整列)则会出现#value的错误。“

    此答案是否有帮助?

    0 个注释 无注释
  3. 匿名
    2023-10-15T09:07:23+00:00

    你前面问我的四点需求,其中的第3点与我想像中的有一点区别,我下面稍微说明一下。我的表格的第1列与第3列都是按照时间顺序排列的,但这两列的区别是第1列的日期不一定是连续的,而第3列的日期是连续的。

    我刚才下载了你的表格并尝试了你的公式,现在可以成功在我前面截图的表格上运行了。但是还是有一点小问题。

    在你提供的表格中,你用的公式 INDEX(B:B, MATCH(TEXT(D2, "yyyy/MM/dd"), TEXT(A:A, "yyyy/MM/dd"), 0)+SUM(IF(INT(A:A)=D2, 1, 0))-1),我加粗下划线的那三个地方,在我的表格上要改为B$1:B$13 与 A$1:A$13,然后按ctrl+shift+enter才能成功运行,如果直接用你的公式(即直接引用一整列)则会出现#value的错误。

    我想不明白这其中的原因,希望可以得到你的回覆。

    此答案是否有帮助?

    0 个注释 无注释