Combinaciones de miembros en reuniones (Microsoft Excel)
Bob tiene una hoja de trabajo que tiene los nombres de los miembros en el lado izquierdo y los meses del año en la parte superior. En cada celda de la cuadrícula ingresa las fechas en las que ocurren las reuniones a las que asistió el miembro. Bob está buscando una forma de saber de un vistazo quién no se ha reunido con quién.
Hay varias formas de abordar la solución a este problema. Si el diseño de su mesa es flexible, puede «simplificar» las cosas cambiando la forma en que está distribuida. En lugar de poner meses en las columnas, simplemente puede hacer que cada columna sea una fecha de reunión.
Luego, cada celda podría contener algún tipo de indicador (un número o un carácter) que indique que la persona asistió a la reunión en esa fecha en particular. Sería un proceso relativamente fácil averiguar quién no se había reunido con quién:
-
Elija el miembro clave, el que desea verificar, y muévalo a la parte superior de su tabla de datos.
-
Ordene la tabla de datos horizontalmente en la fila de miembros clave, de modo que todas las reuniones a las que asistió el miembro clave estén en las columnas más a la izquierda.
-
Ordene a todos, excepto al miembro clave, verticalmente en las primeras tres fechas de reunión. Todos los que conocieron al miembro clave en esas tres reuniones están ahora en la parte superior de la tabla de datos, justo debajo del miembro clave.
-
Desplácese hacia abajo en la tabla de datos y seleccione a todos los que aún no han conocido al miembro clave y ordene en las próximas tres fechas de reunión.
-
Repita los pasos 3 y 4 hasta que se hayan ordenado todas las fechas de la reunión.
-
Todos los que permanecen en la parte inferior de la tabla de datos (los que no se seleccionaron en los pasos 3 y 4) nunca han conocido al miembro clave.
Si no puede cambiar el formato de su tabla, entonces se necesita una solución macro. Hay muchos enfoques que podrían usarse en una macro, pero el siguiente es quizás el más directo:
Sub PeopleNotMet() Dim rTable As Range Dim rOutput As Range Dim iCols As Integer Dim iCol As Integer Dim iRows As Integer Dim iRow As Integer Dim iCompRow As Integer Dim sNotMet As String Dim sMet As String Set rTable = Worksheets("Sheet1").Range("A1").CurrentRegion Set rOutput = Worksheets("Sheet2").Range("a1") sNotMet = "X" sMet = "" Application.ScreenUpdating = False With rTable iRows = .Rows.Count iCols = .Columns.Count .Columns(1).Copy With rOutput .PasteSpecial .PasteSpecial Transpose:=True Application.CutCopyMode = False Range(.Offset(1, 1), .Offset(iRows - 1, _ iRows - 1)).Value = sNotMet Range(.Offset(1, 1), .Offset(iRows - 1, _ iRows - 1)).HorizontalAlignment = xlCenter End With End With With rTable.Cells(1) For iRow = 1 To iRows - 1 For iCol = 1 To iCols - 1 For iCompRow = 1 To iRows - 1 If Not (IsEmpty(.Offset(iRow, iCol))) Then If Not (IsEmpty(.Offset(iCompRow, iCol))) Then If .Offset(iRow, iCol).Value = _ .Offset(iCompRow, iCol).Value Then _ rOutput.Offset(iRow, iCompRow).Value = sMet End If End If Next Next Next End With Set rTable = Nothing Set rOutput = Nothing Application.ScreenUpdating = True End Sub
Esta macro asume un par de cosas. Primero, asume que la tabla de datos original de Bob está en Sheet1, comenzando en la celda A1. En segundo lugar, se supone que la tabla «quién no se ha reunido con quién» debe estar en la Hoja2, comenzando en la celda A1. Si estas suposiciones son correctas, cuando ejecute la macro, la tabla creada en Sheet2 muestra los nombres en el lado izquierdo y los nombres en la parte superior. Las celdas que se cruzan contendrán nada (lo que significa que las personas se han reunido) o una X mayúscula (lo que significa que no se han reunido).
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2304) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:
link: / excelribbon-Combinations_for_Members_in_Meetings [Combinaciones para miembros en reuniones]
.