Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Php Excel-获取列的前5个数据及其匹配的标题,但生成重复项_Php_Excel_Codeigniter_Phpspreadsheet - Fatal编程技术网

Php Excel-获取列的前5个数据及其匹配的标题,但生成重复项

Php Excel-获取列的前5个数据及其匹配的标题,但生成重复项,php,excel,codeigniter,phpspreadsheet,Php,Excel,Codeigniter,Phpspreadsheet,我正在开发一个使用PHP(以H CodeIgniter为框架)制作的web应用程序,它应该生成一个excel文件报告作为数据摘要 我使用PHPSpreadsheet作为库来生成.xlsx文件,一切都很成功 我能够在特定的单元格范围内显示某列的前5个值,即文章数最多的前5个出版物 通过使用代码=LARGE(数据范围的列,数值)——我能够得到我想要的前5个 然后,在这些前5名数据的左侧,我需要显示匹配的出版物名称/出版物。我可以使用函数=INDEX(PublicationNamesCellR

我正在开发一个使用PHP(以H CodeIgniter为框架)制作的web应用程序,它应该生成一个excel文件报告作为数据摘要

我使用PHPSpreadsheet作为库来生成.xlsx文件,一切都很成功


我能够在特定的单元格范围内显示某列的前5个值,即文章数最多的前5个出版物

通过使用代码
=LARGE(数据范围的列,数值)
——我能够得到我想要的前5个


然后,在这些前5名数据的左侧,我需要显示匹配的出版物名称/出版物。我可以使用函数
=INDEX(PublicationNamesCellRange,MATCH(CellfthematchingData,ColumnOfDataCellRange,0))



现在,请注意,在前5个数据列(右)中有多个文章计数54,它们应该属于两种不同的出版物。问题是,我应该使用什么代码或技术来生成唯一的出版物名称,这样它就不会重复出版物名称E,因为在原始excel文件中,出版物名称E是第一个具有54匹配数据的出版物名称?

这就是我最终使用的,根据您的情况进行编辑


这里有几个帖子展示了解决方案——我利用了它们,所以请搜索一下。即使找不到,也可以查看large()和aggregate(),但aggregate()取决于excel版本。您好,先生@SolarMike,祝您愉快!在发布这篇文章之前,我确保没有可用的解决方案,因为我在过去3天一直在寻找解决方案。如果有,请给我链接好吗?或者将这篇文章标记为重复?至于您关于
aggregate()
函数的提示,我们正在寻找,非常感谢您的想法!我很惊讶你没有找到相关的帖子,因为我已经清楚地说明了我是如何找到我的解决方案的……为什么不使用透视表呢?你好@MichalRosa早安!做一个轴表的那两个我在那里看他们?你好,先生!非常感谢您,仍然在测试,我可以知道您的示例中
行($1:$30)
代码的目的是什么吗?我已经测试了更多的东西,仍然与
行($1:$30)
的目的混淆,应该是静态的吗,先生?hellosir@SolarMike一些单元格正在生成错误消息
\NUM那么你必须有一个范围或参数不正确,这对我的真实工作表中的5组不同的数据有效,在那个例子中它有效,因为我必须重置名称。太棒了!测试了所有内容并在
行($1:$30)
部分进行了调整,根据要包含的最大或最高单元格地址更改$30,例如,列的范围达到E99,然后将代码调整到
行($1:$99)
,这样我就能够获取不同的出版物名称,不再重复!非常感谢您,先生@SolarMike:)