问题标签 [sumproduct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
379 浏览

google-sheets - 谷歌表格 SumProduct 反向

我试图取sumproduct两个数组的(点积),但我想反转第二个数组。换句话说:

此处的答案中建议使用此 excel 方法:

在 SUMPRODUCT 中反转数组的顺序之一

在 Google 表格中不起作用。有没有人有另一种方法?

编辑:我应该补充一点,我需要它像任何其他 excel 公式一样是动态的。这意味着当我从一个单元格复制到另一个单元格时,sumproduct 反转说明了单元格引用更改的新大小和形状。

0 投票
0 回答
32 浏览

excel - Sumproduct 和 countif 问题

我有一本工作簿,其中有一张单独的工作表,分配给每位任课教师。在每张工作表的 A 列中,我列出了他们名册中的学生姓名,在 BI 列中为他们设置了为这些特定学生的每个未完成作业放置一个“x”。在我的名册表下,我希望工作簿搜索 30 多个教师表中的每一个,并找到每个学生的姓名,并在整个表中按他们的名字计算“x”的数量,并在我的“名册”表中报告该信息。基本上计算每个学生有多少未完成的作业。这是我在花名册上的公式: =SUMPRODUCT(COUNTIFS(INDIRECT("'"&Sheetss&"'!A:A"),A2,INDIRECT("'"&Sheetss&"'!B:B"),

“Sheetss”是我为所有教师表定义的范围。

我的问题是,在我的第一个教师表中,我可以在 A 列中输入学生的姓名(StudentB),在 B 列中输入 x,它会在我的名册表上为 StudentB 返回一个 1,但是,当在任何其他上输入 StudentB 时表和任何其他表的 B 列中的 x 它不会计算该数据并显示 2、3 等。

我觉得这个公式好像没有在我所有的工作表中搜索数据,任何帮助都会很棒。谢谢!!

0 投票
0 回答
140 浏览

excel - 当外部工作簿关闭时,外部工作簿的 SUMIF 会给出 #VALUE。SUMPRODUCT 给出零结果

我已经SUMIF为外部工作簿创建了一条语句,以将大于 25 的范围内的所有记录相加。但是,#VALUE当外部工作簿关闭时,我得到了。通过阅读以前的线程,我应该能够将SUMIF公式修改为 aSUMPRODUCT以使其在关闭外部工作簿的情况下进行计算,但是,在我的情况下,我得到的结果为零。

打开外部工作簿时有效的SUMIF公式是:

SUMPRODUCT我尝试过的替代方法是:

任何可以提供的建议将不胜感激。谢谢。

0 投票
1 回答
36 浏览

excel - .Value = Evaluate("SUMPRODUCT") returning #VALUE but .Value = "=SUMPRODUCT" works correctly?

I've got a script that generates reports from a data set. The data set relates to a customer support log of tickets/tracking numbers, with basic ticket info such as when the ticket was opened, who the ticket was assigned to and what the main issue/workload was. My goal is to create a report that already exists but is completed manually with pivot tables (that almost nobody knows how to use) and avoids using formulas.

The basic report is how many of each workload was completed by each employee per month. Easily doable with a pivot table, except most people don't know how. This excel formula gets what I want for January, =SUMPRODUCT((data!Column1="Employee1")*(data!Column2="Workload A")*(data!Column3>=DATEVALUE("2019-1"))*(data!Column3<DATEVALUE("2019-2"))). The drawback of the data is that the dates are date values that are formatted as short dates. The solution I have in VBA:

This leaves a gigantic formula in excel which is referenced to the data worksheet which will not be included in the report (though I suppose it could be hidden). I'd prefer to use values to make the sheet easier to handle by management. I tried using Evaluate, but it makes the cell value #VALUE!

Is this because of an inherent limitation with Evaluate(), ie: DATEVALUE within SUMPRODUCT? As far as I can tell it should work, but I have no idea.

0 投票
1 回答
248 浏览

formula - 使用 SUMPRODUCT 而不是 SUMIFS

我正在尝试减少公式,但我真的不明白如何使用 SUMPRODUCT 函数。我是一个新的excel用户,正在一步一步地做事。

我试过使用 SUM 和 SUMIFS 函数,但它使公式变得很长,并且文件在读取所做的更改时很慢。

SUMIFS(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,7,15,1),OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,5,15,1),$B5,OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,6,15,1),DATA!$D$2),SUMIFS(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,12,15,1),OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,10,15,1),$B5, OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,11,15,1),DATA!$F$2),SUMIFS(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,18,15,1), OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,16,15,1),$B5,OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,17,15,1),DATA!$F$2),SUMIFS(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,23,15,1),OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,21,15,1),$B5,OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,22,15,1),DATA!$H$2))

我希望输出至少是我给定公式的 1/2,或者如果可能的话,更少。先感谢您。

1这是记录销售额的地方
2当记录每日销售额时,它会自动从库存中扣除


有代码的是 SOLD 列。零售、返利和 25% 的 QTY 栏的总和是被扣除的。

我设法减少了公式,但仍在努力减少它,这里是:

=IF(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),SUM( SUMPRODUCT(--(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,5,15,1)=$B5),--(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,6,15,1)=DATA!$D$2),OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,7,15,1)), SUMPRODUCT(--(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,10,15,1)=$B5),--(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,11,15,1)=DATA!$F$2),OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,12,15,1)), SUMPRODUCT(--(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,16,15,1)=$B5),--(OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,17,15,1)=DATA!$F$2),OFFSET(INDEX('DAILY SALES'!$B:$B,MATCH(O$2,'DAILY SALES'!$B:$B,0)),2,18,15,1))))

0 投票
2 回答
34 浏览

excel - 如何解决 Excel sumproduct 公式以从工作日期中获取周数

一个 Excel 问题。

我得到了一个包含日期列的表和一个包含值的计算列。在摘要单元格中,我确实有

当然完美。但是,使用相同的列并计算基于每周的摘要,我得到了错误

这给了我一个#Value 错误。如果我使用 WeekNumber(AnEmptyCell) 作为测试,它只会返回一个零,没有错误值。

F9 键结果 -

所有其他部分也还可以。

基准列中的所有字段都是日期字段。

我做错了什么以及如何解决这个问题?

0 投票
1 回答
127 浏览

excel - 如何在一行数字中找到最后一个零值实例

我有一个按日期(从左到右)列出库存数量的表格,并且想要一个公式来返回最后一个零值出现的单元格。引用此结果将允许我通过索引该列的标题单元格(偏移 1 列,到最后一个零之后的第一个单元格 >1)来完成显示“自有库存以来...”的公式。)

我不想使用数组,也不想使用宏或 VBScript。

这是一个较长公式的一部分,我在该行中查找所有零值(“产品从未库存”),其中行中的所有值都 > 0(“产品从未缺货”),并且当前日期的库存为 0,但该行中至少有一个 >0 的实例(“产品自......以来一直缺货”)。公式的第三部分是通过使用 =LOOKUP(2,1/(A:A>0),A:A) 定位最后一个 >0 值,然后偏移一列来完成的。我有公式可以成功返回这些场景的结果。

对于第四种情况,我已经尝试了两个公式,其中最新日期的股票 > 0 但行中至少有一个零实例:

但是,这些在查找一行中的最后一个零值时不起作用,只有在查找非零值时才起作用。

一些样本数据:

上面的第四种情况是我无法编写公式来完成日期输入。

到目前为止,我能够让它工作的唯一方法是重新排列所有日期列,使它们从右到左流动,然后使用 INDEX 和 MATCH 查找行中的第一个零实例以完成公式. 这也适用于查找第一个 >0 实例(对于缺货的第三种情况),我的备份解决方案也是如此。但是,这并不理想,因为出于绘图目的,我的日期应该从左到右显示。

0 投票
1 回答
62 浏览

excel - 将 2 个索引匹配的所有乘法相加

我正在尝试以下操作:

通过索引和匹配从 2 个不同的选项卡中获取 2 个值并将它们相乘,然后将这些相乘匹配的所有实例相加。我试图通过 1 步来实现这一目标。

为了显示:

  1. 从选项卡“Test_Samples”将 A 列中的所有值与“Reference_Dataset”A 列中的值匹配。

  2. 从选项卡“Test_Samples”列 B 中获取相应的“计数”,并将其乘以选项卡“Reference_Dataset”列 J 中的相应“gra”。

  3. 将这些乘法的所有结果相加。

在此处输入图像描述

在此处输入图像描述

我已经尝试过 SUMIF/SUMIFS 和 SUMPRODUCT 并在其中嵌套索引和匹配,但它给出了错误的结果或说公式不正确。

我在“Reference_Dataset”选项卡的 J 列中索引和匹配以获取“gra”值的方式如下:

因此,如果两个选项卡的 A 列中的“Apple”、“Bee”和“Cinnamon”在选项卡“Test_Samples”中的计数分别为 19、1 和 10,并且“Apple”、“Bee”和“ 'Reference_Dataset' 选项卡中的 Cinnamon" 分别为 2、1、1,它应该相乘和相加 (19*2 + 1*1 + 10*1) 以返回总共 49。

0 投票
0 回答
34 浏览

excel - 如何在 sumproduct(countif(**)) 函数中返回发现为“True”的值?

我有一个大数组(1600 行 x 26 列),我想从“搜索列表”(1400 行)中搜索一个单词,该单词位于数组中的任何单元格中。我有SumProduct(countif())那个返回True/False但是我怎样才能在找到它的行中返回找到的单词?

我希望输出是在“搜索数组”中找到的“搜索列表”中的单词,导致sumproduct(countif())返回为TRUE.

0 投票
0 回答
958 浏览

excel - 日期范围内的 Sumproduct

我正在使用这个公式根据 4 个标准对一些数据求和:

设置该公式,以便使用第三个和第四个条件来识别在“工作表 2”的单元格 c2 和 d2 中建立的日期范围。

当我评估公式时,我注意到它没有像我预期的那样评估日期范围。Excel 在执行段时为所有日期分配“TRUE”值,在执行(Data!$E$1:$AW$1>=C2)段时为所有日期分配“FALSE”值(Data!$E$1:$AW$1<=D2)。数据中有日期范围从 2017 年到 2020 年,而我目前使用的范围是 2018 年 12 月到 2019 年 11 月,因此范围在数据范围内。

这导致公式返回 0 作为值。

公式的其他部分似乎按预期工作。

我检查了我的格式,所有相关单元格都被格式化为日期。

还有其他建议吗?

谢谢!