重叠的行政单位 - Excel 关联

重叠的行政单位 - Excel 关联

在 Excel 中,我有一份行政单位列表,需要找出组成行政单位的税务区之间的重叠关系。AI 列中有行政单位,BI 列中有税务区。我正在处理超过 10,000 个税务区。

给定一个行政单位(A 列),我可以轻松返回组成该行政单位的税区列表(B 列)。但是,我还需要确定给定税区属于哪个其他行政单位。例如:在 A 列中选择一个行政单位后,将返回 B 列中的税区列表,如何在 A 列中找到与这些税区相关的其他行政单位?

+-------------------------+--------------+
| Administrative unit     | Tax District |
+-------------------------+--------------+
| Columbiana County       | Butler       |
| Columbiana County       | Center       |
| Columbiana County       | Elkrun       |
| East Liverpool City     | Butler       |
| East Liverpool City     | Center       |
| Salem City              | Elkrun       |
| Crestview Schools       | Butler       |
| Crestview Schools       | Center       |
| United Local Schools    | Elkrun       |
| East Columbiana Library | Butler       |
| East Columbiana Library | Elkrun       |
| West Columbiana Library | Center       |
+-------------------------+--------------+

例如,所有学校都与县重叠,因为 3 个税区也都属于该县。但是,Crestview 学校与 East Liverpool City 重叠,因为与 Butler 和 Center 有关联。Crestview 学校与 Salem City 不重叠,因为 Butler 和 Center 不属于 Salem City。

克雷斯特维尤学校的两个图书馆将有重叠:东哥伦比亚纳(因为巴特勒)和西哥伦比亚纳(因为中心)。

答案1

如果我正确理解了您的目标,您可以使用该LET()函数来实现这一点。假设您的数据存储在范围内A1:B13,并且暂时是硬编码的查找值,可以简单地将其更改为下拉列表所在的单元格。该过程如下:

=LET(
admin_lookup, "Crestview Schools",
data, A2:B13,
tax_filtered, FILTER(INDEX(data,, 2), INDEX(data,, 1) = admin_lookup),
admin_filtered, UNIQUE(FILTER(INDEX(data,, 1), ISNUMBER(MATCH(INDEX(data,, 2), tax_filtered, 0)))),
result, FILTER(admin_filtered, admin_filtered <> admin_lookup),
result
)

首先,您初始化 admin_lookup 值,例如“Crestview School”。然后您初始化数据范围,从那里开始,所有内容都指向这些方面,使其动态化。基于 admin_lookup 值,您首先要过滤相应的 tax_districts,然后将其作为输入来过滤具有此 tax_district 的 admin_units。鉴于 tax_districts 不是单个值而是一个数组,您可以组合ISNUMBER()MATCH()函数以正确过滤整个数组。最后,您还要过滤掉 admin_lookup 值,这样它就只是与其交互的 admin_units 列表,然后返回结果。

对于三个示例,输出如下所示:

哥伦比亚纳县 克雷斯特维尤学校 塞勒姆市
东利物浦市 哥伦比亚纳县 哥伦比亚纳县
塞勒姆市 东利物浦市 联合地方学校
克雷斯特维尤学校 东哥伦比亚纳图书馆 东哥伦比亚纳图书馆
联合地方学校 西哥伦比亚纳图书馆
东哥伦比亚纳图书馆
西哥伦比亚纳图书馆

扩展 1:

如果您希望将其作为逗号分隔的列表返回,则可以TEXTJOIN()按如下方式包含该函数(替换结果的当前过滤语句):

result, TEXTJOIN(", ", TRUE, FILTER(admin_filtered, admin_filtered <> admin_lookup)),

“Crestview Schools” 的结果将如下所示:

Columbiana County, East Liverpool City, East Columbiana Library,
West Columbiana Library

扩展 2:

如果您不仅想返回最终过滤的 admin_units,还想返回中间过滤的 tax_districts,则可以在语句末尾包含该HSTACK()函数组合(以避免“#N/A”值) 。IFERROR()LET()

IFERROR(HSTACK(tax_filtered;result);"")

“Crestview Schools” 的结果将如下所示:

克雷斯特维尤学校
巴特勒 哥伦比亚纳县
中心 东利物浦市
东哥伦比亚纳图书馆
西哥伦比亚纳图书馆

相关内容