spreadsheet - operadores - Hoja de cálculo de Google: cuente filas con valor no vacío
hoja de calculo google drive (8)
En una hoja de cálculo de Google: ¿cómo puedo contar las filas de un área determinada que tienen un valor? Todas las pistas sobre esto que encontré hasta ahora conducen a fórmulas que cuentan las filas que tienen un contenido no vacío (incluida la fórmula), pero una celda con = IF (1 = 2; ""; "") // Muestra un vacío la célula también cuenta.
¿Cuál es la solución para esta simple tarea?
Gracias de antemano
Esto es lo que creo que es la mejor solución hasta ahora:
=CountIf(ArrayFormula(range<>""),TRUE)
He aquí por qué en 3 sencillos pasos
Paso 1: Simple As Pie - Añadir columna extra
La respuesta de eniacAvenger arrojará la solución correcta sin preocuparse por los casos extremos , ya que =A1<>""
parece llegar al valor correcto de falsedad / falsedad en función de cómo pensamos intuitivamente en celdas en blanco, espacios en blanco vírgenes o espacios en blanco creados.
Entonces imagina que tenemos estos datos y queremos el conteo de espacios en blanco en B2:B6
:
| | A | B | C |
|---|-------------|-------|---------|
| 1 | Description | Value | B1<>"" |
| 2 | Text | H | TRUE |
| 3 | Number | 1 | TRUE |
| 4 | IF -> "" | | FALSE |
| 5 | IF -> Text | h | TRUE |
| 6 | Blank | | FALSE |
Si confiamos en la Columna C , podríamos obtener el recuento de valores en B como este:
=COUNTIF(C2:C6,True)
Paso 2: utilice FormulaArray
para crear dinámicamente columna adicional
Sin embargo, el comentario de consideración es válido: si necesita una columna adicional, a menudo puede lograr el mismo objetivo con un ArrayFormula
que puede crear una columna en la memoria sin consumir espacio en la hoja.
Entonces, si queremos crear C dinámicamente, podemos usar una fórmula de matriz como esta:
=ArrayFormula(B2:B6<>"")
Si simplemente lo colocamos en C2, crearía la matriz vertical con un solo trazo de la pluma:
| | A | B | C |
|---|-------------|-------|--------------------------|
| 1 | Description | Value | =ArrayFormula(B2:B6<>"") |
| 2 | Text | H | TRUE |
| 3 | Number | 1 | TRUE |
| 4 | IF -> "" | | FALSE |
| 5 | IF -> Text | h | TRUE |
| 6 | Blank | | FALSE |
Paso 3: Cuente los valores en columna dinámica
Pero con eso resuelto, ya no necesitamos que la columna simplemente muestre los valores.
ArrayFormula
se resolverá en el siguiente rango: {True,True,False,True,False}
.
CountIf
solo toma en cualquier rango y en este caso puede contar el número de valores True.
Así que podemos ajustar CountIf
alrededor de los valores producidos por ArrayFormula
esta manera:
=CountIf(ArrayFormula(B2:B6<>""),TRUE)
Otras lecturas
Las otras soluciones en este hilo son demasiado complejas o fallan en casos particulares que he enumerado en esta hoja de prueba:
Hoja de cálculo de Google - Prueba CountA - Demostración
Para ver por qué CountA
funciona de la manera menos CountA
, vea mi respuesta aquí
Dado el rango A:A
, Id sugiero:
=COUNTA(A:A)-(COUNTIF(A:A,"*")-COUNTIF(A:A,"?*"))
El problema es que COUNTA sobrescribe exactamente el número de celdas con cadenas de longitud cero ""
.
La solución es encontrar un recuento de exactamente estas células. Esto se puede encontrar buscando todas las celdas de texto y restando todas las celdas de texto con al menos un caracter
- COUNTA (A: A): celdas con valor, incluyendo
""
pero excluyendo celdas verdaderamente vacías - CONTAR.SI (A: A, "*"): celdas reconocidas como texto, incluido
""
pero excluyendo celdas realmente en blanco - CONTEO (A: A, "? *"): Celdas reconocidas como texto con al menos un caracter
Esto significa que el valor COUNTIF(A:A,"*")-COUNTIF(A:A,"?*")
Debe ser el número de celdas de texto menos la cantidad de celdas de texto que tienen al menos un carácter, es decir, el recuento de celdas que contienen exactamente ""
Haga otra columna que determine si la celda a la que se hace referencia está en blanco usando la función "CountBlank". Luego use contar en los valores creados en la nueva columna "CountBlank".
Para mí, ninguna de las respuestas funcionó para los rangos que incluyen tanto las células vírgenes como las que están vacías basadas en una fórmula (p. Ej. =IF(1=2;"";"")
)
Lo que lo resolvió para mí es esto:
=COUNTA(FILTER(range, range <> ""))
Resuelto usando una solución que encontré en Google por Yogi Anand: https://productforums.google.com/d/msg/docs/3qsR2m-1Xx8/sSU6Z6NYLOcJ
El siguiente ejemplo cuenta el número de filas no vacías en el rango A3: C, recuerde actualizar ambos rangos en la fórmula con su rango de interés.
=ArrayFormula(SUM(SIGN(MMULT(LEN(A3:C), TRANSPOSE(SIGN(COLUMN(A3:C)))))))
También asegúrese de evitar las dependencias circulares, sucederá si, por ejemplo, cuenta el número de filas no vacías en A: C y coloca esta fórmula en la columna A o C.
Una solución más simple que funciona para mí:
=COUNTIFS(A:A;"<>"&"")
Cuenta números, cadenas, fechas, etc. que no están vacíos
Acabo de usar =COUNTIF(Range, "<>")
y contó las celdas no vacías para mí.
=counta(range)
counta
: "Devuelve un recuento del número de valores en un conjunto de datos"Nota:
CountA
considera que""
es un valor . Solo las celdas que están en blanco (presione eliminar en una celda para dejar en blanco) no se cuentan.Asistencia de Google: https://support.google.com/docs/answer/3093991
countblank
: "Devuelve el número de celdas vacías en un rango determinado"Nota:
CountBlank
considera que tanto las celdas en blanco (presione borrar para poner en blanco una celda) como las celdas que tienen una fórmula que devuelve""
para ser celdas vacías .Asistencia de Google: https://support.google.com/docs/answer/3093403
Si tiene un rango que incluye fórmulas que dan como resultado ""
, entonces puede modificar su fórmula de
=counta(range)
a:
=Counta(range) - Countblank(range)
EDITAR: la función es countblank
, no countblanks
, este último dará un error.