檢查列的值。如果為 true,則檢查另一列中的同一行,如果不為空則計數

檢查列的值。如果為 true,則檢查另一列中的同一行,如果不為空則計數

我有一份員工電子表格。 A 列是部門類型(銷售、人力資源、薪資等)的清單。 B 欄是評估完成的日期,如果不完整則為空白。我想要一個函數來檢查部門列中的特定部門類型(例如“銷售”),如果等於“銷售”,則檢查評估列的相應行併計算有多少個日期。然後我會為所有其他部門類型進行複製。因此,對於「銷售」範例,如果有四名員工,其中兩名員工有評估日期,則結果將為「2」。請注意,我不希望它計算 B 列中與其他部門類型相關的日期。

A 欄 - 部門 。 。 。 。 - 人力資源 - 銷售 - 人力資源 - 薪資 - 銷售 - 銷售 - 銷售。

B 欄 - 評價- 1/07/2015 - 8/07/2015 - 6/07/2015 - “空白” - “空白” - 3/07/2015 - “空白” -

答案1

開啟 VBA 編輯器,然後從「插入」功能表中選擇「模組」。將以下內容貼到結果文字欄位中:

Function DEPTAPPCOUNT(Dept As String, Range As Range, CountRange As Range) As Integer
    Dim count As Integer
    For Each rCell In Range
        If rCell.Text = Dept Then
            If rCell.Offset(0, 1).Text <> "" Then count = count + 1
        End If
    Next
    DEPTAPPCOUNT = count
End Function

按下工具列上的「儲存」按鈕,然後關閉 VBA 編輯器以返回電子表格。現在您可以DEPTAPPCOUNT像使用 Excel 內部函數一樣使用該函數。如果您的部門列從 A2 到 A7(並且評估日期在 B2 到 B7 中 - 計數列必須緊鄰部門列的右側才能使此功能發揮作用),請輸入=DEPTAPPCOUNT("Sales", A2:A7, B2:B7)以獲取非銷售條目數- 空白評估日期。根據需要調整第一個參數(Sales文字)以計入其他部門。

如果您使用的是 Excel 2007 或更高版本,則需要以XLSM(啟用巨集)格式儲存工作表。

對於那些想知道為什麼CountRange必須傳遞給自訂函數(即使未使用它)的人來說,如果日期列發生更改,則需要讓 Excel 重新計算計數。換句話說,將額外的範圍傳遞給函數會在 Excel 的計算中建立依賴關係。

相關內容