Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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
Google sheets 根据日期列(最后日期)和项目名称(唯一项目)获取列值之和_Google Sheets - Fatal编程技术网

Google sheets 根据日期列(最后日期)和项目名称(唯一项目)获取列值之和

Google sheets 根据日期列(最后日期)和项目名称(唯一项目)获取列值之和,google-sheets,Google Sheets,希望你能帮上忙 我需要得到用黄色标记的值的总和。其思想是在一个月内获得每个唯一项目的最后注册值,并在一个单元格中汇总所有项目。结果必须是3 注:日期格式显示为dd/mm/yyyy 数据如下: DATE ITEM VALUE 14/10/2020 ITEM1 1 22/10/2020 ITEM2 1 22/10/2020 ITEM3 1 23/10/2020 ITEM3 1 编辑 (在OP之后) 前一个公式在唯一日期下工作正常。不过,要区分重复的日期是

希望你能帮上忙

我需要得到用黄色标记的值的总和。其思想是在一个月内获得每个唯一项目的最后注册值,并在一个单元格中汇总所有项目。结果必须是3

注:日期格式显示为dd/mm/yyyy

数据如下:

DATE        ITEM    VALUE
14/10/2020  ITEM1   1
22/10/2020  ITEM2   1
22/10/2020  ITEM3   1
23/10/2020  ITEM3   1

编辑 (在OP之后)

前一个公式在唯一日期下工作正常。不过,要区分重复的日期是不可能的

所以,我们通过乘以每个日期的行号来创建一个唯一的虚拟日期,以获得所需的结果

请使用

=SUM(ArrayFormula(VLOOKUP( 
                     QUERY({$A$2:$A*ROW($A$2:$A),$A$2:$G}, 
                               "select max(Col1) 
                                where month(Col2)="&MONTH($H2)-1&" and year(Col2)="&YEAR($H2)&" and Col6='"&I$1&"' 
                                group by Col3 
                                label max(Col1) '' "), 
                           {$A$2:$A*ROW($A$2:$A),$A$2:$G},8,0)))


原始答案

你提到

…获取每个唯一项目在一个月内的最后一次注册值,并在一个单元格中汇总所有项目

请尝试以下公式

=SUM(ArrayFormula(VLOOKUP(INDEX( 
          QUERY(A2:C,"select max(A), B where month(A)="&E2-1&" group by B label max(A) '' ") 
             ,,1),A2:C,3,0)))
(我已更改了您集合中的数据,以便更容易理解公式。请根据您的需要调整范围)


另一种方法是使用sort和sortn删除每个月发生的重复项,然后使用Query进行分组:

=query(
      sortn(
            sort(
                  filter({year(A2:A),month(A2:A),A2:C},A2:A<>"")
             ,1,false,2,false)
       ,999,2,1,0,2,0,3,1)
,"select Col1,Col2,sum(Col5) group by Col1,Col2 label Col1 'Year',Col2 'Month', sum(Col5) 'Sum'")
=查询(
索顿(
分类(
过滤器({年(A2:A),月(A2:A),A2:C},A2:A“”)
,1,假,2,假)
,999,2,1,0,2,0,3,1)
,“按Col1选择Col1、Col2、sum(Col5)分组,Col2标签Col1'年'、Col2'月'、sum(Col5)'和'”

编辑

请参阅以下公式,并进行两次更正,使用与@marikamitsos相同的数据运行:

=query(
      sortn(
            sort(
                  filter({year(A2:A),month(A2:A),A2:C},A2:A<>"")
             ,3,false)
       ,999,2,1,0,2,0,4,1)
,"select Col1,Col2,sum(Col5) group by Col1,Col2 label Col1 'Year',Col2 'Month', sum(Col5) 'Sum'")
=查询(
索顿(
分类(
过滤器({年(A2:A),月(A2:A),A2:C},A2:A“”)
,3,错)
,999,2,1,0,2,0,4,1)
,“按Col1选择Col1、Col2、sum(Col5)分组,Col2标签Col1'年'、Col2'月'、sum(Col5)'和'”

编辑2

以下是带有额外列的公式:

=query(
      sortn(
            sort(
                  filter({year(A2:A),month(A2:A),A2:B,E2:E,G2:G,row(A2:A)},A2:A<>"")
             ,3,false,7,false)
       ,999,2,1,0,2,0,4,1,5,1)
,"select Col1,Col2,sum(Col6) group by Col1,Col2 pivot Col5 label Col1 'Year',Col2 'Month', sum(Col6) 'Sum'")
=查询(
索顿(
分类(
筛选器({年(A2:A),月(A2:A),A2:B,E2:E,G2:G,行(A2:A)},A2:A“”)
,3,假,7,假)
,999,2,1,0,2,0,4,1,5,1)
,“按Col1选择Col1、Col2、sum(Col6)分组,Col2透视Col5标签Col1'年'、Col2'月'、sum(Col6)'和'”
我不确定当同一个项目在同一天落下两次时会发生什么,但很明显,您希望保留最后一个项目,因此我将行号添加到排序中以实现这一点


那么,您是否有几个月的实践时间,并且希望每月找到每个项目的最后一个值的总和?只是一个提示。我试着比较我们的公式,因为我得到的结果与你的不同(你的是正确的)。所以我更多地接触了数据,并且相信我修正了我的公式。但是现在。我不得不承认我太懒了,不知道如何调整你的:/噢,天哪!我认为这只是一个简单的错误,我把3(日期)而不是4(项目)放在排序中,但还有一个非常愚蠢的错误,我应该把3(日期)放在排序中,而不是只按年份(1)和月份(2)排序。将使用你的数据编辑我的答案谢谢你,汤姆!如何添加另一个筛选列?让我们假设一个“type”列,并使用它来过滤汇总值。希望我能解释我自己。我有4列原始数据:日期、项目、类型、值。在另一张纸或同一张纸上的其他地方,我有第一列日期(2020年1月、2020年2月等),下一列是类型(类型1、类型2等)。因此,我需要得到每月、每年的行和类型列的总和值。你可以看到这个文件,我用这个信息添加了另一张纸。我会把它添加到我的答案中。我们现在同意你的数据,谢谢你的提醒。你会因此恨我的,但我认为当两个不同项目的最新日期相同且其值不同时,你可能会有问题-例如,尝试将C8更改为其他内容。非常感谢!它工作得很好。我还有一个问题。我怎么能用这个公式在另一个电子表格中得到结果,我的意思是,我能用这个公式导入吗?对不起,我在我的文件中运行了一些测试,但它不起作用。我添加了一个带有数据的新表(“hoja 2”)。我在查询公式中添加了新的过滤器,以按日期(上次日期)、按唯一项(GTIN)和按类型(TIPO)获取o值的总和。但它不起作用。我是使用查询公式的新手。很抱歉再次请求您的帮助。非常感谢。“你会因此恨我的,但是……”不太可能@TomSharpe。相反,谢谢你指出这个问题。公式更新。是时候检查一下你的了:)“我怎样才能用这个公式在另一个电子表格中得到te结果,我的意思是,我可以用importrange”当然。无论如何。你为什么不试试呢?也别忘了检查我的最新配方