根据多个条件对行进行计数

时间:2018-06-20 15:15:49

标签: arrays

我一直在寻找一种方法来填充所附图像的“ H”和“ I”列。

对于“ H”,每次发货的日期和日期与每个项目不相等时,我都需要计数。将会是这样的: (A:A <> D:D,B:B = $ G $ 2,E:E <>“基本库存”)

第二个方程是计算每个项目的平均交货时间: 平均值(E:E-D:D),其中B:B = $ G $ 2,而D:D =“ Complete”,而忽略带空格的行

表比图像大得多,我不能使用帮助行。

谢谢。

Example Sheet

2 个答案:

答案 0 :(得分:0)

对于第一部分,运输calc,我编写了一个为您计算的函数:

Public Function Shippingcalc(item1 As Range, codes As Range, date2 As Range, shipped As Range, status As Range)
    Dim Count As Integer
    Count = 0

    For n = 1 To codes.Rows.Count
        If status.Cells(n, 1).Value <> "Base Inventory" Then
            If codes.Cells(n, 1).Value = item1.Cells(1, 1).Value Then
                If shipped.Cells(n, 1).Value <> 0 Then
                    If shipped.Cells(n, 1).Value <> date2.Cells(n, 1).Value Then
                        Count = Count + 1
                    End If
                End If
            End If
        End If
    Next n

    Shippingcalc = Count
End Function

您必须将其实现为宏并启用工作簿。 然后,H中的函数将类似于:

=Shippingcalc(G2, B$2:B$10, A$2:A$10, D$2:D$10, C$2:C$10)

您可以复制它(当然会更新为完整的列大小)。 类似的东西应该可以用于其他计算。

答案 1 :(得分:0)

由于某种原因,今天早上我排便时,提前期的方程式出现了。它比我想象的要简单得多,可以追溯到中学数学。

平均=(SUM(接收日期)-SUM(发货日期))/总计

=(SUMIFS(E:E,B:B,G2,D:D,“ <>”,E:E,“ <>”)-SUMIFS(D:D,B:B,G2,D: D,“ <>”,E:E,“ <>”)))/(COUNTIFS(B:B,Q14,D:D,“ <>”,E:E,“ <>”)+ 1)

感谢您的帮助。