Excel:對稱重的細胞進行計數

Excel:對稱重的細胞進行計數

我有一個 Excel 電子表格,這是我的時間表。這意味著,我有一些任務,幾乎總是一個連接的單元格,有時我連接 20 個單元格,有時只連接兩個。例子

由於每個細胞都是一小時,所以我想計算稱重的細胞計數。這意味著:如果我有一個單元格,只有一個單元格,則計為1 個,如果連接了3 個單元格,則計為3 個。 3、S2: 4、S3: 2、S4:6

我已經搜索了很長時間,但沒有找到任何可以解決問題的功能。我發現的最好的是=countif(B4:H19, "Subject1"),但這裡基於三個連接單元的單元算作一個。你能幫我解決這個問題嗎?

感謝您提前的答覆!

答案1

實際上,您與我們共享的螢幕截圖同時包含合併和非合併儲存格,因此此問題不需要任何公式,而是需要 VBA 巨集。

在此輸入影像描述


   Function MergedCellCount(ByRef Rng As Range, ByVal Criteria As Variant)

    Dim c       As Long
    Dim Cell    As Range
    Dim n       As Long
    Dim r       As Long
    
        Application.Volatile
        
        For c = 1 To Rng.Columns.Count
            For r = 1 To Rng.Rows.Count
                Set Cell = Rng.Cells(r, c)
                If Cell.MergeCells = True And (Rng.Columns(c).Column = Cell.MergeArea.Column) Then
                    If Cell = Criteria Then
                        n = n + Cell.MergeArea.Count
                        r = r + (Cell.MergeArea.Rows.Count - 1)
                    End If
                End If
            Next r
        Next c
        
        MergedCellCount = n
        
    End Function

    Function unMergedCellCount(ByRef Rng As Range, ByVal Criteria As Variant)

    Dim c       As Long
    Dim Cell    As Range
    Dim n       As Long
    Dim r       As Long
    
        Application.Volatile
        
        For c = 1 To Rng.Columns.Count
            For r = 1 To Rng.Rows.Count
                Set Cell = Rng.Cells(r, c)
                If Cell.MergeCells <> True And (Rng.Columns(c).Column = Cell.MergeArea.Column) Then
                    If Cell = Criteria Then
                        n = n + Cell.MergeArea.Count
                        r = r + (Cell.MergeArea.Rows.Count - 1)
                    End If
                End If
            Next r
        Next c
        
        unMergedCellCount = n
        
End Function

怎麼運作的:

  • 要么按Alt+F11或選擇 TAB 然後右鍵單擊並從選單中點擊V查看代碼。

  • C奧比&試試這些VBA宏。

  • Alt+Q返回工作表。

  • 現在將工作簿另存為啟用巨集的檔案*.xlsm

  • 在儲存格中輸入此公式K2並填寫。

    =MergedCellCount(H$2:H$17,J2)+unMergedCellCount(H$2:H$17,J2)

  • 根據需要調整儲存格引用。

相關內容