Excel - 将序列号添加到已排序的地址数据列表中,以非顺序方式对各个名字进行排名

问题描述 投票:0回答:3

下午好,我列出了70,000名字,姓氏和地址。该列表已按地址,城市,州和邮政编排。这意味着居住在同一地址的家庭成员将彼此相邻。我需要在一个空单元格中添加一个数字,只要在同一个家庭地址下有一个重复的姓氏但是唯一的名字 - 意味着Jim Johnson将有一个1而Teresa Johnson将在空单元格中有一个2。但是如果10行下来有另一个姓氏为Johnson的家庭,序列号将从1开始,而不是3。

例如:enter image description here

我尝试过使用:= COUNTIF($ A $ 2:A2,A2),但问题是当使用这个公式时,它会分配与姓氏匹配的下一个序号,这样它就不再关心重复项列在一个地址下了(因此,值将超过1,2,它会将3分配给具有不同地址的“Pina”系列。

我试过= IF(COUNTIF(A $ 2:A2,A2)= 1,MAX(B $ 1:B1)+ 1,VLOOKUP(A2,A $ 1:B1,2,0))但是这个公式做了同样的事情。

是否有一种简单的方法,我错过了在姓氏匹配且第一个名称不匹配时将序号添加到第三列,并且它没有考虑其他未按地址汇总的匹配?

excel array-formulas
3个回答
0
投票

你需要的不仅仅是COUNTIF给你的单一条件:

=COUNTIFS(B$2:B8,B8,C$2:C8,C8)

应该做的工作,但将包括重复计数。

如果您希望重复项不添加到计数中,则需要以下内容:

=COUNTIFS(A$2:A8,"<>"&A8,B$2:B8,B8,C$2:C8,C8)+1

0
投票

我真的不明白你的样本数据和公式中如何使用A列。姓氏似乎是B栏。

=IF(B1<>B2, 1, COUNTIF(B2:INDEX(B:B, AGGREGATE(14, 7, ROW($1:2)/(B$1:B2<>B2), 1)), B2))

enter image description here

该公式实际上可以减少到,

=COUNTIF(B2:INDEX(B:B, AGGREGATE(14, 7, ROW($1:2)/(B$1:B2<>B2), 1)), B2)

包装IF应该总体上减少计算,但其影响取决于数据集中的组数。


-1
投票

Simple IF

在单元格C2

=IF(B1<>B2,1,C1+1))

如果你有空单元格,请添加另一个IF

=IF(B2="","",IF(B1<>B2,1,C1+1))

这将覆盖您的图像。

但是如果下一个地址的下一个家族与前一个家族的姓氏相同呢?然后你必须将地址带入折叠,即添加另一个条件。

假设地址在G列中:

=IF(B2="","",IF(B1<>B2,1,IF(G1<>G2,1,C1+1)))

这将涵盖地址。

但是,如果下一个家庭居住在同一个地址但在另一个城市,并且与前一个家族具有相同的姓氏,该怎么办? ...等

你甚至可以走得更远,但是由你来决定何时停止这种“偏执狂”。

© www.soinside.com 2019 - 2024. All rights reserved.