Excel 索引匹配查询

Excel 索引匹配查询

我有右下方的表格,其中包含日期以及用日期标记的信息。我想显示/列出所有带有相应日期的标记信息,而不使用数据透视表,因为我计划从另一张主列表表中提取信息。我应该使用哪种公式。

在此处输入图片描述

答案1

我最初误读了你的问题 - 你有右边的数据,你想把它转换成左边的数据?我不是专业人士,但我的做法是如图所示这里(我的声誉不足以在线发布图片)。

本质上,我在左侧创建了几个辅助索引,第一个跟踪当前行的位置,如果有数据可用,则该索引会增加,否则会重置为零:

=IFERROR(IF(INDEX(data,A3+1,B3)<>"",A3+1,1),1)

IFERROR 只是因为我有一个命名数组(数据),它有限制,而我不想检查是否已达到该限制。A3 是对当前单元格正上方的先前使用的行的引用,而 B3 是对先前使用的列(右上方)的引用。

列索引公式仅取当前行,如果为 1,则表示我们已经开始了一个新列,因此取先前使用的列并加 1,否则我们坚持使用同一列。

=IF(A4=1,B3+1,B3)

日期列仅获取当前列索引并使用“索引”获取它

=IFERROR(INDEX(dates,1,B4),"")

值列仅获取行和列索引并从表中弹出值:

=IFERROR(INDEX(data,A4,B4),"")

行/列的初始索引设置为 1,其余部分自动生成。希望这能有所帮助!

答案2

这可以通过 Power Query 完成。

选择范围内的单元格,然后单击“数据功能区”>“从表格”(或者,对于 2016 之前的 Excel 版本,请安装 Power Query 加载项,然后单击“Power Query 功能区”>“从表格”)。然后

  • 勾选“我的表格有标题”复选框,然后单击“确定”。
  • 当数据在 Power Query 编辑器中打开时,单击“添加列”>“索引”。
  • 选择新创建的索引列,然后单击“转换”>“取消透视其他列”

现在,数据已标准化,您可以添加命令来排序、重命名列,最后删除不再需要的索引列。然后保存查询以将数据加载到电子表格中。当原始数据发生变化时,您可以刷新查询以更新标准化列表。

在此处输入图片描述

相关内容