【问题标题】:Creating an Index(Match()) for Multiple Criteria, with Multiple Results for Multiple Dates为多个条件创建索引(匹配()),为多个日期创建多个结果
【发布时间】:2019-04-13 05:55:45
【问题描述】:

这个问题的解决方案一直在回避我,并且承认有点伤害我的大脑,所以希望这里有人可以伸出援助之手。基本上,我有大约 10 列数据。其中一列包含我要使用的标识符,另一列包含我要引用的日期,其余列是我要用于填充表的值。我要做的是构建一个工具,您可以在其中输入标识符和日期,它会告诉您该特定配对的其他列是什么。

但是,问题在于数据集包含多个重复的日期(日期在列中),有时还包含重复的标识符。所以标识符 1 可能会在 2018 年 1 月 1 日出现 3 次,然后在 2018 年 1 月 2 日又出现 3 次。

请原谅我的经验不足,因为这可能是不正确的显示方式,但这是我希望我的数据看起来的样子,bin 是给定的第一个、第二个等相同标识符的出现日期:

Identifier - A1
Date - 1/1/2018
Bin Column1 Column2 Column3 Column4
1      1       2       3       4
2      1       2       3       4
3
4
5

标识符和日期将是手动输入,表格的其余部分将自动填充。我整个早上都在寻找使用 index(match()) 的不同方法,但还没有取得任何成功。我不确定我是在错误地处理这个问题还是什么,但是非常感谢您对这个问题的任何帮助。

PS - 我知道数据透视表可能会为我提供我需要的信息,但是,这个表不是我自己使用的,所以我试图让它尽可能简单(输入两行,必要信息弹出)。

编辑 - 这是当前设置数据的方式:

`

【问题讨论】:

  • 抱歉,上面添加了更改。

标签: excel date indexing match pivot-table


【解决方案1】:

一般是这样的:

=INDEX('范围所有数据,而不是表头', MATCH('要匹配的行表头值','行表头范围',0), MATCH('要匹配的列表头','列标题范围',0))

【讨论】:

  • 嗨,库尔特,感谢您的回复。我使用辅助列尝试了此公式,以包含我要查找的特定日期,但是,它仍然只提取为表中每个条目找到的第一个正确匹配项的数据。公式:=INDEX('Data Excluding Labels',MATCH('Helper Value','Helper Range',0),MATCH('Target Column Header', 'Header Range',0))
  • 尝试添加一个辅助列,在其中将 0.000001* 行/列号添加到值中
【解决方案2】:

使用这个:

=IFERROR(INDEX(C:C,AGGREGATE(15,7,ROW($B$2:INDEX($B:$B,MATCH("zzz",$A:$A)))/(($B$2:INDEX($B:$B,MATCH("zzz",$A:$A))=$J$2)*($A$2:INDEX($A:$A,MATCH("zzz",$A:$A))=$J$1)),ROW(1:1))),"")

注意:这是一个数组公式,用回车正常输入,但是作为一个数组公式,如果数据集很大,它会减慢计算速度。

【讨论】:

  • 感谢 Scott,一些测试表明这可能适用于更大的数据集。只是为了澄清,我不需要用 Ctrl + Shift + Enter 输入这个,即使它是一个数组?再次感谢。
  • 没错。 AGGREGATE 是一个自然数组类型公式,因此不需要 Ctrl-Shift-Enter。确保您使用的是我的公式的最新版本,我稍微更改了它。它会随着数据的增长或收缩而自动扩展和收缩数据范围,无需人工干预。
  • 会的。感谢您的帮助。
猜你喜欢
  • 2021-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
  • 2019-12-28
相关资源
最近更新 更多