我需要为具有不同日期的多个具有相同名称的单元格创建年份范围。
作为一个例子,我希望所有名为48947_b580541的单元格的年份范围为1946-1950。我需要为大约500k行数据执行此操作。期望的输出如下。
我还没有找到一种方法来获得一个范围,该范围会在源列发生时发生变化。 IE公式将在48947_b580541中创建多年的年份范围,然后一旦达到48947_b580542就重新开始,并为该分组创建一个。
非常感谢任何帮助。
答案 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, , ))
对于具有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读取的实数。