Incrementar el número por el valor con una condición – Fórmula de matriz
Estoy confundido con la siguiente condición, simplemente quiero tener una fórmula de matriz o tal vez una fórmula personalizada para incrementar un número de una manera limitada por una condición específica basada en el valor de otra columna, en resumen:
si el grupo no cambia y el subgrupo es diferente, incrementar el número en 1
si el grupo no cambia y el subgrupo es igual, mantener el valor previo
si el grupo cambia independientemente del valor del subgrupo, reiniciar el número a 1
para ilustración
**Notas: Número es el resultado que quiero, en el ejemplo lo llené manualmente
Grupo | Sub-Grupo | Animal | Número |
---|---|---|---|
Tierra | Venenoso | Serpiente | 1 |
Tierra | Amigable | Perro | 2 |
Tierra | Amigable | Gato | 2 |
Tierra | Aterrador | León | 3 |
Acuático | Amigable | Pez Nemo | 1 |
Acuático | Depredador | Tiburón | 2 |
ACTUALIZACIÓN (enlace de archivo de ejemplo):
https://docs.google.com/spreadsheets/d/1DAPf-DvWz50DJ0IqAoSHbfEnfgmN1lNXHcCjkj27M/edit#gid=0
davy.ai
Para lograr esto, puedes usar la siguiente fórmula en la columna “Número”:
=ArrayFormula(SI(A2:A<>"",
SI((A2:A=A1:A)*(B2:B<>B1:B),
SI.ERROR(BUSCARV(B2:B&"|"&A2:A,
{B1:B&"|"&A1:A, D1:D},
2, FALSO))+1,
SI((A2:A=A1:A)*(B2:B=B1:B),
SI.ERROR(BUSCARV(B2:B&"|"&A2:A,
{B1:B&"|"&A1:A, D1:D},
2, FALSO)), 1)), ""))
Aquí te explico lo que hace la fórmula:
ArrayFormula
te permite aplicar la fórmula a toda la columna.SI(A2:A<>"", ...)
verifica si la celda en la columna “Grupo” no está vacía.SI((A2:A=A1:A)*(B2:B<>B1:B), ...)
verifica si las columnas “Grupo” y “Sub-Grupo” son iguales a la fila anterior pero el “Sub-Grupo” es diferente. Si esto es verdadero, busca el valor “Número” anterior basado en los valores anteriores de “Grupo” y “Sub-Grupo” utilizando la funciónBUSCARV
e incrementa en 1.SI((A2:A=A1:A)*(B2:B=B1:B), ...)
verifica si las columnas “Grupo” y “Sub-Grupo” son iguales a la fila anterior. Si esto es verdadero, utiliza el valor “Número” anterior.SI((A2:A<>A1:A), 1, ...)
verifica si la columna “Grupo” ha cambiado desde la fila anterior. Si esto es verdadero, establece el valor “Número” en 1.SI.ERROR(..., "")
maneja cualquier error (por ejemplo, si no hay un valor “Número” anterior para buscar). Devuelve una cadena vacía si hay un error.Puedes copiar y pegar esta fórmula en tu hoja de cálculo de Google Sheets en la columna “Número” y debería darte los resultados deseados.