【问题标题】:Excel: Return the last entries from a list of entriesExcel:返回条目列表中的最后一个条目
【发布时间】:2015-02-21 04:09:58
【问题描述】:

请原谅我的标题措辞。不知道该怎么说,所以最好只显示。

我有一个看起来像这样的列表

名称    更新日期
====     ===========
第 1 项    2015 年 1 月 1 日
第 2 项    2015 年 1 月 2 日
第 3 项    2015 年 1 月 3 日
第 2 项    2015 年 1 月 4 日
第 3 项    2015 年 1 月 5 日
第 1 项    2015 年 1 月 6 日

这将是一个持续的列表。随着项目的更新,它们将像这样输入。我想创建第二张表,给我每个项目更新的最后日期。所以根据上表得出的结果应该是这样的。

名称    更新日期
====     ===========
第 1 项    2015 年 1 月 6 日
第 2 项    2015 年 1 月 4 日
第 3 项    2015 年 1 月 5 日

我在网络上找到了一些解决方案,当我第一次输入公式时(下面的链接),但是当我在第一个表中添加更多条目时,结果不会更新,否则它们会显示错误的数据。

链接:
http://blog.contextures.com/archives/2014/02/04/find-last-item-in-group-with-index-match/

http://www.get-digital-help.com/2014/02/07/find-last-matching-value-in-an-unsorted-list/

提前感谢您的帮助。

【问题讨论】:

标签: excel excel-formula


【解决方案1】:

您可以简单地省略公式中的数字以获得整列:

=INDEX($C:$C,MAX(($E$3=$B:$B)*MATCH(ROW($B:$B),ROW($B:$B))))

(按照第二个链接中的公式)。

【讨论】:

  • 我试过了。我收到“#N/A”错误:“值不可用错误”
  • 如果您进入“公式”选项卡并转到“评估公式”,哪个函数是第一个显示错误的函数?
  • 我认为是“MATCH”
【解决方案2】:

您可以像手动录制一次宏一样录制宏。然后将该宏分配给一个按钮。然后在需要更新工作表的任何时候单击该按钮。

步骤:

  1. 从包含数据的工作表以外的工作表开始。下面#3中的解释。

  2. 转到查看 > 宏 > 录制宏开始录制宏。现在,在左下角,您会看到一个方形停止按钮,当您想停止录制时。

  3. 选择包含数据的工作表。这样,无论您身在何处,宏都会始终记住选择正确的工作表。

  4. 选择包含您的数据的两列单元格区域,然后继续向下选择几百行,或者至少远远超出您认为数据最终会下降到的位置。

    李>
  5. 复制

  6. 选择要在其中包含汇总数据的工作表。

  7. 粘贴

  8. 同时按名称(升序)和日期(降序)排序(而不是两个操作)。为此,请转到功能区中的“数据”选项卡,然后选择具有两个 A 和两个 Z 并显示“排序”的白色和蓝色排序按钮。

  9. 在此粘贴和排序区域仍处于选中状态的情况下,删除名称列中的重复项。为此,请勿更改选择。转到“数据”选项卡并选择“删除重复项”。

  10. 现在您的项目将出现一次,日期将是最近的日期。

  11. 点击左下角的“停止录制”方形蓝色按钮停止录制宏。

  12. 您可以将此宏分配给按钮或快捷方式。要添加按钮,您需要显示开发人员选项卡,然后使用开发人员选项卡上的选项之一绘制按钮。我不记得如何显示开发人员选项卡。获得按钮后,右键单击并将宏分配给按钮。

13A。如果要自定义宏,请单击 ALT+F11 进入 Visual Basic 编辑器。双击左侧名为“模块”之类的东西之一,您可以编辑宏中的范围,例如,如果您的数据突然比您计划的多 100 行,并且您希望宏覆盖它.使用 CTRL+S 保存。下次运行宏时,它会反映这些更改。

13B。如果您想为其分配快捷键而不是添加按钮,请查看 > 宏来编辑您的宏。

使用电子表格的副本尝试所有这些操作,以免意外删除数据。

它对你有用吗?

【讨论】:

  • 听起来应该可以。从来没想过要走那条路。只是需要一些时间来测试它。
  • 这真的很好用!还有一个快速的问题。我想在日期右侧的单元格中添加“到期”日期。 “项目”列表将随着时间的推移而增长。所以我想我可以在它上传的最后一个日期前 30 天做广告,但我想确保我涵盖了宏中的所有未来添加。问题是,如果我将“到期”公式添加到宏中,它会在所有没有要计算的值的单元格中添加“1/30/1900”。是否可以删除宏中的这些“空白”单元格?使用 1/30/1900 日期进行查找和替换不起作用,因为它是由公式创建的。
  • 在单元格 C2 中尝试如下所示的条件公式:=IF(B2"",B2+30,"")。这表示如果 B2 不等于“”(Excel 将其视为空单元格),则 C2 = B2 + 30。如果不等于,则将单元格设为空白。在宏中,您始终可以手动将其键入单元格,然后向下拖动/复制,宏每次都会这样做。如果您不想再次录制整个内容,请仅录制该部分,然后将新宏(现在可能在模块 2 中)中的这些行粘贴到第一个宏中。在VBA编辑器中按F8可以看到一行一行的执行。
【解决方案3】:

您可以使用数据透视表轻松完成此操作。将项目拖到行区域,将日期拖到值区域。然后将值格式化为日期,并选择返回最大值。

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 2022-01-06
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    相关资源
    最近更新 更多