Cómo puedo trabajar con estas cadenas de datos

Buenas noches Expertos
Cordial saludo

Estoy trabajando en excel 2007, tengo un conjunto de parejas con la siguiente denominación
DISTANCIA COSTO TOTAL
p[A1,J10]

cada componente de la pareja p representa las celdas con las filas y la columnas correspondientes. En consecuencia, la distancia debe ser igual a la diferencia entre columnas (10-1) más la diferencia entre filas (10-1), lo cual da como resultado una distancia de 18. Quisiera solicitar a ustedes el favor de indicarme cómo podría trabajar con estos valores para poder calcular las distancias a partir de la configuración planteada. De antemano mil gracias por su valiosa ayuda y colaboración.

Cordialmente,

Jimmy

1 respuesta

Respuesta
1

Podrías explicarme con un ejemplo real como tienes los datos ubicados en las celdas de excel y poner varias parejas de componentes y el resultado.

Saludos. Dam

Buenas tardes Experto

Cordial saludo

Trataré de explicar lo que necesito hacer, de antemano muchas gracias por el interés en ayudarme. Tengo un rango de celdas representadas en un conjunto de parejas como las que se muestran a continuación:

Variables
x[J10,A1]
x[A1,J10]
x[J1,A9]
x[J9,A1]
x[B1,I10]
x[B2,I9]
x[I10,A10]
x[J4,A6]
x[J8,A2]
x[B7,I4]
x[E3,F8]

Para el caso de la pareja x[J10,A1], la variable x representa dos celdas: la J10 y la A1. La celda J10 representa la columna 10 y la fila 10; la celda A1 representa la columna 1 y la fila 1. Lo que debo calcular es la suma de las diferencias entre columnas y de las diferencias entre filas de cada una de las celdas. Para el caso de estas celdas:

Columnas: Columna J (columna 10, según VBA: j=10) - Columna A (columna 1, según VBA: i = 10)

Filas: Fila 10(según VBA: i=10) - Fila 1 (según VBA: i = 1)

Resultado = (10-1) + (10-1) = 18, teniendo en cuenta la denominación que da VBA a cada una de las filas y columnas.

Para x[J4,A6] = (10-1)+ (6-4) = 9+2 = 11, y así sucesivamente para cada una de las variables. Espero que esta explicación aclare mejor el concepto. Agradezco mucho la atención prestada y quedo pendiente de cualquier aclaración.

Atentamente

Jimmy Gutierrez

Te anexo una macro.

Instrucciones
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

'***Macro, calcula la distancia
Sub referencias()
'Por.Dam
ufila = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To ufila
    col1 = Left(Cells(i, 1), 1)
    x1 = Range(col1 & "1").Column
    col2 = Left(Cells(i, 2), 1)
    x2 = Range(col2 & "1").Column
    y1 = Mid(Cells(i, 1), 2)
    y2 = Mid(Cells(i, 2), 2)
    'x1 - x2 + y1 - y2
    Distancia = x1 - x2 + y1 - y2
    Cells(i, 3) = Distancia
Next
End Sub

En este ejemplo que pusiste:

Para x[J4,A6] = (10-1)+ (6-4) = 9+2 = 11.

Debe ser (10-1) + (4-6) = 9 - 2 = 7

Te pido un favor, necesitamos los valores en dos columnas, deberán quedar de esta forma:

A B C
1 Valor 1 Valor 2 Distancia
2 J10 A1 18
3 A1 J10 -18
4 J1 A9 1
5 J9 A1 17
6 B1 I10 -16
7 B2 I9 -14
8 I10 A10 8
9 J4 A6 7
10 J8 A2 15
11 B7 I4 -4
12 E3 F8 -6

Saludos. Dam

Si es lo que necesitas.

Buenas noches Experto

Cordial saludo

Mil gracias por la macro, tiene mucha lógica. Sin embargo, tengo dos preguntas. Quisiera saber si existe alguna función o método que permita extraer los nombres de cada valor A y de cada valor B de modo que la presentación final incluya las dos columnas. Por otra parte, quisiera averiguar si la ecuación distancia se puede escribir de la siguiente manera:

Distancia = abs(x1 - x2) + abs(y1 - y2)

a fin de obtener valores absolutos. Nuevamente, mil gracias por el código fuente.

Atentamente

Jimmy Gutierrez

Perdona pero no entendí, la macro resuelve muy bien la Distancia.

¿O me puedes decir cuál es el problema?

Buenas noches Experto

Cordial saludo

Muchas gracias Experto por su oportuna respuesta. En efecto, ya probé la macro y funciona perfectamente; sin embargo, se generan algunos valores negativos, por este motivo quisiera saber si se puede usar la expresión Abs para que sólo se obtenga la cifra, sin signo alguno.

Por otra parte, quisiera solicitar a usted el favor de informarme si existe alguna función o método para extraer cada uno de los valores de la pareja x y de esta forma formar las dos columnas que se necesitan para que la macro calcule la distancia. Muchas gracias Experto por su atención a la presente.

Atentamente

Jimmy Gutierrez

Así como pusiste la fórmula es correcta

Distancia = Abs(x1 - x2) + Abs(y1 - y2)

Cambia la línea en la macro

La otra parte que preguntaste no la entiendo, tienes que poner ejemplos con valores reales, escribe qué tienes y qué quieres que aparezca.

También podrías cerrar esta pregunta, ya que se solucionó el calculo de la distancia.

Bueno Experto, muchas gracias por su aporte, resolvió la pregunta a cabalidad. Mil gracias, éxitos y bendiciones.

Atentamente

Jimmy Gutierrez

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas