Excel中行政单元与税务辖区重叠关联关系的查询方法咨询
Excel中行政单元与税务辖区重叠关联关系的查询方法咨询
嗨,我完全get到你的需求了——手里有1万多条行政单元和税务辖区的关联数据,你已经能轻松查到某一个行政单元对应的所有税务辖区,但现在想更进一步:从这些税务辖区出发,找出所有和这个行政单元有重叠关联的其他行政单元对吧?结合你给出的示例数据,我给你整理了几个实用的方法,都能适配大数据量的场景:
方法一:数组公式快速查询(适合临时单次查询)
如果只是偶尔查某一个行政单元的重叠关联,用数组公式最方便。假设你把要查询的行政单元放在单元格D1,直接在E1输入下面的公式就行(注意:Excel 2019及更早版本需要按Ctrl+Shift+Enter确认,365/2021版本直接回车即可):
=TEXTJOIN(", ", TRUE, UNIQUE(FILTER(A:A, COUNTIF(FILTER(B:B, A:A=D1), B:B)>0, "")))
给你拆解下这个公式的逻辑:
- 第一步
FILTER(B:B, A:A=D1):先把D1对应的行政单元下的所有税务辖区提取出来 - 第二步
COUNTIF(..., B:B):遍历A列所有行政单元,只要它的税务辖区和第一步提取的列表有交集,就会返回大于0的结果 - 最后用
UNIQUE去重、TEXTJOIN把结果合并成逗号分隔的文本,看起来更整洁
比如你在D1输入「Crestview Schools」,公式就会返回「Columbiana County, East Liverpool City, East Columbiana Library, West Columbiana Library」,完全匹配你示例里的预期结果。
方法二:Power Query批量生成全量重叠关联(适合大数据量处理)
如果需要一次性生成所有行政单元的重叠关联列表,Power Query绝对是效率首选,毕竟你有1万多条数据:
- 选中你的数据区域(包含表头),点击「数据」选项卡→「从表格/区域」,把数据导入Power Query编辑器
- 先给当前表重命名为「原始数据」,右键表名选择「复制」,生成一个表副本
- 对副本表做以下操作:
- 选中「Tax District」列,点击「转换」选项卡→「分组依据」,分组列选「Tax District」,新列名设为「关联行政单元」,操作选择「所有行」
- 展开「关联行政单元」列,只保留「Administrative unit」列,再点击「转换」→「分组依据」,把每个税务辖区对应的行政单元合并成一个列表
- 回到「原始数据」表,添加自定义列,输入以下Power Query公式:
let 当前税务辖区 = [Tax District], 关联行政单元列表 = 副本表{[Tax District=当前税务辖区]}[关联行政单元], 排除自身 = List.RemoveItems(关联行政单元列表, {[Administrative unit]}) in Text.Combine(List.Distinct(排除自身), ", ") - 最后对「Administrative unit」列做分组操作,把每个行政单元对应的所有重叠关联合并去重,点击「关闭并上载」,就能得到一份完整的重叠关联表了
方法三:高级筛选+辅助列(适合偏好手动操作的用户)
如果你更习惯手动操作流程,也可以用高级筛选来实现:
- 新增辅助列C,在C2输入公式
=A2&"|"&B2,下拉填充到所有行,用来唯一标识每一组行政单元和税务辖区的关联关系 - 找一块空白区域(比如F1:G2)设置筛选条件:
- F1输入「Tax District」,F2输入公式
=COUNTIFS(A:A, D1, B:B, G1)>0(D1是你要查询的行政单元) - G1输入「Administrative unit」,G2输入
<>"&D1&",用来排除行政单元自身
- F1输入「Tax District」,F2输入公式
- 点击「数据」选项卡→「高级」,列表区域选择原始数据的A:B列,条件区域选择刚才设置的F1:G2,勾选「将筛选结果复制到其他位置」,复制到的位置选H1,确定后就能看到所有重叠的行政单元了
备注:内容来源于stack exchange,提问作者AMcKinney
相关产品推荐
相关产品推荐

