¿Cómo compruebo valores iguales y eliminar por determinada condición?
Tengo este archivo
y esta condicion =SI(A2=A3,Y(B2="ACTIVE"),"ELIMINAR")
¿Lo qué hace es comprobar si la serie es igual y si en el STATUS tiene ACTIVE y OVERDUE que elimine el OVERDUE?
Pero ¿cómo puedo hacerla para que elimine si en STATUS el valor es igual, es decir, si la serie se repite y si en STATUS se repite ACTIVE, que elimine uno?
1 Respuesta
H o l a:
Antes de realizar la fórmula tengo algunas dudas.
1. Siempre están en pares, es decir, en tu ejemplo la celda A2 y A3 son iguales, A4 y A5, A6 y A7, etc.
2. Entonces si son pares, hay que comparar A2 con A3, A4 con A5. etc.
3. Puedes poner que esperas de resultado, suponiendo los siguientes casos:
A2 A3
Active overdue
Active active
Overdue overdue
Overdue active
4. Si la condición SI se cumple, entonces quieres el texto "ELIMINAR". ¿Si no se cumple qué esperas de resultado?
'
Espero tus comentarios en ese orden.
'
S a l u d o s
H o l a:
Antes de realizar la fórmula tengo algunas dudas.
1. Siempre están en pares, es decir, en tu ejemplo la celda A2 y A3 son iguales, A4 y A5, A6 y A7, etc.
R: Si
2. Entonces si son pares, hay que comparar A2 con A3, A4 con A5. etc.
R: En ocasiones vienen en tríos.
3. Puedes poner que esperas de resultado, suponiendo los siguientes casos:
4. Si la condición SI se cumple, entonces quieres el texto "ELIMINAR". ¿Si no se cumple qué esperas de resultado?
Dejo la imagen con un ejemplo y la fórmula que llevo hecha. Saludos y gracias.
H o l a:
Entonces si a veces son 3, hay que preparar la fórmula para las combinas de 3 celdas.
Por lo tanto, me tienes que decir que esperas para cada combinación, en este caso serían 8 combinaciones cuando 3, y 4 combinaciones cuando son 2.
Entonces me tienes que poner, qué resultado esperas para cada combinación:
A2 A3 A4
Active Overdue
Active Active
Overdue Overdue
Overdue Active
Active Active Active
Active Active Overdue
Active Overdue Active
Overdue Active Active
Overdue Overdue Overdue
Overdue Overdue Active
Overdue Active Overdue
Active Overdue Overdue
En total tienes que poner 12 resultados, serían 12 IF anidados, sería más factible solucionarlo con una macro; pero ya sea una macro o una fórmula tienes que identificar por cada combinación el resultado que esperas.
'S a l u d o s
Confírmame las siguientes combinaciones:
SN Status
772 OVERDUE
772 ACTIVE
SN Status
776 OVERDUE
776 ACTIVE
776 ACTIVE
SN Status
778 OVERDUE
778 OVERDUE
778 ACTIVE
SN Status
779 OVERDUE
779 Active
779 Overdue
Si alguna de las combinaciones que me diste no es correcta, entonces envíame nuevamente toda la imagen con la actualización.
H o l a:
Te anexo una macro para poner los valores:
Sub ActiveOverdue() 'Por.Dante Amor c = "A" ant = Cells(3, "A") k = 1 u = Range("A" & Rows.Count).End(xlUp).Row Range("C3:C" & u).ClearContents ' n = 0 ini = 3 For i = 3 To u + 1 If ant = Cells(i, "A") Then n = n + 1 fin = i a = Cells(ini, "B") b = Cells(ini + 1, "B") c = Cells(ini + 2, "B") Else Call combinacion(ini, fin, n, a, b, c) n = 1 ini = i fin = i End If ant = Cells(i, "A") Next MsgBox "Proceso Terminado", vbInformation, "NUMERACIÓN" End Sub ' Sub combinacion(ini, fin, n, a, b, c) 'Por.Dante Amor If n = 2 Then If a = "ACTIVE" And b = "OVERDUE" Then Cells(ini, "C") = "ok" Cells(fin, "C") = "eliminar" End If If a = "ACTIVE" And b = "ACTIVE" Then Cells(ini, "C") = "ok" Cells(fin, "C") = "eliminar" End If If a = "OVERDUE" And b = "OVERDUE" Then Cells(ini, "C") = "ok" Cells(fin, "C") = "eliminar" End If If a = "OVERDUE" And b = "ACTIVE" Then Cells(ini, "C") = "eliminar" Cells(fin, "C") = "ok" End If Else If a = "ACTIVE" And b = "ACTIVE" And c = "ACTIVE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "eliminar" End If If a = "ACTIVE" And b = "ACTIVE" And c = "OVERDUE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "eliminar" End If If a = "ACTIVE" And b = "OVERDUE" And c = "ACTIVE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "eliminar" End If If a = "OVERDUE" And b = "ACTIVE" And c = "ACTIVE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "eliminar" End If If a = "OVERDUE" And b = "OVERDUE" And c = "OVERDUE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "eliminar" End If If a = "OVERDUE" And b = "OVERDUE" And c = "ACTIVE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "ok" End If If a = "OVERDUE" And b = "ACTIVE" And c = "OVERDUE" Then Cells(ini, "C") = "eliminar" Cells(ini + 1, "C") = "ok" Cells(fin, "C") = "eliminar" End If If a = "ACTIVE" And b = "OVERDUE" And c = "OVERDUE" Then Cells(ini, "C") = "ok" Cells(ini + 1, "C") = "eliminar" Cells(fin, "C") = "eliminar" End If End If End Sub
Sigue las Instrucciones para un botón y ejecutar la macro
- Abre tu libro de Excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Ahora para crear un botón, puedes hacer lo siguiente:
- Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
- Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
- Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
- Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: ActiveOverdue
- Aceptar.
- Para ejecutarla dale click a la imagen.
‘
- Compartir respuesta