Eliminar carácter duplicado en una fila en Excel

Eliminar carácter duplicado en una fila en Excel

Estoy tratando de que sea posible escribir "x" (sin las comillas) solo una vez en cada fila. Preferiría usar la validación de datos, pero si eso no es posible, también podría usar VBA. He probado varias cosas con CONTAR.SI, por ejemplo, en la validación de datos, pero solo puedo descubrir cómo eliminar duplicados de columnas, no de filas.

¿Alguna idea sobre lo que podría hacer?

Respuesta1

Pruebe la siguiente macro de eventos de la hoja de trabajo.(usa COUNTIF()):

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim wf As WorksheetFunction, v As Variant
    Dim rng As Range, x As String
    
    Set wf = Application.WorksheetFunction
    v = Target.Value
    Set rng = Target.EntireRow
    x = "x"
    
    If v <> x Then Exit Sub
    If wf.CountIf(rng, x) > 1 Then
        Application.EnableEvents = False
            MsgBox "Too many x"
            Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub

Debido a que es código de hoja de trabajo, es muy fácilinstalary automático de usar:

  1. haga clic derecho en el nombre de la pestaña cerca de la parte inferior de la ventana de Excel
  2. seleccione Ver código; esto abre una ventana de VBE
  3. pegue las cosas y cierre la ventana de VBE

Si tiene alguna inquietud, primero pruébelo en una hoja de trabajo de prueba.

Si guarda el libro, la macro se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como .xlsm en lugar de .xlsx.

Aeliminarla macro:

  1. abra las ventanas de VBE como se muestra arriba
  2. borrar el código
  3. cerrar la ventana VBE

Para obtener más información sobre las macros en general, consulte:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

y

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Para obtener más información sobre las macros de eventos (código de la hoja de trabajo), consulte:

http://www.mvps.org/dmcritchie/excel/event.htm

¡Las macros deben estar habilitadas para que esto funcione!

Respuesta2

Solo para dar más detalles sobre la respuesta de Gary. No hay forma de hacer esto solo con la validación de datos y necesita VBA con macros habilitadas para que funcione exactamente como se describe.

Si desea evitar VBA, puede comenzar restringiendo cada celda a una lista desplegable de "x" o "". Ahora use el formato condicional para mostrar una advertencia si counta es mayor que 1. Luego, el usuario debe eliminar manualmente las x adicionales hasta que desaparezca el calentamiento.

información relacionada