¿Hay alguna manera de tener valores "predeterminados" o "marcadores de posición" en Excel?

¿Hay alguna manera de tener valores "predeterminados" o "marcadores de posición" en Excel?

Tengo una hoja de cálculo con celdas que quiero que el usuario pueda editar, pero también quiero tener valores "predeterminados" o "marcadores de posición", siempre que no haya datos ingresados ​​por el usuario. Hay un par de buenos casos de uso para esto:

  • Evite errores de fórmula y, al mismo tiempo, proporcione suposiciones razonables cuando un usuario no ha ingresado (o ha eliminado) su propio valor.
    • Podría usar el formato condicional para alertar al usuario sobre los valores predeterminados, a fin de evitar que los ignore; luego puede tomar una decisión informada sobre si ese valor sigue siendo apropiado o no para los cálculos previstos.
  • Proporcione una breve descripción de lo que se pretende ingresar en la celda, sin tener que tener un segmento o documento de "instrucciones" separado. Esto también eliminaría la necesidad de una celda "Etiqueta" cercana, en algunos casos en los que realmente no es apropiado.

Para lograr lo que quiero, necesito alguna fórmula, script u otra opción avanzada de hoja de cálculo que haga lo siguiente:

  • Muestra el valor predeterminado en la celda antes de que el usuario ingrese datos.
  • Permita que cualquier fórmula que haga referencia a la celda encuentre el valor predeterminado cuando no haya datos ingresados ​​por el usuario en esa celda.
  • Permita que el usuario sobrescriba libremente (naturalmente, exactamente como lo haría con cualquier celda "normal") el valor mostrado con su propio valor o fórmula, y haga que cualquier fórmula que haga referencia a la celda encuentre los datos ingresados ​​por el usuario.
  • Cuando la celda queda en blanco al eliminar la entrada del usuario, vuelve al valor predeterminado.

¿Hay alguna manera de hacer esto en Excel o le estoy pidiendo demasiado a un programa de hoja de cálculo?

Respuesta1

No existe una forma integrada de hacer esto, necesitarás crear la tuya propia.

Una posibilidad es esta:

  1. Para cada celda para la que desee un valor predeterminado, cree un rango con nombre en el ámbito de la hoja de trabajo que haga referencia a esa celda y, en el campo de comentarios, ingrese el valor predeterminado requerido.
  2. Agregar el Workbook_SheetChangeevento del módulo Libro de trabajo

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim nm As Name
        Dim cl As Range
    
        On Error Resume Next
        For Each cl In Target.Cells
            If IsEmpty(cl) Then
                For Each nm In Sh.Names
                    If nm.RefersToRange.Address = cl.Address Then
                        Application.EnableEvents = False
                        If IsNumeric(nm.Comment) Then
                            nm.RefersToRange.Value = Val(nm.Comment)
                        Else
                            nm.RefersToRange.Value = nm.Comment
                        End If
                        Application.EnableEvents = True
                        Exit For
                    End If
                Next
            End If
        Next
    End Sub
    

Lo que esto hace es:

  • Cada vez que se cambia una celda, se ejecuta el código de evento.
  • Si una celda que cambió está vacía
    • Busque un rango con nombre con alcance de hoja de trabajo que haga referencia a la celda
    • Si lo encuentra, copie el comentario Nombre en el valor de la celda; la conversión a numérico es apropiada

Respuesta2

Utilizo un método que funciona así:

-- un ejemplo simple para registros escolares:

  • col A son los títulos de las filas: identificación de estudiante, apellido, nombre, fecha de nacimiento, edad...
  • la columna B es la columna fantasma: ancho 1, justificación a la izquierda, aumento de sangría 1, protegida, color de fuente gris, sin ajuste de texto
  • col C son los campos de entrada

-- Los valores de la columna B se cargan con lo que quieras mostrar en la columna C como valor predeterminado. Los valores pueden provenir de una hoja auxiliar adjunta, una fórmula que se actualiza a medida que se completan las celdas, otra hoja de cálculo con valores predeterminados, mensajes de error...

- entonces, cuando se ingresa la identificación del estudiante, el apellido, el nombre, la fecha de nacimiento, la dirección, los padres, etc. se muestran inmediatamente como valores fantasma en las filas siguientes. No hay nada en ninguna de las celdas de la columna C, por lo que los valores fantasma en la columna B se extienden a la columna C. (Los valores numéricos y de fecha deben formatearse con una función text()). Después de verificar la información del niño, el operador continúa hacia abajo para completar en el horario de clases, profesora titular...

-- Si es necesario cambiar algo, se escribe en la celda, lo que indica que algo para ese niño es diferente. (Apellido, nombre de los padres, dirección...)

- o bien, se podrían ingresar el apellido y el nombre, dejando la identificación en blanco, y el valor fantasma mostraría la identificación del niño en la hoja de cálculo maestra.

-- Una hoja de ayuda podría mostrar texto de ayuda que desaparece una vez que se toca la celda en la columna C. O bien, la lógica de la hoja de cálculo puede determinar que el texto de ayuda ya no es apropiado o debería mostrar algo diferente.

Los valores fantasma se pueden buscar, pueden ser grises para el texto predeterminado o rojos para las advertencias y se actualizan automáticamente a medida que se actualizan las hojas de cálculo adjuntas.

Una limitación es que el texto fantasma no puede ajustarse a la columna C.

información relacionada