按邻里匹配列

按邻里匹配列

我最近发表了一篇文章试图解决类似的问题,但重新定义问题(正如我在这篇文章中所做的那样)仍然可以让我到达我需要的地方,所以如果这是多余的,我深表歉意。

在附图中,我目前正在尝试通过它们共同的街区名称匹配这 3 列。我目前已手动完成一些匹配,以说明我希望获得的效果。前 16 行已手动对齐,以显示我需要完成的任务。其余行反映原始日期。

除了手动完成此过程之外,我不知道如何以这种方式对齐列。

图像

答案1

找到第一季度社区列表所在的列,将其全部复制。转到下一个工作表,将其粘贴到A该列中。然后复制第二季度社区的完整列表,将其复制并粘贴到新工作表的第一列列表下方A。对每个社区列表执行相同操作。

将每个列表复制到A新工作表中的列后,选择该列。转到“数据”选项卡。找到“删除重复项”。点击“确定”。然后按字母顺序对该列进行排序。

现在您有了自己的主列表。

鉴于这是解决比实际问题更小的问题的另一种尝试(请参阅这个问题您于 2 小时前发帖):

我仍然不明白你打算如何求和,因为输入列表仍然不完整。你也没有告诉我们数据来自哪里,所以我怀疑任何答案正确回答这个问题实际上会对你有很大帮助。

我建议你先阅读。然后删除这个问题和前一个问题,并写一个新问题,描述您实际拥有什么以及您实际需要做什么。

答案2

如果我理解正确的话,您已经手动完成了大约前 15 行,剩下的部分用于说明原始数据的样子。下面是使用数据透视表作为辅助工具来提取所有值的唯一列表作为第一步的方法。我将展示大部分数据透视表步骤仅用于说明,但请注意,虽然它看起来像一堆步骤,但它们很简单,只需单击几下鼠标即可。它将带您到达此目的:

在此处输入图片描述

A:C 列包含原始数据。数据透视表位于 E:F 中,可以隐藏,这样您就看不到它了。结果位于 G:I 列中。为了便于说明,我将它们与数据透视表行对齐,但这不是必需的。

数据透视表

在此处输入图片描述

您选择Multiple consolidation ranges并告诉它输出粘贴的位置。单击Select ranges

在此处输入图片描述

选择Create a single page field for me、 和Next

在此处输入图片描述

指定或选择整个数据范围。单击AddFinish

在此处输入图片描述

您返回到第一个屏幕。单击OK

在此处输入图片描述

将 Value 拖到Rows窗口中。右键单击Row并选择Remove field。您可以关闭该对话框窗口。

在此处输入图片描述

您将获得如下所示的表格。进行一些快速清理。

在此处输入图片描述

使用下拉箭头并取消选择Blank。右键单击“总计”和“季度”列(您可能只需要执行“季度 3”),然后删除它们。您只剩下第一张图片中显示的唯一列表。

结果

复制列标题。G4 中的公式:

=IFERROR(INDEX($A$2:$C$6,MATCH($E4,A$2:A$6,0),COLUMN()-6),"")

将其横向和纵向复制以填充结果的所有列和行。这将使用数据透视表的唯一值列表,在每个数据列中查找每个数据透视表值,如果该值在该季度存在,则将其显示在结果行中,否则显示空白。这COLUMN()-6只是将结果列的位置转换为原始数据列(我的结果列位于相应数据列右侧的 6 列)。

这看起来有很多步骤,但从原始数据到结果只需要几分钟。

替代方法

如果您不想使用数据透视表,则可以使用数组公式生成唯一列表。如下面的 K:N 列所示:

在此处输入图片描述

K2中的公式:

{=INDIRECT(TEXT(MIN(IF(($A$2:$C$6<>"")*(COUNTIF($K$1:K1,$A$2:$C$6)=0),ROW($2:$6)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""}

这是一个数组公式,因此请使用Ctrl- Shift-Enter而不是 来确认Enter。输入第一个公式后,您可以直接复制并粘贴以填充其余列。我没有重新发明轮子并从头开始计算公式,而是厚颜无耻地改编了它这里(实际上,该链接也具有基本相同的数据透视表解释,并且由于我使用了不同的应用程序,因此它们的图像可能与 Excel 更匹配)。同样,您可以隐藏 K 列中的列表。

L2 中的公式与前面的结果公式相同,只是针对位置进行了调整:

=IFERROR(INDEX($A$2:$C$6,MATCH($K2,A$2:A$6,0),COLUMN()-11),"")

相关内容