Страницы: 1 2 3 След.
RSS
Подсветка повторяющихся строк
 
Доброго времени суток друзья!
Сейчас наверно все создатели Экселя которые спят вечным сном по 5 раз перевернутся...да простят меня Боги)
Но суть не об этом
Сам честно говоря с Экселем я бы не сказал что на ты, но в так школьных задачах смело ему тыкаю...
Есть таблица, в ней 6 столбцов с разными знаниями...0.89 1.00 1.07 2.34 и 1.08 (6-й столбик пустой) или  другой вариант 0.97 1.02 0.75 1.22 1.17 и 1.34 к примеру
И там где-то на 1000 строке или еще лучше 8000 есть такое же значение 0.97 1.02 0.75 1.22 1.17 и 1.34
Можно ли сделать так чтобы Эксель это дело на 8000 строке подсветил цветом? ну или как-нибудь выделил
Заранее всем спасибо
 
Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
У меня почему-то файл не загружается в ветку
 
Размер файла укладывается в рамки правил?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Вообще кнопка "Загрузить файлы" не работает...
 
Проблема была в Макбуке....перезашел на форум через Хром... Сафари чудит)
На 100-й и 120-й строке есть повторяющиеся значения...я вручную раскрасил
Изменено: Aleksey.g84 - 25.06.2017 06:38:34
 
В таблице не числа, а текст. Вам надо проверять на совпадения текст или стоит вначале числа текстом перевести в числа?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
получается что текст)
 
может это подойдет. в уф применить к $A$1:$F$8001
Код
=СЧЁТЕСЛИМН($A$1:$A$8001;$A1;$B$1:$B$8001;$B1;$C$1:$C$8001;$C1;$D$1:$D$8001;$D1;$E$1:$E$8001;$E1;$F$1:$F$8001;$F1)>1
 
Цитата
Aleksey.g84 написал:
Вообще кнопка  не работает
с гугл хрома не могу ни комменты вставить, ни файл залить...с оперы все работает.
 
Формулу в H2:
=ЕЧИСЛО(ПОИСКПОЗ(6;МУМНОЖ(Ч($A$1:$F1=$A2:$F2);{1:1:1:1:1:1});0))

и протянуть вниз. Сделать УФ по данному столбцу.

copper-top, я всё время на форуме с гуглхрома - всё нормально.
Изменено: JayBhagavan - 25.06.2017 08:39:31

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Aleksey.g84 написал:
чтобы Эксель это дело на 8000 строке подсветил цветом
Очень удобно: одинаковые значения, например, на строке 3 и 8000 - Вы их одновременно увидите? Может быть есть смысл повторяющиеся выводить в отдельную таблицу? Или Вам интересно крутить лист в поисках цветной ячейки? )
Ещё момент: нашлась и вторая пара повторяющихся - покрасили где-то внизу. Но как потом понять, какая строка с какой соотносится? А если значение трижды встречается - тогда что делать?
 
Спасибо вам большое....
Добавил Вас в контакты)
Изменено: Aleksey.g84 - 25.06.2017 19:49:11
 
Aleksey.g84, кнопка цитирования не для ответа, вернитесь в своё сообщение и уберите эту горе-цитату.
И не пойму, причём тут Битрикс? )
 
Цитата
Aleksey.g84 написал: вижу Битрикс знаете
Это Вам показалось.
И к замечанию модератора прислушайтесь, пожалуйста.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Код
Sub test()
Dim i&, j&, msg$, dicObj As Object
Set dicObj = CreateObject("Scripting.Dictionary")
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    msg = ""
    For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
       msg = msg & Cells(i, j)
    Next j
    If dicObj.exists(CStr(msg)) Then Range(Cells(i, 1), Cells(i, j - 1)).Interior.Color = vbRed
    dicObj.Item(CStr(msg)) = dicObj.Item(CStr(msg))
Next i
End Sub
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim круто конечно выглядит, но не стесняясь немного напомню...я гусь в экселе)))
ясное дело что такое макрос и где ваш текст вставить, но был бы вам очень благодарен если вы немного прокомментировали свой код....что от куда и куда берется....
да и по моим наблюдениям....с макросами на макбуке сложно дела идут...я чаще именно за макбуком бываю...часто вылетает ошибка "Документ не удалось сохранить"
 
Надеюсь понятно расписал, что по поводу макбука, тут я не смогу помочь, т.к. не работаю на данных аппаратах
Код
Sub test()
Dim i&, j&, msg$, dicObj As Object
' Объявляем объектную переменную словарь (Dictionary)
Set dicObj = CreateObject("Scripting.Dictionary")
' запускаем цик
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
' очищаем значение переменной
    msg = ""
    For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
    ' задаем значение переменной путем сцепления всех ячеек одной строки
       msg = msg & Cells(i, j)
    Next j
' проверяем было встречалось ли значение строки ранее
'и если встречалось то окрашиваем в красный цвет
    If dicObj.exists(CStr(msg)) Then Range(Cells(i, 1), Cells(i, j - 1)).Interior.Color = vbRed
' добавляем значение в словарь для дальнейщей проверки
    dicObj.Item(CStr(msg)) = dicObj.Item(CStr(msg))
Next i
End Sub
"Все гениальное просто, а все простое гениально!!!"
 
спасибо большое....тоже попробую
 
На макбуках нет такого словаря, это только под виндой.
Для макбука думаю можно код на коллекции делать, тем более что значения Item(msg) тут роли не играют.
Изменено: Hugo - 25.06.2017 21:25:45
 
По коду - если просматриваете не несколько тысяч строк, а всё что есть - то уже прямой смысл анализировать не ячейки, а элементы массива, будет раз так в 40 быстрее.
Если объявили msg$, то ведь уже нет смысла делать аж 3 раза на шаг CStr(msg).
Да и к тому же заносить в словарь есть смысл только если msg нет в словаре, тем более что всегда эта проверка делается.
Да и быстрее заносить просто
Код
dicObj.Item(msg) = 0&

говорят 0 типа Long работает быстрее, я с ними не спорю :)
 
Hugo, замена данных в словаре не очень влияет на скорость, 2-3 сек тратиться на весь лист!
Можно и массив перебирать, это просто лишние телодвижения и более сложное написание кода, набрасывал на скорую руку.
"Все гениальное просто, а все простое гениально!!!"
 
Если данных будет десятки тысяч, из которых нужно покрасить строк так 10 - то времени тратиться при работе с массивами будет очень заметно меньше.
А код будет ненамного сложнее, а по написанным буквам даже короче :)
Правда если столбцов в диапазоне много - может в массив всё и не поместиться...
P.S. Посмотрел файл - так там только числа... Тогда склеивать обязательно нужно через разделитель, иначе есть риск перепутать строку
1 23
с строкой
12 3
Изменено: Hugo - 25.06.2017 22:28:24
 
Hugo, А по какому принципу будет поиск в массивах совпадений, если перебором. то сомневаюсь что скорость будет выше, чем  в словаре, который ищет по ключу. Если можно , я бы глянул на ваш код :)
Изменено: Nordheim - 25.06.2017 23:26:33
"Все гениальное просто, а все простое гениально!!!"
 
Скажите пожалуйста...по макросу выше поиск осуществляется только по столбикам i и j?
Или просто я не так понял?
Для макроса нужно вывести отдельно кнопочку чтобы он выполнился? или выполнить его вручную?
Еще вопрос....можно ли раскраску ячейки в красный цвет заменить значком скажем зеленым?
Да...слегка извращенно звучит, но пестрый лист гораздо приятней смотреть и читать)
Конечно формула JayBhagavan отличная вещь....даже на примере самостоятельно сделал аналогичную но уже с 3 значениями
Но незадача в том, что примерно на 25000 и далее строке протяжка формул далее просто напрочь кладет мой Макбук с ОЗУ 8 наглухо)))
А сам файл на данный момент ростет примерно до 35000 строк....далее еженедельно будет увеличиваться на 2500-10000 строк...это примерно
Спасибо всем за помощь и понимание
 
Aleksey.g84, можно, вставьте код в лист на выделение ячейки. Цвет задается в строке 15 в конце.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Вот так было бы замечательно сделать, но пока пока не представляю как и так же не представляю как вставить код в лист на выделенные ячейки
На моем рисунке зеленый значок срабатывает там где три значения в овале уже встречались
желтый значок срабатывает в обведенных значениях....скрыт столик... в нем формула =значение ячейки К...

С тем как вставить код в лис на выделенные ячейки разобрался....пока не разобрался с самим макросом....поиск ведется только в столбцах i и j?
Изменено: Aleksey.g84 - 26.06.2017 04:39:34
 
В редакторе вба выбираете лист, сверху слеве ставите worksheet и копируете туда между появившихся sub и end sub код со второй строки по предпоследнюю.
Инженер не тот, кто все знает, а тот кто знает где найти ответ.
 
Aleksey.g84, для МАКов есть отдельная ветка.
С Вашим объёмом данных надо менять место хранения и способы обработки информации. Да, на таких объёмах УФ будет вешать железо.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Aleksey.g84 написал:
Скажите пожалуйста...по макросу выше поиск осуществляется только по столбикам i и j?
В макросе i это номер проверяемой строки, j - это номер последнего столбца заполненного диапазона, определяется по первой строке(при условии , что остальные строки не длиннее первой, макрос будет работать корректно, в противном случае нет)
Изменено: Nordheim - 26.06.2017 08:14:27
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1 2 3 След.
Наверх