Tag: 总结

在VBA中作为函数的sumproduct

我想看看是否有可能在VBA中创build一个sumproduct函数。 我可以做一个在Excel中完美的工作,看起来像这样: =SUMPRODUCT(C2:C19,((D2:D19="text1")*12+(D2:D19="text2")*4+(D2:D19="text3")*2)) 我有2列,目标是将第一列中的一个单元格与一个数字相乘,根据另一列单元格中的不同文本。 这如上所示完成。 然而,当我使用它时,实际上每次都需要一些时间来写,所以我想看看能不能在VBA中做一个可以selectx(第一列)和y(第二列)的函数,结果会在那里。 到目前为止,我已经做了这方面的工作,但一直未能成功: Function xxx(x, y) xxx = Application.WorksheetFunction.SumProduct(x, ((y = "text1") * 12 + y = "text2" * 4 + y = "text3" * 2)) End Function 我不能做任何具体的行和列例如C2:C19的引用,因为它变化很大,所以我只想select第一列(x)和第二列(y)作为范围。 任何build议? 谢谢阅读! 🙂

sumproduct和vlookup返回一个错误

我有一个函数读取: =SUMPRODUCT(VLOOKUP(D261, '[IJM current plan.xls]LO calcs'!$AU$12:$BO$147,{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21},FALSE)+VLOOKUP(D261,'[IJM current plan.xls]OF calcs'!$BC$12:$CA$147,{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25},FALSE)) 但是这会返回一个错误。 目标是在LO计算选项卡中将AU12和BO12之间的行以及OF 计算选项卡中BC12和CA12之间的行相加 (如果该行包含单元格D261(date)中的值)。 这将返回一个#N / A错误,我不知道为什么,因为这个完全相同的方法适用于其他两个电子表格,但不适用于IJM当前计划 。 我已经检查过名称,文件path,行和列是否正确,并且任何隐藏的行,列或标签清晰可见。 有任何想法吗?

计算一个特定列中单元格中的值与特定其他列的同一行中的值不相同的频率

除了O和R (单独)外,ColumnA和ColumnB都是空白的。 我如何计算ColumnA中的行A包含O的次数和ColumnB的同一行中的R的连同包含ColumnA中的R和RowB的同一行中的O的行的次数? 例如下面的例子的结果应该是5如星号所示: 所有未显示的单元格均为空白。 第二行被计数,因为A2不等于B2。 第一行不计数,因为A1和B1都只包含O 第五行的计数是因为在给定的行内, O是否在ColumnA中是ColumnA和R ,ColumnA是否是R ,ColumnA是O。 第七行不计数,因为A7和B7都只包含R

在另一个工作表中从一行开始按顺序排列12个单元格的组

我有两个excel表:每月费用1,另一个是费用types的年度费用夏季。 对于每年的费用表,我想每12个月总计一个单元格,然后旁边的单元格是未来12个月,依此类推。 因此,要了解我的工作表是如何设置的: 标题为“运营费用”的表单中有单元格B4:M4,即每年的1月至12月的月度费用。 在题为“资金的来源和用途”的表中,我想要叫D28是B4:M4的总和,然后单元格D29是N4:Y4的总和等等,直到我停止拖动公式为止。 我尝试了Sum(offset())函数,但似乎无法弄清楚。

不同的数组大小和使用SUMXMY2函数

我想在Excel中使用SUMXMY2函数来返回两个数组中相应值的差异的平方和。 问题是我想我的第二个数组是一个单一的常量。 如果array_x和array_y具有不同数量的值,Excel将返回#N / A错误。 如果array_x有8个值,那么array_y必须有8个值。 我试图应用的等式是这样的: X = {(1/7)*SUM[(Y_i – Y_avg)]^2}^(1/2) 其中Y_i =下表中L1至L8的各个值,Y_avg = L1至L8的平均值 L1 L2 L3 L4 L5 L6 L7 L8 SUM AVERAGE 42.5 37.0 40.0 44.9 40.1 37.6 40.3 42.6 324.9 40.6 我宁愿不做一个重复Y_avg 8次的表(从而匹配两个数组),因为我需要excel表单整洁,占用尽可能小的空间。 有没有办法在excel中获得SUMXMY2函数来返回一个数组和一个常量差异的平方和? 还是有另一个function或简单的解决方法,我可以使用?

汇总表更新来源表

我想制作一份汇总表,如果发生变化,则更改汇总表来源。 我到目前为止的代码汇总了汇总表激活事件汇总表上的所有表单。 我正在尝试将所有其他工作表都更新为停用事件,但似乎没有工作。 这是我正在使用的代码: Private Sub Worksheet_Deactivate() Application.ScreenUpdating = False Dim tabs As Variant tabs = Array("BELD", "RMLD", "Pascoag", "Devens", "WBMLP", "Rowely", "AMP", "First Energy", "Dynegy", "APN", "MISC") For j = 1 To UBound(tabs) Sheets(tabs(j)).Select Dim rng1 As Range Dim Stri As String For i = 3 To ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Cells.Count).Row Stri = ActiveSheet.Cells(i, "A") Set rng1 […]

使用范围的特定行总和

我知道如何find最后一行,并添加一个SUM() ,但如何SUM(G+H)在列O使用范围的每一行? 我会用它来得到最后一行和总和列,这怎么可能被转换为总和行? With ws If Application.WorksheetFunction.CountA(.Cells) <> 0 Then LastRow = .Cells.Find(What:="*", _ After:=.Range("A1"), _ LookAt:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row Else LastRow = 1 End If .Range("C" & LastRow + 1).FormulaR1C1 = "=SUM(R[-" & LastRow & "]C:R[-1]C)" .Range("C" & LastRow + 1 & ":M" & LastRow + 1).FillRight End With

所选列的SumProduct和VLookup

我有一个函数读取: =SUMPRODUCT(VLOOKUP(D17,'D:\Temporary Storage – not backed up and unsecured\[PT current plan.xls]Ore Fines'!$A$12:$BC$146,{4,8,12,16,20,24,28,32,36,40,44,48,52},FALSE)+VLOOKUP(D17,'D:\Temporary Storage – not backed up and unsecured\[PT current plan.xls]Lump Ores'!$A$12:$AY$146,{4,8,12,16,20,24,28,32,36,40,44,48},FALSE)) 目的是在每个相关选项卡中查找匹配date(D列),然后将仅与“使用”列标题对应的单元格相加(每4个单元格重复一次列标题)。 这将返回#N / A错误; 我不确定如何纠正这一点。 我已经检查过名称,文件path,行和列是否正确,并且任何隐藏的行,列或标签清晰可见。 有任何想法吗? 编辑1 我使用“评估公式”工具,它给出了以下结果。 评估的第一阶段产生: SUMPRODUCT(VLOOKUP(41370,'D:\Temporary Storage – not backed up and unsecured\[PT current plan.xls]Ore Fines'!$A$12:$BC$146,{4,8,12,16,20,24,28,32,36,40,44,48,52},FALSE)+VLOOKUP(D17,'D:\Temporary Storage – not backed up and unsecured\[PT current plan.xls]Lump Ores'!$A$12:$AY$146,{4,8,12,16,20,24,28,32,36,40,44,48},FALSE)) 进入此步骤显示相应的date:2013年4月6日(D17单元格中的date) 第二阶段: […]

Excel C#dynamic获取一行的总和

我的问题如下:如果我有一个静态的开始点让我们说A3和一个dynamic的结束点,让我们说A827或任何其他数字,这将是正确的方式来获得这个列的总和? 我想到的是如下: xl.Range sumcell; sumcell = xlNewSheet.Cells[xlNewSheet.Rows.Count, 1].End(xl.XlDirection.xlUp).Offset[1,0]; sumcell.Formula = xl.WorksheetFunction.Sum(xlNewSheet.Range["A3"], xlNewSheet.Range["A3"].End(xl.XlDirection.xlDown)); 我有第二个想法如下: xl.Range sumStart = xlApp.get_Range("A3"); xl.Range sumEnd = xlNewSheet.Cells[xlNewSheet.Rows.Count, 1].End(xl.XlDirection.xlUp); xl.Range totalCell = sumEnd.Offset[1, 0]; totalCell.Formula = "=SUM(" + sumStart + ":" + sumEnd + ")"; 任何人都可以告诉我,如果我在正确的轨道上,或者如果我需要重新思考这个想法? 任何forms的帮助将非常感激。

如果满足条件,则总结两列乘积结果的公式

这第一个公式做了一半的工作: =SUMPRODUCT(–ISNUMBER(FIND("X",$A$1:$A$3)),$B$1:$B$3,$E$1:$E$3) 在这个例子中打算达到的结果是60,给定的公式只适用于一列,在这种情况下是B,所以C和D是错过的。 第二个公式总结了上面需要的东西。 =SUMPRODUCT((ISNUMBER(SEARCH("X",$A$1:$A$3)))*($B$1:D3)) 这两个是我能达到的最接近的方式,可以混合吗?