# Metodo del PDM en excel (precedencias)



## pieroap21 (Mar 22, 2013)

Hola a todos un saludo cordial y agradesco de antemano su respuesta.

En las tablas que se muestran a continuacion tengo actividades de la tabla de la derecha de (inmediatamente sucesoras) las cuales quiero ubicar en la tabla de la izquierda (inmediatamente predecesoras) si en el rango de la actividad "A" h
asta la "H" se repite 2 veces en la tabla izquierda entonces en la tabla derecha a la altura de sucesora 2 me coloque la actividad en la cual a sido precedida por segunda vez (la actividad de la 1ra. columna) : por ejemplo:
En la tabla de la derecha las actividades A y B estan repetidas 2 veces entoces: 
con la A la primera vez que se repite en sucesora 1 le corresponde el valor de B y en sucesora 2 le corresponde la actividad E
con la B la primera vez que se repite en sucesora 1 le corresponde el valor de C y en sucesora 2 le corresponde la actividad D
con la D la primera vez que se repite en sucesora 1 le corresponde el valor de G y en sucesora 2 le corresponde la actividad C

para lograr esto lo que he tratado de hacer es lo siguiente:
1ro. identifique cuales se repiten 2 veces en la tabla de la izquierda
2do. desde el primer elemento repetido quiero que se desplace desde el rango de ese elemento un rango mas abajo 

el problema es que no encuento como hacerlo porque me vota error ayudenme porfavor. 
la formula que use fue esta y no me funciona colocada en la primera actividad en sucesora 2:
=indirecto("A"&COINCIDIR(M8,INDIRECTO(DIRECCION(8+COINCIDIR(M8,$C$8:$C$15,FALSO),3)&":"&DIRECCION(15,6)),FALSO))

** La primera actividad de la primera columna comienza en la fila 8



Data
Inmediatamente predecesora(1 por columna)DataInmediatamente Sucesora(1 por columna)ActivdadTiempoPred 1Pred 2ActivdadTiempoSucesora 1Sucesora 2A7      H1      B6AFC2   G3H 2
   C6BCC4DFF2F1H 41  D6BCF8   E8F 81  E8ACC12CFF8D6G 122 8F1EFC2   C6E 2   G3DFC2   B6C 22  H1FFF1GFF3A7B 12 3

<colgroup><col><col span="5"><col><col span="2"><col><col><col><col><col><col><col><col><col span="3"></colgroup><tbody>

</tbody>


----------



## sergioMabres (Mar 23, 2013)

Estaría mas claro si hubiéramos la referencia de columnas, se establece que la celda con "Data" es la 6 pero no dice cual es la columna
Si "Data" esta en la columna A, al copiar a una hoja la M8 me da vacía, por eso puede ser el error N/A
Sergio


----------



## sergioMabres (Mar 23, 2013)

Tengo que ir al cine y mi mujer me esta mirando raro, lo que tengo hasta ahora es una nueva formula en mi planilla la palabra "Data" esta en la celda D6
Para Sucesora 1 tengo: =SI(SUMAPRODUCTO(--($F$8:$I$15=$M8))>0;SI.ERROR(INDICE($D$8:$F$15;COINCIDIR($M8;$F$8:$F$15;0);1);INDICE($D$8:$I$15;COINCIDIR($M8;$I$8:$I$15;0);1));"")
Para sucesora 2 tengo como determinar que hay una sucesora 2 pero no lo he resuleto tengo hasta ahora: =SI(SUMAPRODUCTO(--($F$9:$I$15=$M12))>1;"hay sucesora dos";"")
Mañana veo si lo resuelvo
Saludos
Sergio


----------



## pieroap21 (Mar 24, 2013)

Lo que quiero es usar el principio de la funcion coincidir la cual me devulve el numero de la fila del valor buscado pero no quiero que me devuelva el primer elemento encontrado del valor buscado sino el segundo elemento encontrado y asi sucesivamente si hubieran mas elementos repetidos, y agradesco su respuesta 

Adjunto el archivo para descargar, ahi esta mejor explicado el problema:
download - filecloud.io


----------



## pieroap21 (Mar 24, 2013)

*Re: descarga del archivo problema*

Correccion del enlace de descarga el anterior no funciona este si

Adjunto el archivo para descargar, ahi esta mejor explicado el problema:

download - filecloud.io


----------



## sergioMabres (Mar 24, 2013)

*Re: descarga del archivo problema*

Estimado Piero,
Esta formula funciona para la Sucesora 2, como las predecesoras no son normales en el sentido de Boyce–Codd calcular una tercera sucesora requiere otro SI(SUMAPRODUCTO()=3;...) haciendo la formula muy larga, mi consejo es normalizar las predecesoras, es decir una tabla para tareas y otra tabla para la relación entre tarea y predecesora, ver abajo el ejemplo.

Formula en R8

```
=SI(SUMAPRODUCTO(--($C$9:$F$15=$M8))>1;SI(SUMAPRODUCTO(--($C$9:$C$15=$M8))=0;INDICE(INDIRECTO("$A$"&8+COINCIDIR($M8;$F$8:$F$15;0)&":$A$15");COINCIDIR(M8;INDIRECTO("$F$"&8+COINCIDIR($M8;$F$8:$F$15;0)&":$F$15");0));SI(SUMAPRODUCTO(--($C$9:$C$15=$M8))=1;INDICE($A$8:$F$15;COINCIDIR($M8;$F$8:$F$15;0);1);INDICE(INDIRECTO("$A$"&8+COINCIDIR($M8;$C$8:$C$15;0)&":$A$15");COINCIDIR(M8;INDIRECTO("$C$"&8+COINCIDIR($M8;$C$8:$C$15;0)&":$C$15");0))));"")
```


La hoja con las formulas se puede bajar del link https://dl.dropbox.com/u/23094164/Copia de PRECEDENCIAS.xlsx

Explicación o ejemplo de como normalizar las tablas

```
Tabla Tareas
Tarea  Datos tarea
A      ...
B      ...
C      ...
D      ...

Tabla Relación
Tarea  Predecesora
A
B      A
D      B
C      B
C      D
E      C
E      A
...
```

Saludos
Sergio


----------



## pieroap21 (Mar 24, 2013)

*Re: descarga del archivo problema*

Muy agradecido don Sergio es justo lo que quieria y voy intentar hacer la normalizacion sino limitare a 4 predecesoras y/o sucesoras identificadas como:
predecesora, inmediatamente predecesora, inmediatamente sucesora, sucesora en la red PDM estoy simulando un sistema de MS Project.

Arrivederci :D


----------



## sergioMabres (Mar 24, 2013)

*Re: descarga del archivo problema*

Un gusto que te sirviera la formula, y ayudarte. Si tienes el tiempo puedes ir a mi blog y cliquear (varias veces) sobre la publicidad, el link a mi blog esta en la firma. Saludos y suerte con la normalización.
Sergio


----------

