2017-09-02 85 views
0

我用這個公式來計算的話衝在過去的30天,但在一個新行添加在底部的範圍沒有發生變化。更改COUNTIF範圍內自動

如何更改公式,以便在將新行是在底部的範圍自動調節添加?要檢查的行數始終爲30.

=COUNTIF(D2433:D2463, "Red") 
+0

1)數據中是否有空白行?即標題行,然後是一個空白的間隔行,那麼你的數據? 2)最後一個條目下面的所有單元格一直到行1048576爲空? 3)你的數據是從第2433行開始還是僅僅是一個例子? –

回答

0

使用以下命令:

=COUNTIF(OFFSET($D$2433,0,0,30,1),"Red") 

的參考文獻使用了$ d $ 2433至$ d $ 2463計數31,如果你需要在上述公式中30至31
偏移31的變化將在$ d開始$ 2433而在同一列倒數行
COUNTIF將計算,如果紅

更新
如果在列d只插入數據進行計數,你可以使用:

=COUNTIF(OFFSET(INDIRECT("$D$"&MAX(IF($D:$D<>"",ROW($D:$D),0))),0,0,-30,1),"Red") 

這是一個數組公式按按Ctrl + + 輸入,而不是僅僅輸入
新配方會發現在列d中最後一個非空行,然後間接會糾正公式自動

+0

@ ian0411 - 您的公式計算COL D中所有紅色實例,我只需計算最後30個COL中的紅色實例。而且我還需要公式在底部添加新行後儘快更改範圍。例如,添加行D2464時,公式將更改爲在30行範圍內包含行D2464。謝謝。 –

+0

@ yass-這不會按需要工作。當一個新行添加到底部時,我需要將公式更改爲2434,以便只計算最後30行。謝謝。 –

+0

我已經測試了所有的公式,發現只有yass的工作,仍然有一點修改。我已將30天定義爲負數(-30),並將範圍更改爲$ 2463美元。 –

0

您需要相對單元格引用。你可以用

=OFFSET() 

功能。

1

另一種技術是使用動態命名範圍

  1. Formula > Name Manager > New:第一提供一個名稱,然後插入下列公式Referes to字段。也看到圖片。

=INDEX(Sheet1!A:A,1):INDEX(Sheet1!A:A,INDEX(MAX((Sheet1!$A:$A<>"")*(ROW(Sheet1!A:A))),0))

這應該給你一個系列,如$A$1:$A$300取決於其中最後一個非空單元格的。

  • 現在要評估的單元格,添加以下公式:
  • =COUNTIF(rng,"red")

    請注意rng的是,你應該改變的命名範圍你想使用的名字。

    這將找到的最後一個單元,甚至空白單元格的工作。如果您有任何問題,請嘗試讓我知道。

    enter image description here

    +0

    @Forward Ed - 這不起作用。 –

    +0

    我不確定你的範圍在哪裏(一列,一行或一個區域),但你總是可以改變Sheet1!A:A在公式中只包含你想要覆蓋的區域。但它只適用於一列或讓我知道,我可以爲你更新公式。此外,如果有人必須向下滾動到第2433行才能找到答案,您可能需要重新考慮設計。 – ian0411

    +0

    @CamberraCacaitA,好吧,我很困惑。你的意思是我的方法行不通或者Forward Ed提供的方法嗎?我測試了代碼,它按預期工作。它也處理列中的空白單元格。但是,如果我缺少您想實施的任何標準,請告訴我。 – ian0411

    0
    =COUNTIF(INDEX(D:D,AGGREGATE(14,6,ROW(D:D)/--((D:D)<>""),1)-30):INDEX(D:D,AGGREGATE(14,6,ROW(D:D)/--((D:D)<>""),1)),"Red") 
    

    條件:

    還有最後一排下的所有行必須爲空白 不能有最後30行內的任何空白行或您的計數可能會關閉。

    這是一個類似數組的函數。如果使用全範圍引用,則每次聚合函數引用完整列範圍時,都會檢查1048576個單元格。因此,如果你使用公式很多,你可能會陷入困境,如果你只使用它幾次,你可能會確定。