求生成独立地点访问编号列的非数组Excel公式方案
地点独立访问次数标记方案
步骤1:新增切换点辅助列
假设你的数据中,日期在A列,地点在B列,新增C列作为辅助列,用来标记地点的访问切换节点:
- 对于第二行(C2),直接输入
1(第一条记录算作第一次访问的起点) - 从第三行(C3)开始,输入公式:
逻辑:如果当前行地点和上一行不同,标记为1(代表新访问开始),否则标记为0(属于同一次连续访问)。=IF(B3<>B2,1,0)
步骤2:生成最终访问标记列
新增D列作为最终标记列,从D2开始输入公式:
=B2&SUMPRODUCT($C$2:C2*(B$2:B2=B2))
逻辑:
SUMPRODUCT($C$2:C2*(B$2:B2=B2)):统计从第二行到当前行中,切换点为1且地点与当前行一致的次数,这个次数就是该地点的第几次独立访问- 将地点文本与访问次数拼接,得到
London1、Bristol2这类标记结果
示例效果
以你提供的日期范围数据为例,最终呈现效果如下:
| 日期 | 地点 | 辅助列C | 最终标记D |
|---|---|---|---|
| 01/01/23 | London | 1 | London1 |
| 02/01/23 | London | 0 | London1 |
| 03/01/23 | Bristol | 1 | Bristol1 |
| 04/01/23 | Bristol | 0 | Bristol1 |
| 05/01/23 | London | 1 | London2 |
| 06/01/23 | London | 0 | London2 |
| 07/01/23 | London | 0 | London2 |
| 08/01/23 | Bristol | 1 | Bristol2 |
补充说明
- 所有公式均为普通公式,无需数组输入(直接按回车即可生效),满足你避免数组公式的需求
- 若不想手动输入C2的
1,可将C2公式改为=IF(ROW()=2,1,IF(B2<>B1,1,0)),实现自动填充
内容的提问来源于stack exchange,提问作者William Nolan
相关产品推荐
相关产品推荐

