【问题标题】:Excel - Getting a year range from a single columnExcel - 从单列中获取年份范围
【发布时间】:2020-03-01 12:36:33
【问题描述】:

我需要为具有不同日期的多个同名单元格创建一个年份范围。

例如,我希望所有名为 48947_b580541 的单元格的年份范围为 1946-1950。我需要对大约 500k 行数据执行此操作。下面是所需的输出。

我无法找到一种方法来获取在源列发生时会发生变化的范围。即,该公式将在 48947_b580541 中创建一个年份范围,然后在达到 48947_b580542 时重新开始并为该分组创建一个。

非常感谢任何帮助。

【问题讨论】:

  • 你有 minifs 和 maxifs (xl2016) 吗?
  • 是的,我使用的是 2016 版。

标签: excel excel-formula


【解决方案1】:

对于所有版本,

=MIN(INDEX(--(B$2:INDEX(B:B, MATCH("zzz", A:A)))+(A$2:INDEX(A:A, MATCH("zzz", A:A))<>A2)*1E+99, , ))&"-"&
 MAX(INDEX(--(B$2:INDEX(B:B, MATCH("zzz", A:A)))-(A$2:INDEX(A:A, MATCH("zzz", A:A))<>A2)*1E+99, , ))

对于带有 MINIFS/MAXIFS 功能的较新版本的 excel,您可以简单地使用,

=minifs(b:b, a:a, a2)&"-"&maxifs(b:b, a:a, a2)

但是,我怀疑 B 列中的年份数字实际上是看起来像数字的文本;可能来自left(c2, 4)。如果是这种情况,请在 B 列中的公式中添加一个双一元,例如,

=--left(c2, 4)

这会将所有结果转换为可以被 minifs/maxifs 读取的实数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2014-12-02
    • 1970-01-01
    • 2013-07-10
    相关资源
    最近更新 更多