Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 为多个条件创建索引(Match()),并为多个日期创建多个结果_Excel_Date_Indexing_Match_Pivot Table - Fatal编程技术网

Excel 为多个条件创建索引(Match()),并为多个日期创建多个结果

Excel 为多个条件创建索引(Match()),并为多个日期创建多个结果,excel,date,indexing,match,pivot-table,Excel,Date,Indexing,Match,Pivot Table,这个问题的解决方案一直在回避我,并且承认有点伤了我的大脑,所以希望这里有人能伸出援手。基本上,我有大约10列数据。其中一列包含我要使用的标识符,另一列包含我要引用的日期,其余列是我要用于填充表的值。我要做的是构建一个工具,在其中键入标识符和日期,它会告诉您该特定配对的其他列是什么 然而,问题是数据集包含多个重复的日期(日期在一列中),有时还包含重复的标识符。因此,标识符1可能在2018年1月1日出现三次,然后在2018年1月2日再出现三次 请原谅我的经验不足,因为这可能是表示这一点的不正确方式,

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

然而,问题是数据集包含多个重复的日期(日期在一列中),有时还包含重复的标识符。因此,标识符1可能在2018年1月1日出现三次,然后在2018年1月2日再出现三次

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

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-我知道pivot表可能会提供我所需的信息,但是,这个表不是我自己使用的,所以我尝试让它尽可能简单(输入两行,弹出必要的信息)

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


`它通常看起来像:


=INDEX('range all the data,not the headers',MATCH('row header value to MATCH','row headers range',0),MATCH('column header to MATCH','the column headers range',0))

它通常看起来像:

=INDEX('range all the data,not the headers',MATCH('row header value to MATCH','row headers range',0),MATCH('column header to MATCH','column headers range',0))

使用以下方法:

=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))),"")

注意:请注意,这是一个通常使用Enter输入的数组公式,但作为数组公式,如果数据集较大,则会减慢计算速度。

使用以下方法:

=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))),"")


注意:请注意,这是一个通常使用Enter输入的数组公式,但作为一个数组公式,如果数据集较大,则会减慢计算速度。

很抱歉,上面添加了更改。很抱歉,上面添加了更改。嗨,Kurt,感谢您的回复。我用一个helper列尝试了这个公式,以便包含我要查找的特定日期,但是,它仍然只提取它为表中每个条目找到的第一个正确匹配项的数据。公式:
=INDEX('Data exclused Labels',MATCH('Helper Value','Helper Range',0),MATCH('Target Column Header','Header Range',0))
尝试添加一个Helper列,将0.000001*行/列编号添加到值hi Kurt,感谢您的响应。我用一个helper列尝试了这个公式,以便包含我要查找的特定日期,但是,它仍然只提取它为表中每个条目找到的第一个正确匹配项的数据。公式:
=INDEX('Data exclused Labels',MATCH('Helper Value','Helper Range',0),MATCH('Target Column Header','Header Range',0))
尝试添加一个Helper列,将0.000001*行/列编号添加到值中。感谢Scott,一些测试表明,这可能适用于较大的数据集。只是想澄清一下,我不需要用Ctrl+Shift+enter输入这个,即使它是一个数组?再次感谢,没错。聚合是自然数组类型的公式,因此不需要Ctrl-Shift-Enter键。确保您使用的是最新版本的我的公式,我对其进行了轻微更改。当数据增长或收缩时,它将自动扩展和收缩数据范围,而无需手动干预。谢谢你的帮助。谢谢Scott,一点测试表明这可能适用于更大的数据集。只是想澄清一下,我不需要用Ctrl+Shift+enter输入这个,即使它是一个数组?再次感谢,没错。聚合是自然数组类型的公式,因此不需要Ctrl-Shift-Enter键。确保您使用的是最新版本的我的公式,我对其进行了轻微更改。当数据增长或收缩时,它将自动扩展和收缩数据范围,而无需手动干预。谢谢你的帮助。