提示:其他語言是Google翻譯的。 你可以訪問 English 版本。
登入
x
or
x
x
註冊
x

or

如何計算/總結在Excel中的刪除線單元格?

在Excel中,我們總是為某些單元格設置刪除線,這些單元格指示單元格的值無效或無效,以便我們可以更準確地分析數據。 在本文中,我將討論如何在Excel中使用這些刪除線單元格進行一些計算。

在Excel中計算刪除線單元格

在Excel中計算沒有刪除線的單元格

總和在Excel中排除刪除線單元格


箭頭藍色右泡 在Excel中計算刪除線單元格


如果您想知道一個範圍內有多少個帶刪除線格式的單元格,您可以創建一個用戶定義的功能,請按以下步驟操作:

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications窗口.

2。 點擊 插入 > 模塊,並將以下代碼粘貼到 模塊窗口.

VBA代碼:計算刪除線單元格

Public Function CountStrike(pWorkRng As Range) As Long
'Update 20140819
Application.Volatile
Dim pRng As Range
Dim xOut As Long
xOut = 0
For Each pRng In pWorkRng
    If pRng.Font.Strikethrough Then
        xOut = xOut + 1
    End If
Next
CountStrike = xOut
End Function

3。 然後保存並關閉此代碼,並返回到工作表,然後輸入此公式 = CountStrike(A2:B14) 到一個空白單元格,看截圖:

DOC-計數走1

4。 然後按 輸入 關鍵,並且所有的刪除線單元都被計數。 看截圖:

DOC-計數走1


箭頭藍色右泡 在Excel中計算沒有刪除線的單元格

但是,有時候,您可能希望只計算不包括刪除線單元的正常單元的數量。 以下代碼可以幫助你。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications窗口.

2。 點擊 插入 > 模塊,並將以下代碼粘貼到 模塊窗口.

VBA代碼:計數沒有刪除線單元格

Public Function CountNoStrike(pWorkRng As Range) As Long
'Update 20140819
Application.Volatile
Dim pRng As Range
Dim xOut As Long
xOut = 0
For Each pRng In pWorkRng
    If Not pRng.Font.Strikethrough Then
        xOut = xOut + 1
    End If
Next
CountNoStrike = xOut
End Function

3。 然後保存並關閉此代碼,返回到您的工作表,輸入此公式 = countnostrike(A2:B14) 放入空白單元格中,然後按 輸入 關鍵,那麼你會得到你需要的結果。

DOC-計數走1

注意:在上面的公式中, A2:B14 是您想要應用公式的範圍。


箭頭藍色右泡 總和在Excel中排除刪除線單元格

由於刪除線單元格未使用,因此我只想求和沒有刪除線數字的正常數字。 要解決此任務,您還需要一個用戶定義的功能。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications窗口.

2。 點擊 插入 > 模塊,並將以下代碼粘貼到 模塊窗口.

VBA代碼:總和不包括刪除線單元格

Public Function ExcStrike(pWorkRng As Range) As Long
'Update 20140819
Application.Volatile
Dim pRng As Range
Dim xOut As Long
xOut = 0
For Each pRng In pWorkRng
    If Not pRng.Font.Strikethrough Then
        xOut = xOut + pRng.Value
    End If
Next
ExcStrike = xOut
End Function

3。 然後保存並關閉此代碼,返回到您的工作表,輸入此公式 = excstrike(B2:B14) 放入空白單元格中,然後按 輸入 鍵,你將得到沒有刪除線單元格的所有數字的總和。 看截圖:

DOC-計數走1

注意:在上面的公式中, B2:B14 是您希望在沒有刪除線格式的情況下求和單元格的範圍。


相關文章:

如何在Excel中的單元格範圍內求和/計算粗體數字?

如何計算和統計基於Excel中的背景顏色的單元格?

如何根據Excel中的字體顏色計算/求和單元格?


推薦的Excel生產力工具

kte tab 201905

Kutools for Excel幫助您提前完成工作,並從人群中脫穎而出

  • 超過300強大的高級功能,專為1500工作場景設計,通過70%提高生產力,讓您有更多時間照顧家庭和享受生活。
  • 不再需要記憶公式和VBA代碼,從現在起讓你的大腦休息一下。
  • 成為3分鐘的Excel專家,複雜和重複的操作可以在幾秒鐘內完成,
  • 每天減少成千上萬的鍵盤和鼠標操作,現在告別職業病。
  • 110,000高效人才和300 +世界知名公司的選擇。
  • 60-day full功能免費試用。 60天退款保證。 2多年的免費升級和支持。

將選項卡式瀏覽和編輯帶到Microsoft Office,遠比瀏覽器的選項卡強大

  • Office選項卡專為Word,Excel,PowerPoint和其他Office應用程序設計:Publisher,Access,Visio和Project。
  • 在同一窗口的新選項卡中打開並創建多個文檔,而不是在新窗口中。
  • 通過50%提高您的工作效率,每天為您減少數百次鼠標點擊!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Matt · 2 years ago
    Hi. Great code for ignoring strikethrough text whilst summing. But, is it possible to filter the data and get a subtotal which still sums without the strike through text? Thanks
  • To post as a guest, your comment is unpublished.
    Ari · 2 years ago
    This seems to round to whole numbers, and does not take into account the decimal places. For example, 1.35 + 1.00 would equal 2 instead of 2.35, but 1.50 + 1 would equal 3 instead of 2.50. How can you fix the code to add accurately?
    • To post as a guest, your comment is unpublished.
      Mark Ayoub · 2 years ago
      [quote name="Ari"]This seems to round to whole numbers, and does not take into account the decimal places. For example, 1.35 + 1.00 would equal 2 instead of 2.35, but 1.50 + 1 would equal 3 instead of 2.50. How can you fix the code to add accurately?[/quote]

      ARI, just change the two words "Long" to "Double" in the formula. Here is the same formula above, with the correct Data Types to allow for values with decimal points:

      [b]
      Public Function ExcStrike(pWorkRng As Range) As Double
      'Update 20161107_IITCSglobal.com
      Application.Volatile
      Dim pRng As Range
      Dim xOut As Double
      xOut = 0
      For Each pRng In pWorkRng
      If Not pRng.Font.Strikethrough Then
      xOut = xOut + pRng.Value
      End If
      Next
      ExcStrike = xOut
      End Function
      [/b]