Conciliar un libro Contable

Buena tarde, necesito su ayuda
Tengo un hoja con datos en A, B, C y DE, en A tengo el departamento, en B tengo un # referencia, en C tengo Cargo y en DE tengo abonos.
Necesito identificar dentro del rango de A, las referencias iguales en B y que compare si C y DE son iguales, para que me coloque una leyenda en E de Conciliado, si lo encontró o Pendiente, en caso de no encontrarlo.
Actualmente hago esto por medio de Filtros, pero necesito realizarlo para un libro de 25000 registros.
Espero puedan ayudarme!

1 Respuesta

Respuesta
1
Supongo que ABCD son columnas
No entendí muy bien lo de Necesito identificar dentro del rango de A, las referencias iguales en B, se supone que en A tienes el departamento y en B las referencias, entonces no pueden haber datos iguales en A y B.
Se puede sacar las que son iguales en B y condicionarlas con C y DE para que arroje Conciliado o Pendiente, pero entonces A que onda... ¿qué es lo que se debe encontrar? ¿El departamento en B? ¿Deparamento es un numero letra o que?
Perdón que no te comprenda del todo bien, pero si me explicaras te podría ayudar
Tienes razón el planteamiento no fue claro.
En la columna A tengo departamentos por ejemplo: "Mercados", "Ventas", "sistemas", etc., en la columna B tengo un numero de referencia que se asigna a cada Gasto, en C solo tengo datos cuando el gasto es un Cargo, en DE solo tengo datos cuando es un Abono.
Necesito Identificar por ejemplo: del los movimientos en la cuneta de "Mercados" columna A, cuales tienen en la columna B el mismo numero de referencia, y cuando localice 2 con la misma referencia identifique si el monto en la columna C "Cargos" de la primera, corresponde con el monto en la columna DE "Abonos"
Espero haberlo planteado mejor, ¿crees poderme ayudar?
Es un poquito más de lo que pensaba, pero claro que puedo ayudarte...
Un favor... mandame el archivo a [email protected], si es información confidencial a algo así manda datos falsos o inventados (necesito saber como están ordenados tus datos exactamente, pues lo que necesitas es una macro).
Te lo hago llegar, muchas gracias!
Ya lo envíe por correo,
en la primer celda:
=si(si(c2=0,d2,c2)=si.error(buscarv(b2,b3:$d$55,si(buscarv(b2,b3:$d$55,2,falso)=0,3,2),falso),"pendiente"),"conciliado",si.error(buscarv(b2,b3:$d$55,si(buscarv(b2,b3:$d$55,2,falso)=0,3,2),falso),"pendiente"))
en las posteriores:
=si.error(buscarv(b3,$b$2:e2,4,falso),si(si(c3=0,d3,c3)=si.error(buscarv(b3,b4:$d$55,si(buscarv(b3,b4:$d$55,2,falso)=0,3,2),falso),"pendiente"),"conciliado",si.error(buscarv(b3,b4:$d$55,si(buscarv(b3,b4:$d$55,2,falso)=0,3,2),falso),"pendiente")))
Ya lo recibí, gracias
Efectivamente me funciona el resultado que me enviaste, pero no tengo la actualización a 2007, ¿se podrá hacer algo para 2003?
Saludos.
Envío macro por correo...
Sheets(1).Range("B2").Select
If ActiveCell.Offset(0, 1) = 0 Then
valorceldaactual = ActiveCell.Offset(0, 2)
Else
valorceldaactual = ActiveCell.Offset(0, 1)
End If
buscardesde = ActiveCell.Offset(1, 0).Address
buscarhasta = Range(buscardesde).End(xlDown).Address
If Sheets(1).Range(buscardesde, buscarhasta).Find(ActiveCell) Is Nothing Then
ActiveCell.Offset(0, 3) = "PENDIENTE"
Else
celdacoincidencia = Sheets(1).Range(buscardesde, buscarhasta).Find(ActiveCell).Address
If Range(celdacoincidencia).Offset(0, 1) = 0 Then
valorcoincidencia = Range(celdacoincidencia).Offset(0, 2)
Else
valorcoincidencia = Range(celdacoincidencia).Offset(0, 1)
End If
If valorceldaactual = valorcoincidencia Then
ActiveCell.Offset(0, 3) = "CONCILIADO"
End If
End If
ActiveCell.Offset(1, 0).Select
While ActiveCell <> ""
celdaactual = ActiveCell.Address
If ActiveCell.Offset(0, 1) = 0 Then
valorceldaactual = ActiveCell.Offset(0, 2)
Else
valorceldaactual = ActiveCell.Offset(0, 1)
End If
buscardesde1 = Range("B2").Address
buscarhasta1 = ActiveCell.Offset(-1, 0).Address
buscardesde = ActiveCell.Offset(1, 0).Address
buscarhasta = Range(buscardesde).End(xlDown).Address
If Not Sheets(1).Range(buscardesde1, buscarhasta1).Find(ActiveCell) Is Nothing Then
Sheets(1).Range(buscardesde1, buscarhasta1).Find(ActiveCell).Offset(0, 3).Select
Selection.Copy
Range(celdaactual).Offset(0, 3).PasteSpecial
Range(celdaactual).Select
ElseIf Sheets(1).Range(buscardesde, buscarhasta).Find(ActiveCell) Is Nothing Then
ActiveCell.Offset(0, 3) = "PENDIENTE"
Else
celdacoincidencia = Sheets(1).Range(buscardesde, buscarhasta).Find(ActiveCell).Address
If Range(celdacoincidencia).Offset(0, 1) = 0 Then
valorcoincidencia = Range(celdacoincidencia).Offset(0, 2)
Else
valorcoincidencia = Range(celdacoincidencia).Offset(0, 1)
End If
If valorceldaactual = valorcoincidencia Then
ActiveCell.Offset(0, 3) = "CONCILIADO"
End If
End If
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas