
Tengo una hoja de cálculo con miles de conjuntos de números. Es decir, hay diez columnas y cada columna tiene un número, y hay miles de filas de estos números.
Lo que quiero hacer es comprobar si los números de cada fila aumentan o no. Por ejemplo, imagina que esta es la fila uno (donde cada número es una columna separada):
13. 17. 25. 37. 39. 40. 53. 61. 68. 71
Como puede ver, todos los números están aumentando. Ahora imaginemos que esta es la fila dos:
13 5. 3. 18. 34. 17. 49. 83. 63. 71
En este caso, los números inicial y final son los mismos que los del primer conjunto de números, pero el camino seguido es bastante diferente.
Lo que me gustaría es una fórmula para evaluar qué tan continuo es el crecimiento.
¿Algunas ideas?
Respuesta1
=IFERROR(IFS(B6<A6,FALSE,C6<B6,FALSE,D6<C6,FALSE,E6<D6,FALSE,F6<E6,FALSE,G6<F6,FALSE,H6<G6,FALSE,I6<H6,FALSE,J6<I6,FALSE),TRUE)
Creo que esa sería la forma más fácil de hacerlo.
IFS compara cada número con el número anterior; si es menor que el anterior, devolverá FALSO.
Si todos los números son mayores que el número anterior, entonces IFS no producirá una salida, lo que provocará un error NA.
ISERROR convertirá el error NA en VERDADERO, lo que significa que todos los números están aumentando.
Para obtener el recuento de cuántos números son mayores que el número anterior en la secuencia:
=COUNTIF(B11,">" & A11)+COUNTIF(C11,">" & B11)+COUNTIF(D11,">" & C11)+COUNTIF(E11,">" & D11)+COUNTIF(F11,">" & E11)+COUNTIF(G11,">" & F11)+COUNTIF(H11,">" & G11)+COUNTIF(I11,">" & H11)+COUNTIF(J11,">" & I11)
Cada recuento compara el número actual con el número anterior y solo contará si el número es mayor, luego suma todos los recuentos.
Respuesta2
Puede utilizar fórmulas matriciales para lograr esto:
Suponiendo que sus datos están en A1:J1
, ingrese la siguiente fórmula en una celda =AND(B1:J1>A1:I1)
y presione Ctrl+ Shift+ Enterpara crear una fórmula matricial; observe que Excel ajustará la fórmula {}
automáticamente (¡no puede ajustarla manualmente!). En Google Sheets, puede usar ArrayFormula
dentro de la AND
función en lugar del acceso directo de Excel: AND(ArrayFormula(B1:J1>A1:I1))
.
Esto realizará cálculos por elementos >
y luego verificará que todos sean verdaderos. Observe que los dos rangos están desplazados por una celda, pero tienen la misma longitud, por lo que B1
y A1
se compararán, se compararán, C1
y B1
así sucesivamente. Luego, se pasará la matriz resultante para AND
verificar que todas sean verdaderas.
Una vez que se inserta la fórmula matricial para la primera fila, si tiene varias filas, simplemente puede arrastrar la fórmula hacia abajo para cada fila.
Alternativamente, si por alguna razón no desea utilizar matrices, puede hacerlo sin agregar otro rango de celdas debajo o al lado (o en cualquier lugar para ser honesto) de la lista de números. En este rango adicional de celdas, puede hacer la comparación de cada celda.
Con los datos comenzando en A1
, luego, en digamos la celda B2
, agregue la fórmula (B1 > A1)
, luego arrastre la fórmula para que coincida con el ancho de los datos (las fórmulas actualizarán las referencias automáticamente). Finalmente, solo necesita verificar si todas esas celdas son verdaderas, lo cual se puede hacer con AND(B2:J2)
.
Respuesta3
Dado que etiquetó hojas de cálculo de Google, también puede usar un ArrayFormula
para simplificar esto en una fórmula:
=AND(ARRAYFORMULA(B1:J1>A1:I1))
Puede ajustar J1
y I1
en consecuencia si cambia el número de filas.
Si todas las columnas de la derecha están en blanco, puede hacerlo, =AND(ARRAYFORMULA((B1:Z1>A1:Y1)+(ISBLANK(B1:Z1))))
lo que funcionará automáticamente en hasta 26 columnas siempre que las siguientes columnas estén en blanco.
Respuesta4
Estas respuestas funcionarán si tienesfórmulas de matriz dinámicadisponible en su versión de Excel.
Respuesta nueva y más sencilla:
Puede utilizar una fórmula de matriz dinámica para comprobar si cada elemento es estrictamente menor que un elemento de otra matriz.
=AND((A1:I1) < (B1:J1))
Esto es agradable y simple y básicamente dice, es A1 < B1
y B1 < C1
así sucesivamente hasta el final de la matriz.
El truco es que compensamos las dos listas para comparar cada elemento con el siguiente valor en la matriz original.
Entonces estamos comparando A1:I1
con B1:J1
: la primera matriz es desde el primer elemento hasta el penúltimo, y la segunda matriz es desde el segundo elemento hasta el último.
Respuesta original:
Si se permite que la lista esté en >=
orden (a diferencia de estrictamente >
), es decir, si 1, 2, 3, 3, 4
también es válida.
Puede ordenar los valores y compararlos con los valores originales.
Si los valores originales están en orden ascendente, la lista ordenada será igual a la lista original.
Esto ordenará por columnas, comparará cada valor y luego AND()
la lista generará un único resultado:
=AND(SORT(A1:J1,1,1,TRUE)=A1:J1)
Si está comparando una sola columna de datos, entonces es un poco más simple:
=AND(SORT(A1:A10)=A1:A10)