2014-09-02 51 views
1

我希望計數是連續的相同值的頻率。該值必須佔據至少兩個單元格,並且必須彼此相鄰。MS Excel:計算空白單元格之間的相似值的頻率

我想在這裏發佈圖片,但我沒有足夠的聲譽。無論如何,截圖可以在這裏找到:https://www.dropbox.com/s/1em9ltssc1ruw0u/stackOverflow_excelIssue_Countfrequencyofsimilarvaluesinbetweenblankcells.jpg?dl=0

J7:BE7是一個人將鍵入的值 - 它對應的時間,在30分鐘的增量。

在同一張紙上的不同部分,在這種情況下,DD7:EY7是我運行公式的地方。

這個公式是上(第一列)DD7 - COUNTIF(J7:$ BE7,J7)

這個公式是(最後一列)EY7 - COUNTIF(BE7:$ BE7,BE7)

DD7上的公式計算J7上的值出現在第7行從J列到BE的次數。

情況1:如果「橙色」只會出現一次,則此公式非常適用。以我的例子K7:L7。

情況2:問題是當「橙色」再次出現在非連續的單元上時。我的意思是,K7:L7出現「橙色」,然後再次出現在P7:Q7上。

對於方案1,檢查K7:L7的公式結果爲2,這是所需的值。

對於方案2,檢查K7:L7時公式的結果是4,因爲它也會計算出現在K7:L7上的「橙色」。

我希望如果M7具有不同的值,計數將停止。 K7:L7包含「橙色」,M7:N7包含「蘋果」。或者如果中間有一個空單元,計數將停止,如U7:V7包含「guava」,並且T7爲空,則X7:Y7再次具有「番石榴」。

果實可能佔據每行二至四十八列。

我知道這是羅嗦,但我找不到其他方法來解釋它,英語不是我的第一個口舌。

謝謝您的高級。

〜標記

+0

您需要提供您的數據輸入和期望輸出的一個更好的例子。由於截圖中沒有單元格引用,並且沒有顯示期望的結果,所以您會依賴於猜測您真正想要的內容。請閱讀幫助主題以瞭解如何提出一個好問題,以及如何提供示例。 – 2014-09-02 23:16:12

回答

2

我同意,這個問題可能已經措辭好一點,但我想我明白你在找什麼。我想不出用內置的Excel函數做這件事的好方法,但是如果你願意稍微使用一下VBA,你可以製作一個自定義函數,你可以像使用普通函數一樣使用它在Excel中。你只需要添加像這樣到一個新的模塊:

Public Function NumInARow(r As Range) As Variant 
Dim i As Integer 
If r.Value = "" Or r.Value = Empty Then 
    NumInARow = "" 
    Exit Function 
End If 
If r.Column > 1 Then 
    If r.Offset(0, -1).Value = r.Value Then 
     NumInARow = "" 
     Exit Function 
    End If 
End If 
i = 1 
Do While r.Offset(0, i).Value = r.Value 
    i = i + 1 
Loop 
NumInARow = i 
End Function 

此功能看着你作爲參數傳遞的細胞,並着眼於細胞到右邊,直到它找到一個不同的和計數它遇到的相同單元的數量。例如,如果單元格A1-C1全部爲「Bob」,而D1爲空白或具有不同的值,則如果將=NumInARow(A1)放入單元格A2中,則A2將顯示值3.您可以沿整個單元格拖動該公式。如果它所查看的單元格不是序列中的第一個單元格,或者它正在查看的單元格是空白,則該公式將單元格留空。例如,如果從上述場景中將=NumInARow(B1)放入單元格B2中,則B2會顯示爲空白,因爲第二個「Bob」不是序列中的第一個。我希望別人可以想辦法用內置的Excel函數來做到這一點,但這可能是您的一個選擇。這裏有一篇WikiHow文章,向您展示如何製作/放置用戶定義的函數。如果你已經有了代碼,這很簡單。

http://www.wikihow.com/Create-a-User-Defined-Function-in-Microsoft-Excel

+0

謝謝。我會在今天晚些時候嘗試。 我一直希望有一個非VBA的解決方案,但如果沒有別的,那麼VBA就是這樣。=) 我會讓你知道它是怎麼回事。 – 2014-09-03 21:25:45

+1

這給了我準確的結果,我一直在尋找。 非常感謝!你非常有幫助。我住在菲律賓馬尼拉附​​近,我會給你買一瓶啤酒。 – 2014-09-03 21:39:32

+1

儘管一個大問題,如果第1行更改(添加或刪除值),第2行(numinarow公式)不會更新 - 除非我再次複製並粘貼公式。 我需要第2行更新,如果任何更新第1行執行。 在我的項目中,用戶將從列J:BE中輸入值,並且numinarow(您的公式)位於同一行上,但不同列DD:EY。 – 2014-09-03 21:51:48

1

我接受的答案 - 使用式 - 是從G-曼的superuser.com

螺紋可以此鏈接上找到:

MS Excel中:計數頻率在空白單元格

之間https://superuser.com/questions/806427/ms-excel-count-frequency-of-similar-values-in-between-blank-cells


這是逐字的他的話相似的價值觀:


如果我正確理解了您的請求,則以下公式將起作用。我的解決方案需要一個虛擬列和一個助手行,但它們可以隱藏。此外,您可以通過一點工作來消除虛擬列,並且可以將幫助行放在任何地方。

我假設你的客戶端名稱在第2行。我將使用列A作爲虛擬列,所以約會數據從列B開始。第3行將成爲助手行。在細胞B3,輸入公式:

= IF(B2 = 「」, 「」,IF(B2 <> C2,1,C3 + 1))

含義:

如果B2 = 「」,此時隙的客戶端名稱爲空,所以這是一個空閒時隙,因此顯示爲空白。 否則,如果B2 <> C2,則此時隙和下一個時隙具有不同的客戶端(C2可能不會爲空),因此這是此約會的最後一個時隙。將其表示爲1.否則向後計數,因此該約會的倒數第二個時隙爲2,倒數第三個時隙爲3等。 在單元格B4中,輸入:

= IF A2 <> B2,B3,「」)

如果A2 <> B2,這個時隙和前一個有不同的客戶端(A2可能不是空白),所以這是這個約會的第一個時隙。顯示B3,其顯示在該預約中有多少個時隙(半小時)。否則,顯示空白。

你可以在我提供的鏈接中找到更多答案。

謝謝大家的幫助。

最好的問候,

〜標記

相關問題