提取数据问题

提取数据问题

我经常收到租金单,其中的各项费用都以行的形式列出,我需要将它们转换为列,但间距不一致。我尝试填写单位编号,以便每项费用在 a 列中都有适用的单位编号,然后使用索引匹配,但不起作用。下面是一个例子,虽然文件可以有数百个单位,所以我正在寻找一个可以根据单位编号提取适用费用的公式。我认为这很简单,但找不到答案。

在此处输入图片描述

答案1

随意假设

请参阅末尾的表格,了解公式中的参考单元格/范围。

首先,将“您获得的数据”转换为“我将使用的数据”。为此,只需在原始数据旁边留出一些空白空间,或者使用另一张表(如果您愿意)。使用以下公式获取相应单元格中的信息,或者如果单元格为空,则使用上面单元格中的信息。(假设第一个单元格不为空)

=IF(A3="",H2,A3)

我将其放在单元格 H3 中,并按要求向下和向右复制。不用担心有空白行时会出现重复行。这些信息最终会被忽略。

我将 H3:L13 的范围称为“我将使用的数据”,其中第 3 行是标题行。请注意,您需要在标题行上方添加一行来获取 H2 引用。否则您将不得不调整公式以适应第一行例外。

现在让我们看看您需要什么。我首先假设您将手动输入所有标题。要获取列表中实际内容的完整列表,您可以使用内置的删除重复项按钮和数据功能区。

在此处输入图片描述

然后将结果转置为一行并重新排列条目以适合您的喜好(即,将 Total 放在末尾并以 Rent 开头,这不是按字母顺序排序)。或者,您可以使用获取单元号的公式来执行此操作,我将展示该公式作为删除重复项按钮的选项。您需要复制、粘贴值、复制、粘贴转置,然后像上面一样重新排列,因此我建议采用更手动的方法进行设置。但是一旦设置完成,您就不需要再重复该过程了。

因此,一旦您按需要布局了标题行,请使用以下数组公式生成一个唯一的单位编号列表。此方法不会为您排序单位编号。(或者查看上面提到的删除重复项按钮)。我在 O4 中放置了以下公式并复制到 O13:

=IFERROR(INDEX(H:H,MATCH(1,1/((COUNTIF($O$3:O3, $H$4:$H$20)=0)*($H$4:$H$20<>"")),-1)+3),"")

请注意,这是一个数组公式(也称为 CSE 公式)。为了正确输入,当您确认公式时,请按CONTROL+ SHIFT+ENTER而不是直接ENTER按 。当您在公式栏中看到公式周围的 { } 时,您就会知道您做对了。请注意,不能手动输入公式周围的 { }。

复制单元格 O4 并粘贴到 O5:O13 或任何适合您的范围。只是不要在粘贴中包含 O4,否则您可能会收到有关不允许编辑数组部分的错误消息。

为了获得居民和市场租金(P 列和 Q 列),可以使用一种简单的查找方法。我使用包含在 IFERROR 公式中的 INDEX/MATCH 组合,以便在未找到信息时提供空单元格。我将以下公式放在 P4 中,然后向下复制,然后向右复制。

=IFERROR(INDEX(I:I,MATCH($O4,$H:$H,0)),"")

现在要提取下一组数据(R 列至 V 列),我找到了单位编号匹配且列标题匹配时的相应行号。我在 R4 中使用了以下公式,并根据需要将其向下和向右复制。

=IFERROR(INDEX($L:$L,AGGREGATE(14,6,ROW($H$4:$H$13)/(($H$4:$H$13=$O4)*($K$4:$K$13=R$3)),1)),"")

请注意,AGGREGATE 在其括号内执行类似数组的操作。因此,不要使用完整的列/行引用,如 H:H 或 3:3,否则可能会进行大量多余的计算,从而导致计算机运行缓慢。对于单个单元格计算来说还不算太糟,但当公式被多次复制时,情况就会变得很糟糕。

波克

笔记:

  • 不允许有不同住户姓名的重复单元号。仅会列出第一个单元名称组合
  • 单元格 O7 中的“103”是手动输入,用于演示手动输入单位编号的选项,并演示不在列表中的单位的空白行结果。类似于 U 列并手动输入不在列表中的 Cable。
  • 第五列“总计”实际上是使用聚合进行的查找。最好将其更改为公式SUM

相关内容