Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2011, 11:20   #1
Volgar
Новичок
Джуниор
 
Регистрация: 05.01.2011
Сообщений: 8
Вопрос Поиск элемента в одном столбце и замена в другом

Приветствую всех участников форума!

Потребовалось в большой таблице внести изменения. Нужно найти в одном столбце вхождение одного элемента и изменить в той же строке, но в другом столбце значение на третье.

Стандартными средствами Найти и заменить такое невозможно, нужен макрос, но в этом не силен. Подскажите, плиз.
Volgar вне форума Ответить с цитированием
Старый 05.01.2011, 11:46   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Без примера файла ничего не понятно.

В примере файла (XLS в архиве) подробно распишите, что на что надо менять.
EducatedFool вне форума Ответить с цитированием
Старый 05.01.2011, 12:03   #3
Volgar
Новичок
Джуниор
 
Регистрация: 05.01.2011
Сообщений: 8
По умолчанию

Например, в одном столбце у нас оценки (var value), во втором их текстовые значения (var desc).
Нужно дать всем оценкам в зависимости от номера описание.

Я легко это сделаю на PHP или AS3, но не знаю как в Excel (VB видимо)

Код:
for (var i:int = 0; i<value.lenght; i++){
if (value[i] =='5') {desc[i] = 'Отлично'}
if (value[i] =='4') {desc[i] = 'Хорошо'}
//Ну и так далее. То же самое можно сделать кейсом
}
Вложения
Тип файла: zip example.zip (3.8 Кб, 22 просмотров)
Volgar вне форума Ответить с цитированием
Старый 05.01.2011, 13:32   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в В2 пишете это
Код:
=ВЫБОР(A2;"";"неудовлетворительно";"удовлетворительно";"хорошо";"отлично")
и тянете за правый нижний уголок по столбику вниз
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.01.2011, 14:43   #5
Volgar
Новичок
Джуниор
 
Регистрация: 05.01.2011
Сообщений: 8
По умолчанию

IgorGO, спасибо. В данном конкретном примере, который я специально смоделировал, это работает.

Но мне нужно более общее решение ( я же не буду приводить свою таблицу с 5 тысячами строк и десятком столбцов), которое будет составлять результирующий столбец используя данные 3-4 разных столбцов. То есть ищет значение в одном столбце, берет в той же строке значение другого столбца и пишет в результирующий столбец в том же индексе (строке). Затем переходит к другому столбцу, там ищет новое значение, в зависимости от того что там за значение, переходит к четвертому и копирует данные в результирующий, при совпадении переписывая. Ну и т. д.
Volgar вне форума Ответить с цитированием
Старый 05.01.2011, 14:53   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а нам и не надо 5 тыс. строк, достаточно 10-20 штук. но таблицу-то надо увидеть, чтобы понимать тут лежат данные, сюда надо запихать результаты. тут как раз замечательно работает старинная пословица: лучше 1 раз увидеть, чем сто постов написать с обьяснениями
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.01.2011, 15:20   #7
Volgar
Новичок
Джуниор
 
Регистрация: 05.01.2011
Сообщений: 8
По умолчанию

Если я приведу свою таблицу, мне придется ещё описание в 3000 знаков к ней писать, что именно в моем конкретном случае нужно. Я вас так ещё больше запутаю.

Хорошо, в моем загруженном примере: итак создан второй столбец с "отлично", "хорошо" и т. д., как создать третий столбец который будет искать все значения "4" в первом столбце, переходить на тот же индекс второго столбца, брать там значение "Четыре" (или что-то другое что там будет) и копировать в тот же индекс третьего столбца?
Volgar вне форума Ответить с цитированием
Старый 05.01.2011, 15:33   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

задание - не строго, решение - как понял...
Вложения
Тип файла: rar Книга516.rar (7.0 Кб, 30 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.01.2011, 16:00   #9
Volgar
Новичок
Джуниор
 
Регистрация: 05.01.2011
Сообщений: 8
По умолчанию

О! Это уже кое-что. Спасибо.

=ЕСЛИ(B2=$C$1;B2;"")

А вложенность возможна? То есть типа =ЕСЛИ(B2=$C$1;B2;=ЕСЛИ(A2=$C$1;B2;" "))

Вот это $C$1 - как понять? Откуда берется?
Volgar вне форума Ответить с цитированием
Старый 05.01.2011, 16:17   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

судя по вопросам - офис Вы установили в этом году, а Excel до этого года не видели.
да, вложения возможны, не совсем понимаю, что Вы этим =ЕСЛИ(B2=$C$1;B2;=ЕСЛИ(A2=$C$1;B2;" ")) хотите добиться, но равно перед вторым если явно лишнее
$C$1 - это абсолютная ссылка на ячейку.
написанная в С2 формула =ЕСЛИ(B2=$C$1;B2;"") при копировании в С3 приобретает вид =ЕСЛИ(B3=$C$1;B3;"") ссылки с ячеки В2 автоматически настроились на В3, это относительные ссылки (вычисляются относительно ячейки в которой записана формула), а ссылка $C$1 - абсолютная, она не измениться при копировании формулы.

для эксперимента: в верхней строке вместо хорошо напишите отлично, колонка заполнится соответствующими значениями.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена в столбце Garrison Microsoft Office Excel 24 12.09.2012 17:31
Отображение формулы в одном столбце dyakon88 Microsoft Office Excel 6 25.11.2010 20:15
Макрос на сравнение и подсчет в первом столбце строк, и сумирование значений этих строк в другом столбце Shpr0T Microsoft Office Excel 8 30.08.2010 17:52
Привязка данных. Отображение дополнительной информации в одном ListBox, по выбору в другом opiume Общие вопросы .NET 0 17.03.2010 00:48
Замена в столбце siteograf Microsoft Office Excel 5 19.10.2009 02:27