Заходи заходи
Имя

Пароль



Регистрация
Сейчас в чате 0
никого нет
Их боялся Флинт
Модеры:
Orkana Джа Cyber_Ghost zl0l

Админы:
del Tёмный DreamX MoRS
Бесполезные линки

Valid XHTML 1.0 Transitional

DreamX: exel пост
DreamX
pic
01 июн 2011 14:59
Изменен 07 июн 2011 09:35
Редактировать
Ссылка на этот пост
Вопрос по экселю:
Есть у меня таблица... пару тыщ строк.
И есть массив 300строк, повторяющих значение 300сот ячеек из первой таблицы.
Надо выделить в первой таблице цветом эти самые 300строк, идентичных строкам в массиве.
 
Можно ли это сделать средствами exel, не прибегая к ручному ctrl+f методу?
Tёмный
pic
01 июн 2011 16:34

Редактировать
Ссылка на этот пост
DreamX, можно.
Например, =ВПР(...) поможет.
Если надо подробнее, готов отписать чуть позже.
DreamX
pic
01 июн 2011 20:06

Редактировать
Ссылка на этот пост
мало информации, давай поподробнее
Tёмный
pic
07 июн 2011 09:32

Редактировать
Ссылка на этот пост
DreamX
http://ru.wordpress.com/tag/jscript/

Посмотрел и не понял к чему это
 
DreamX
мало информации, давай поподробнее

Ну ок, попытаюсь.
 
Для начала обмолвлюсь о макросах. Есть такая приблуда Microsoft Visual Basic. Собственно с помощью неё можно что-нибудь нашкодить. Это тоже будет считаться средствами Excel, как ты и просил.
 
Я же тебе навскидку предложил более примитивный ручной вариант. О нем и расскажу подробнее.
 
Кстати, когда дело дошло до "рассказать подробнее", ещё разок перечитал условия, и пришел к выводу, что либо я не смогу, либо надо немножко попроще.
 
Итак, немного подпилим - подшлифуем условия задачи.
 
Есть "большая" таблица в пару тысяч, а может и больше строк, засунутая в Excel (может изначально набранная в Excel`е, а может средствами импорта-экспорта туда запиханная не суть важно).  
Записи в этой таблице логично структурированы (т.е. у нас не просто какой-то высер, а таки нормальная с точки зрения банальной логики таблица). Например, если в каждой строке есть ячейка, обозначающая пол м/ж, то эта ячейка везде будет в одном столбце.
Есть "маленькая" таблица-массив строк в триста, повторяющая значения трёхсот строк (! не ячеек, иначе получается какой-то высер) из большой таблицы.
Причем строки в "маленькой" таблице-массиве уникальны, нет двух и более полностью одинаковых строк.
Задача: найти и покрасить в "большой" таблице строки, которые присутствуют в "маленькой" таблице-массиве.
 
Небольшое лирическое отступление. Я тут выше писал про высеры. В целом я не считаю подобные высеры таблицами, поэтому и называю их высерами. Но с другой стороны, даже в случае обоюдного высера задача решаема средствами Visual Basic.
 
Теперь вернемся к примеру. Даже, пожалуй, ещё немного упростим условия. Примем, что в имеющихся табличках есть столбец, содержащий уникальный идентификатор строки-позиции. Ну там код какой-нибудь, или уникальное название. (причем в первой, "большой" табличке строки могут повторяться, а в "маленькой" – нет). Назовем его ключевой столбец.
 
Ну и далее примитивный, практически ручной, но зато очень быстрый вариант. Подходит, если тебе такое надо сделать один разок по-быстренькому (ну или делать очень редко).
 
Тут будет ссылочка на файлик с примером, в котором в "большой" таблице 19`977 строк значений, в "маленькой" таблице-массиве 211 строк. Обе таблички содержат 7 столбцов, столбец_01 – ключевой.
 
В таблицах из примера изначально N столбцов. В "большую" таблицу в N+1 столбец забиваем формулу =ВПР(искомое_значение;таблица;номер_столбца;интервальный_просмотр)
Где:
искомое_значение – ссылка на ячейку ключевого столбца этой строки
таблица – ссылка на "маленькую" таблицу-массив
важно: 1) Ключевой столбец в маленькой таблице-массиве должен быть первым. Если он не первый, то добавляем вперед пустой столбец и вбиваем в него ссылку на ключевой
2) Чтобы при копировании формулы не съехала ссылка на маленькую табличку, в адресе ячеек не забываем добавить доллары "$"
 
номер_столбца – номер того столбца, из которого сюда будут подтягиваться значения. Для нашего примитивного случая абсолютно похуй какой номер.
 
интервальный_просмотр – напишем "ложь", чтобы искал точные совпадения.
 
В файлике нашего примера это будет выглядеть так:
H2 =ВПР(A2;smalltable!$A$2:$H$212;1;ЛОЖЬ)
 
Далее копируем полученную формулу во весь столбец:
Ctrl + C
Ctrl + \|/
<-
Ctrl + /|\
->
Ctrl + shift + /|\
Ctrl + V
 
Лирическое отступление. Умники, которые попробуют опуститься вниз через столбец слева, могут обломаться, в случае если столбец содержит пустые ячейки. Сам по-началу так обламывался, когда не замечал, что столбец то заполнен не весь, и часть данных таблички потом терялась.
Правда и в моем варианте тоже можно лососнуть, если пустые ячейки находятся как раз внизу столбца. Но ничего не помешает чутка сдвинуться стрелками, или снова упасть вниз, и подняться по более левому столбцу.
 
Итак, наш вспомогательный столбец заполнен. В строки, которые совпали, подтянулось некоторое значение. В строки, которые небыли найдены в "маленькой" таблице-массиве, подтянулось значение "#Н/Д". Если у тебя этого не произошло, то, возможно, у тебя отключено автоматическое вычисление, и надо жмакнуть F9 или покопаться в настройках.
 
Далее, следуя идее примитивизма, врубаем автофильтр, и говорим ему отфильтровать все строки, в которых значение ячеек вспомогательного N+1 столбца не равно "#Н/Д". Полученный список строк выделяем, красим. Отпускаем фильтр, наслаждаемся.
 
В целом вот так примитивненько.
С удовольствием рассмотрю иные варианты, делитесь.
 
Можно, конечно, поиграть ещё с "условным форматированием" вместо фильтра. Тогда даже закрашивание будет динамичным: изменения значения строк в "маленькой" таблице-массиве, будет приводить к изменению закраски в "большой" таблице.
 
Ну и напоследок ещё один хинт: если с виду в таблице нет ключевого столбца, то его можно создать сцепив несколько имеющихся (в вспомогательном столбце, который и будет ключевым, рисуем =ссылка_на_ячейку_недоключевого_столбца01& ссылка_на_ячейку_недоключевого_столбца02& ссылка_на_ячейку_недоключевого_столбца03)
Tёмный
pic
07 июн 2011 09:35

Редактировать
Ссылка на этот пост
о как!
красивости наведу чуть позже, когда ссылочку на файлик буду прикручивать.
у меня с работы фтп залочен, а выкладывать файлик на другие ресурсы - религия не позволяет.
Новое сообщение