Asignacion de Personas a Centros por Codigo Postal
Tengo que distribuir un determinado número de Personas (por ejemplo 1000) de forma individual entre una serie de Centros, en función de sus respectivos Códigos Postales. El número de Personas y Centros por Código Postal no siempre va a ser el mismo y la distribución debe de ser lo mas equilibrada posible entre los Centros ubicados en un mismo Código Postal. Sin embargo pueden ser muy dispares el número de Personas por Centro de un Código Postal y otro.
Por ejemplo: En el Código 28001 tengo 100 Personas y 3 Centros (C1, C2 y C3), con lo cual a C1 y a C2 lo tocarían 33 Personas a cada uno y al C3 34 Personas. En el Código 28002 tengo 200 Personas y 2 Centros (C4 y C5), con lo cual le tocarían 100 Personas a cada uno de los Centros. Y por ultimo en el Código Postal 28003 tengo 700 Personas y 3 Centros (C6, C7 y C8) con lo cual C6 y C7 tienen 233 Personas y el C8 234 Personas. Trabajo con 2 Hojas: una de Personas, Códigos Postales y Centro (esta columna es la que tengo que llenar con el nombre del Centro) y otra de Centros y Códigos Postales. "Hoja Personas" PERSONAS CPOSTAL CENTRO Persona1 28001 Persona2 28001 ... Persona201 28002 .... Persona1000 28003 "Hoja Centros" CENTROS CPOSTAL Centro1 28001 Centro2 28001 ... Centro8 28003 Necesito poner en la columna Centro de la Hoja Personas el Centro asignado. No sé si será posible hacer lo que necesito de una forma un poco automatica, ya que hasta ahora lo vengo haciendo de una forma manual. Gracias por anticipado.
1 respuesta
Respuesta de csarxex fmv
1
1
csarxex fmv, mas por viejo que por Diablo No soy doctor en medicina, pero...
Suponiendo que los nombres verdaderos de los centros no son los mostrados -Centro1, Centro2, ...- ¿Podemos darle una identificación secuencial a esos centros en la hoja Centros? Algi así como: Id centros cpostal 1 Centro1 28001 2 Centro2 28001 ... 8 Centro8 28003 De esta forma seria mas facil
Muentras tanto te sugiero lo siguiente Crear una hoja para los datos deducidos necesarios algo como lo siguiente cpostal CantPersonas CantCentros aCadaCentro masXtra 28001 100 3 33 1 28002 200 2 100 0 28003 700 3 233 1 28004 54 3 18 0 28005 0 1 0 0 y luego en la hoja Personas incluir una columna D para calcular el ordinal del centro que corresponde a cada fila primer centro de la hoja Centros : 1 segundo centro de la hoja Centros :2 etc este valor se puede calcular con =SI(RESIDUO(CONTAR.SI($B$2:B2;B2);BUSCARV(B2;datos;4;0))=1;SI(CONTAR.SI($B$2:B2;B2) Luego la columna CENTROS la consigues con =DESREF(Centros.$A$2;D2-1;0) (Me equivoqué, y estuve trabajando con otra hoja de cálculo -OOCalc- y no lo hice en excel, pero todas las funciones de uno deben existir en el otro, espero que sean idénticas las fórmulas; en caso contrario deben haber su equivalente con otro nombre)
Hola csarxex Ante todo muchas gracias por tu respuesta. Creo haber hecho bien todo lo que me dices - creé columna Id en CENTROS - creé hoja DATOS con las 5 columnas que me indicas - incluí columna D en hoja PERSONAS. El problema lo tengo en esta columna D con la formula =SI(RESIDUO(CONTAR.SI($B$2:B2;B2);BUSCARV(B2;datos;4;0))=1;SI(CONTAR.SI($B$2:B2;B2) me dice que le falta un parentesis de apertura o de cierre, puse uno al final y me sigue dando error. En cuanto a la funcion DESREF, para adaptarla a excel creo que tendré qeu sustituir el "centros.$a$2" por "centros!$a$2" es decir : =DESREF(centros!$A$2;D2-1;0) Gracias de nuevo por tu inestimable ayuda marca54