Excel - cómo colorear solo palabras duplicadas con otra celda y no toda la celda

 
Vista:
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 06/05/2021 18:40:27
Hola buenas

No encuentro una fórmula, o formato condicional, para aplicarlo en A2 y que coloree todas las palabras repetidas entre A1 y A2, sin que se cambie el color del texto a toda la celda

Ejemplo:

A1 y A2 contiene una fórmula cada una y sacan 2 titulares similares de internet
En la captura hay 5 repeticiones entre A1 y A2. Son 4 palabras y 1 nº:
Si... 1... palabra... aparece... se

Esos 5 duplicados se pintarían en rojo en A2

No sé si es muy complicado o si hay una forma "sencilla" de hacerlo

Muchas gracias
SALUDos


colorear-duplicadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por Antoni Masana (2478 intervenciones) el 06/05/2021 19:09:19
No hay una forma sencilla de hacerlo.

He escrito la primera frase.
Me he colocado en A2 y he escrito la segunda frase y la he coloreado mientras se grababa la macro.
Este es el resultado de la macro

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
Sub Macro1()
    ActiveCell.FormulaR1C1 = "Si 1 palabra no aparece no se le cambia el color"
 
    With ActiveCell.Characters(Start:=1, Length:=0).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=1, Length:=2).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .Color = -16776961
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=3, Length:=1).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=4, Length:=1).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .Color = -16776961
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=5, Length:=1).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=6, Length:=7).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .Color = -16776961
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=13, Length:=4).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=17, Length:=7).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .Color = -16776961
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=24, Length:=4).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=28, Length:=2).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .Color = -16776961
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
 
    With ActiveCell.Characters(Start:=30, Length:=19).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
    Range("A3").Select
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 06/05/2021 21:05:42
La macro si se ponen otras frases en A1 y A2 no pinta bien del todas las palabras.

Se me ocurre que como los titulares a buscar serán cortos, de máximo 10 palabras, tal vez sirva alguna fórmula que compare la 1ª palabra de A2 con todas las palabras de A1, una por una. Luego la 2ª palabra de A2 y así hasta la 10ª.

O tal vez hacer una lista extrayendo cada palabra de la frase de A2, en 10 celdas distintas, y de alguna forma compararlas con las de A1 y que coloreé las duplicadas, pero no lo veo claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por Antoni Masana (2478 intervenciones) el 06/05/2021 22:47:41
El truco esta en estas líneas y los números que tiene

1
2
"Si 1 palabra no aparece no se le cambia el color"
 ----+----1----+----2----+----3----+----4----+----

En realidad sobran algunas porque al hacerlo manual va marca las zonas rojas y las zonas negras.

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub ...
    With ActiveCell.Characters(Start:= 1, Length:= 0).Font
    With ActiveCell.Characters(Start:= 1, Length:= 2).Font
    With ActiveCell.Characters(Start:= 3, Length:= 1).Font
    With ActiveCell.Characters(Start:= 4, Length:= 1).Font
    With ActiveCell.Characters(Start:= 5, Length:= 1).Font
    With ActiveCell.Characters(Start:= 6, Length:= 7).Font
    With ActiveCell.Characters(Start:=13, Length:= 4).Font
    With ActiveCell.Characters(Start:=17, Length:= 7).Font
    With ActiveCell.Characters(Start:=24, Length:= 4).Font
    With ActiveCell.Characters(Start:=28, Length:= 2).Font
    With ActiveCell.Characters(Start:=30, Length:=19).Font
End Sub

Pera hacer la macro tienes que hacer un bucle e ir calculando la posición de la palabra y su longitud.

1
2
3
4
5
6
For a=1 To N
    ...
    With ActiveCell.Characters(Start:=Posic, Length:=Long).Font
        ...
    End Wind
Next

Donde N es el número de palabras, Posic la posición dentro de la frase y Long la longitud de la palabra.
No es complicado pero es entretenido.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 07/05/2021 08:21:15
Para mi se vuelve demasiado complicado entender todo eso
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 07/05/2021 10:59:42
He conseguido hacer la lista en la que solo aparecen las palabra repetidas en A1 y A2
En el ejemplo son 4
No sé si con esto se podría hacer alguna fórmula, algún condicional o alguna macro para que pinte esas 4 palabras

lista
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por Antoni Masana (2478 intervenciones) el 07/05/2021 12:42:48
Se puede hacer con una macro. No conozco otro sistema.

La pregunta es
¿Cuándo hay que evaluar estas frases?
¿Se van introduciendo y se tienen que ir pintando?
¿Hay una lista de frases introducidas?
¿Dónde esta la 1ª frase?
¿Dónde esta la 2ª frase?
¿Siempre es en el mismo sitio o va cambiando?
¿Cómo se cual es la frase 1 y cual es la frase 2?
Hay más preguntas pero todas van alrededor de lo mismo.

Sube un ejemplo de como y cuando se introducen las frases y explica cuando se deben pintar, porque si la macro no sabe de donde leer no puede pintar.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 07/05/2021 13:40:10
Cuántas cosas hay que tener en cuenta. Todo parece más sencillo cuando se sabe menos, jeje

A1 y A2 son fijas y copian las frases de C2 y C3 con una fórmula.

Las 2 siguientes frases se evaluarían al pulsar el botón "Siguientes 2 titulares" que ejecuta una macro que sube toda la lista de frases siguientes de la columna C, menos las 2 primeras que ya se analizaron y que son machacadas
Sería pintarlas tras pulsar el botón
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 07/05/2021 14:01:36
en la celda A2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por Antoni Masana (2478 intervenciones) el 07/05/2021 15:25:26
Prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub Poner_Rojo()
    Dim Texto_1 As String, Pos As Integer, Tabla() As String, _
        Texto_2 As String, Lng As Integer, a As Byte
 
    Texto_1 = Range("A1")
    Texto_2 = Range("A2")
 
    Tabla = Split(Texto_2, " ")
 
    Range("F3:F12").Select
    Selection.ClearContents
 
    For a = 1 To UBound(Tabla)
        Pos = InStr(UCase(Texto_1), UCase(Tabla(a)))
        If Pos > 0 Then Cells(a + 2, "F") = Tabla(a)
    Next
 
    Range("A2").Select
    ActiveCell.FormulaR1C1 = Texto_2
 
    For a = 1 To UBound(Tabla)
        If InStr(UCase(Texto_1), UCase(Tabla(a))) > o Then
            Pos = InStr(" " & Texto_2 & " ", " " & Tabla(a) & " ")
            If Pos > 0 Then
               Pos = Pos - 1
                Lng = Len(Tabla(a)) + 2
                With ActiveCell.Characters(Start:=Pos, Length:=Lng).Font
                    .Color = -16776961
                End With
            End If
        End If
    Next
End Sub

Saludos.
\\//_

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 07/05/2021 17:20:57
Solo le falta que pinte el número también cuando la celda empieza por un número, el resto va GENIAL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por Antoni Masana (2478 intervenciones) el 07/05/2021 17:38:48
Hay un par de correcciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Sub Siguiente()
    Range("C4:C31").Select
    Selection.Copy
    Range("C2").Select
    ActiveSheet.PasteSpecial Format:=3, _
                             Link:=1, _
                             DisplayAsIcon:=False, _
                             IconFileName:=False
 
    Range("C3").Select
    Selection.Copy
    Range("A2").Select
    ActiveSheet.PasteSpecial Format:=3, _
                             Link:=1, _
                             DisplayAsIcon:=False, _
                             IconFileName:=False
 
    Dim Texto_1 As String, Pos As Integer, Tabla() As String, _
        Texto_2 As String, Lng As Integer, a As Byte
 
    Texto_1 = Range("A1")
    Texto_2 = Range("A2")
 
    Tabla = Split(Texto_2, " ")
 
    Range("F3:F12").Select
    Selection.ClearContents
 
    For a = 0 To UBound(Tabla)
        Pos = InStr(UCase(Texto_1), UCase(Tabla(a)))
        If Pos > 0 Then Cells(a + 2, "F") = Tabla(a)
    Next
 
    Range("A2").Select
    ActiveCell.FormulaR1C1 = Texto_2
 
    For a = 0 To UBound(Tabla)
        If InStr(UCase(Texto_1), UCase(Tabla(a))) > o Then
            Pos = InStr(" " & Texto_2 & " ", " " & Tabla(a) & " ")
            If Pos > 0 Then
               Pos = Pos - 1
                Lng = Len(Tabla(a)) + 2
                If a = 0 Then Lng = Lng - 1
                With ActiveCell.Characters(Start:=Pos, Length:=Lng).Font
                    .Color = -16776961
                End With
            End If
        End If
    Next
    Range("A1").Select
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

cómo colorear solo palabras duplicadas con otra celda y no toda la celda

Publicado por celia (437 intervenciones) el 07/05/2021 18:33:02
Va de maravilla !!

Gracias por tanta ayuda

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar