Count rows with not empty value

后端 未结 13 2425
梦毁少年i
梦毁少年i 2020-12-13 08:04

In a Google Spreadsheet: How can I count the rows of a given area that have a value? All hints about this I found up to now lead to formulas that do count the rows which hav

相关标签:
13条回答
  • 2020-12-13 08:23

    In Google Sheets, to count the number of rows which contain at least one non-empty cell within a two-dimensional range:

    =ARRAYFORMULA(
      SUM(
        N(
          MMULT(
            N(A1:C5<>""),
            TRANSPOSE(COLUMN(A1:C5)^0)
          )
          >0
        )
      )
    )
    

    Where A1:C5 is the range you're checking for non-empty rows.

    The formula comes from, and is explained in the following article from EXCELXOR - https://excelxor.com/2015/03/30/counting-rows-where-at-least-one-condition-is-met/

    0 讨论(0)
  • 2020-12-13 08:28

    You can define a custom function using Apps Script (Tools > Script editor) called for example numNonEmptyRows :

    function numNonEmptyRows(range) {
      Logger.log("inside");
      Logger.log(range);
      if (range && range.constructor === Array) {
        return range.map(function(a){return a.join('')}).filter(Boolean).length
      }
      else {
        return range ? 1 : 0;
      }
    }
    

    And then use it in a cell like this =numNonEmptyRows(A23:C25) to count the number of non empty rows in the range A23:C25;

    0 讨论(0)
  • 2020-12-13 08:32

    I just used =COUNTIF(Range, "<>") and it counted non-empty cells for me.

    0 讨论(0)
  • 2020-12-13 08:32

    Solved using a solution i found googling by Yogi Anand: https://productforums.google.com/d/msg/docs/3qsR2m-1Xx8/sSU6Z6NYLOcJ

    The example below counts the number of non-empty rows in the range A3:C, remember to update both ranges in the formula with your range of interest.

    =ArrayFormula(SUM(SIGN(MMULT(LEN(A3:C), TRANSPOSE(SIGN(COLUMN(A3:C)))))))
    

    Also make sure to avoid circular dependencies, it will happen if you for example count the number of non-empty rows in A:C and place this formula in the A or C column.

    0 讨论(0)
  • 2020-12-13 08:34

    Given the range A:A, Id suggest:

    =COUNTA(A:A)-(COUNTIF(A:A,"*")-COUNTIF(A:A,"?*"))
    

    The problem is COUNTA over-counts by exactly the number of cells with zero length strings "".

    The solution is to find a count of exactly these cells. This can be found by looking for all text cells and subtracting all text cells with at least one character

    • COUNTA(A:A): cells with value, including "" but excluding truly empty cells
    • COUNTIF(A:A,"*"): cells recognized as text, including "" but excluding truly blank cells
    • COUNTIF(A:A,"?*"): cells recognized as text with at least one character

    This means that the value COUNTIF(A:A,"*")-COUNTIF(A:A,"?*") should be the number of text cells minus the number of text cells that have at least one character i.e. the count of cells containing exactly ""

    0 讨论(0)
  • 2020-12-13 08:36

    A very flexible way to do that kind of things is using ARRAYFORMULA.

    As an example imagine you want to count non empty strings (text fields) you can use this code:

    =ARRAYFORMULA(SUM(IF(Len(B3:B14)>0, 1, 0)))
    

    What happens here is that "ArrayFormula" let you operate over a set of values. Using the SUM function you indicates "ArrayFormula" to sum any value of the set. The "If" clause is only used to check "empty" or "not empty", 1 for not empty and 0 otherwise. "Len" returns the length of the different text fields, there is where you define the set (range) you want to check. Finally "ArrayFormula" will sum 1 for each field inside the set(range) in which "len" returns more than 0.

    If you want to check any other condition, just modify the first argument of the IF clause.

    0 讨论(0)
提交回复
热议问题