Cruce de Llamadas telefónicas en dos columnas

Hola, agradecería ayuda con el siguiente problema, tengo una hoja con dos columnas una donde se almacenan los números que efectúan llamadas (llamadas salientes) y otra donde se almacena los números que reciben la llamada (Llamadas destino) y la idea es detectar con macro, vb o tabla dinámica que números se llaman entre si, osea si un numero de la columna llamadas salientes recibe también llamadas de los números de la columna llamadas destinos y totalice el numero de llamadas entre si, ejemplo:
Llamadas Salientes Llamadas Destino
04143889999 04155556677
04124445566 04167778899
04143889999 04155556677
04155556677 04143889999
El numero 04143889999 llama 2 veces al 04155556677 y este a su vez lo llama 1 vez,
he intentado con tabla dinámica pero solo logro que me agrupe los números que llaman a un mismo numero pero no si este numero los llama también.
Espero haberme explicado bien y Gracias de antemano
Saludos
Ale

1 Respuesta

Respuesta
1
Por lo que veo las llamadas salientes y entrantes forman pareja en las dos columnas que voy a dar por hecho que son A y B.
Lo que pretendes es contar esas parejas tanto estén los números en saliente o en entrantes.
Bien, te explico, pulsas Alt+F11 y en la ventana que aparece en la columna izquierda pulsas con el botón derecho y eliges insertar módulo, en la ventana en blanco que aparece a la derecha pegas esta macro:
Sub Contar()
Dim numEntrante As String
Dim numSaliente As String
Dim celda As String
Range("A1").Select
Do While ActiveCell.Value <> ""
celda = ActiveCell.Address
numEntrante = ActiveCell.Value
numSaliente = ActiveCell.Offset(0, 1).Value
'Ahora repasamos todo el rango de celdas y contamos las veces que esta pareja se repite
contador = 0
Do While ActiveCell.Value <> ""
If ActiveCell.Value = numEntrante And ActiveCell.Offset(0, 1).Value = numSaliente Then
contador = contador + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
MsgBox "El número " & numEntrante & " a llamado a " & numSaliente & ", " & contador & " llamadas"
Range(celda).Select
numEntrante = ActiveCell.Value
numSaliente = ActiveCell.Offset(0, 1).Value
'Ahora repasamos todo el rango de celdas y contamos las veces que esta pareja se repite
contador = 0
Do While ActiveCell.Value <> ""
If ActiveCell.Value = numSaliente And ActiveCell.Offset(0, 1).Value = numEntrante Then
contador = contador + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
MsgBox "El número " & numEntrante & " a recibido de " & numSaliente & ", " & contador & " llamadas"
Range(celda).Select
ActiveCell.Offset(1, 0).Select
celda = ActiveCell.Address
Loop
End Sub
Te mostrará todos las veces que los numero se llaman entre si primero si ha llamado y después si ha recibido.
Si necesitas algo me lo pides.
>Un saludo
>Julio
Hola Julio
Muchas gracias por tu respuesta lo probé y funcionó, solo que hay un detalle que recontea las parejas de llamadas ya analizadas, osea la 1ra vez da el total de llamadas entre ambos números (salientes y entrantes) en todo el documento, pero cuando llega al otro registro donde aparecen de nuevo los dos números, los vuelve a contar restándole la anterior y así hasta que llega a 1 llamada entre esos dos números. La otra es ver si en vez de mostrarlo en un cuadro de mensaje se puede reflejar en una hoja nueva con 4 campos (numsaliente; cantidadsalientes;numentrante; cantidadresponde).
Sinceramente muchas gracias y disculpa la repregunta
Saludos
Ale
Efectivamente eso ocurre, pero si tu lista es muy extensa y las llamadas se vuelven a producir va a ser largo de comparar. Si en la posición 10 el numero 1 llama al 2 y esto vuelve a ocurrir en la posición 200 fíjate para pasar a una variable todos los datos. En fin como es larga para escribirla aquí ponme un correo y te envío la macro
>Un Saludo
>Julio
Hola Julio
Gracias de nuevo mi correo es [email protected]
Saludos
Ale
Ya te lo he enviado
>Un saludo
>Julio
PD: Puntúa y finaliza la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas