Страницы: 1
RSS
Выделение несовпадения в ячейке
 
В ячейке А1 текст "абв"  
В ячейке В1 текст "агв"  
Возможно ли после проверки совпадения закрасить "б" красным в А1?
 
Формулой можно вывести порядковый номер несовпадающих, например:  
=МАКС(ЕСЛИ(ПСТР(A1;{1;2;3;4;5};1)<>ПСТР(B1;{1;2;3;4;5};1);{1;2;3;4;5}))  
или буквы.  
Красить часть строки только макросом.
 
{quote}{login=vikttur}{date=04.10.2011 05:26}{thema=}{post}Формулой можно вывести порядковый номер несовпадающих, например:  
=МАКС(ЕСЛИ(ПСТР(A1;{1;2;3;4;5};1)<>ПСТР(B1;{1;2;3;4;5};1);{1;2;3;4;5}))  
или буквы.  
Красить часть строки только макросом.{/post}{/quote}  
Букву было б лучше. :)  
Формула работает,но только для одного несовпадения.  
Для "абв" и "гбг" результат "3".    
Не приводился ли такой макрос здесь?
 
Для длины строки не более 5 знаков, "0" - несовпадения:  
=ПСТР(СУММ(100000;ЕСЛИ(ПСТР(A1;{1;2;3;4;5};1)=ПСТР(B1;{1;2;3;4;5};1);10^{4;3;2;1;0}));2;ДЛСТР(A1))
 
Макрос несложный, но сформулируйте задачу до конца: Вы хотите каждый раз выбирать, какую ячейку сравнивать с активной? Или надо сравнить два столбца выделенного диапазона? Или как-то еще?
 
{quote}{login=vikttur}{date=06.10.2011 09:16}{thema=}{post}Для длины строки не более 5 знаков, "0" - несовпадения:  
=ПСТР(СУММ(100000;ЕСЛИ(ПСТР(A1;{1;2;3;4;5};1)=ПСТР(B1;{1;2;3;4;5};1);10^{4;3;2;1;0}));2;ДЛСТР(A1)){/post}{/quote}
 
{quote}{login=Олега}{date=08.10.2011 07:20}{thema=Re: }{post}{quote}{login=vikttur}{date=06.10.2011 09:16}{thema=}{post}=ПСТР(СУММ(100000;ЕСЛИ(ПСТР(A1;{1;2;3;4;5};1)=ПСТР(B1;{1;2;3;4;5};1);10^{4;3;2;1;0}));2;ДЛСТР(A1)){/post}{/quote}{/post}{/quote}  
Спасибо, работает.
 
{quote}{login=Казанский}{date=06.10.2011 10:04}{thema=Олега}{post} сформулируйте задачу до конца: Вы хотите каждый раз выбирать, какую ячейку сравнивать с активной? Или надо сравнить два столбца выделенного диапазона? Или как-то еще?{/post}{/quote}  
В столбце А исходые тексты для поиска.  
В столбце В найденый в других листах текст. С префиксами и суфиксами (искомый текст в середине).  
Сейчас сравниваю искомый с вхождением в полученном и условно форматирую при несовпадении(для обращения внимания на расхождения в этой части). Для быстрого поиска расхождений хотел выделить их цветом (в любом из столбцов).
 
Может быть непонятно преподнес.  
Два столбца.  
При несовпадении в ячейках (в одной строке)сами несовпадения краснеют.  
 
Ячейка А1 - а б в г д е    
Ячейка В1 - а б ж г е е  третья (ж) и пятая (е) красные
 
Пробуйте. Обработает весь столбец  
 
Sub Олега()  
Dim c As Range, i&, s$, d$  
For Each c In Columns(2).SpecialCells(xlCellTypeConstants, xlTextValues)  
   d = c  
   s = c(, 0)  
   For i = 1 To Application.Min(Len(s), Len(d))  
       If UCase$(Mid$(s, i, 1)) <> UCase$(Mid$(d, i, 1)) Then c.Characters(i, 1).Font.Color = vbRed  
   Next  
   c.Characters(i).Font.Color = vbRed 'остаток строки  
Next  
End Sub
 
Спасибо, попробовал. На первый взгляд:    
Получается, что пробелы в строке не воспринимаются как деление на слова. Слово в середине строки не перекрашивается (сравнивать предполагал вхождение А в яч.столбца В).  
При изменении (до совпадения)макрос не возвращает черный цвет.  
Резюме: наверное сложновато будет сваять задумку.  
Извиняюсь за отнятое время.  
Олег.
Страницы: 1
Читают тему
Наверх