Excel - 从单个列中获取年份范围

时间:2018-05-31 22:46:38

标签: excel excel-formula

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

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

enter image description here

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

对于所有版本,

=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, , ))

enter image description here

对于具有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读取的实数。