|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.03.2009, 17:23 | #11 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
Лови готовое решение в двух вариантах:
1) Как я и говорил - стандартными функциями Excel 2) С использованием VBA. Я написал функцию Chek которая возвращает ИСТИНА при вхождении значения ячейки из одного интервала в другой.
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
20.03.2009, 17:32 | #12 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 64
|
Слушай а есть такая функция
Instr(значение ячейки, строка для сравнения;) > 0 Как бы ее присобачить сюда в строку If Cells(i, 2).Value = Cells(n, 7).Value Then Если написать If Instr(Cells(i, 2).Value, Cells(n, 7).Value ;) > 0 Then то так не прет, как бы сделать? Первый вариант не пойдет, так ка мне не нужен такой массив из 0 и 1 или ругих знаков, строение БД совсем другое и нужен именно акуратный "x" напротив ячейки с информацией. Насчет функии чек это конешно отлично что ты мне ее написал, и можно даже туда забить 200 значений хот я это паревно и можно ошибится и как тогда искать ошибку и где? Это же сума сойдешь согласись? И нужен "x" а не истина ложь, потому что иначе придется все переделывать в исходной БД Sub asd() For i = 2 To 4 For n = 2 To 3 If Cells(i, 2).Value = Cells(n, 7).Value Then Cells(i, 1).Select ActiveCell = "x" End If Next n Next i End Sub Последний раз редактировалось SoFuWa; 20.03.2009 в 17:37. |
20.03.2009, 17:41 | #13 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
Ты не прав, по поводу х.
Слегка доработав формулу можно выводить хоть х хоть +. Попробуй в ячейки с функцией Check прописать эту формулу: =ЕСЛИ(Check(B3;$E$2:$F$2);"X";"") Ну что? То что нужно? Я не понял вопрос про то если значения не найдены. Ты же спрашивал как поставить крестик напротив записи которая есть в проверяемом диапазоне?
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
20.03.2009, 17:43 | #14 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 64
|
Все спасибо за помощь, я просто лишний ; поставил , вот так все работает
Sub asd() For i = 2 To 4 For n = 2 To 3 If InStr(Cells(i, 2).Value, Cells(n, 7).Value) > 0 Then Cells(i, 1).Select ActiveCell = "x" End If Next n Next i End Sub И именно так как мне надо |
20.03.2009, 17:46 | #15 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 64
|
Да согласен так можно сделать =ЕСЛИ(Check(B3;$E$2:$F$2);"X";""), но я же говорю 200 значений, это очень длиная строка будт и можно ошибится при вводе координат ячеек, а если ошибешся то потом где ошибку искать это конешно удобно но паревно
Кстати я попробывал =ЕСЛИ(Check(B3;$E$2:$F$2);"X";" ") незнаю почему но не работает, везде ставит X даже где условие не срабатывает хотя если поставить Check(B3;$E$2:$F$2) то работает, можешь сам проверть Последний раз редактировалось SoFuWa; 20.03.2009 в 17:52. |
20.03.2009, 18:01 | #16 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
У меня всё работает, причём отлично
И опять повторюсь, я не понял проблему с 200 ячейками. Можешь по человечески объяснить что тебя смущает?
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
20.03.2009, 18:10 | #17 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
Тебя напрягает в формулу вместо $E$2:$F$2 вставить $E$2:$F$200???
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
20.03.2009, 18:21 | #18 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 64
|
Ааааа так можно, тогда я туплю, да так удобнее гораздо. Спасибо за помощь, ткок еще одна проблемочка, дело в том что в будущем придется вводить еще другие диапазоны, можно их добавить потом в функцию? Ну чтоб проверять не по 1 списку, а по двум например, и соответственно , для друго го списка нужен будет другой символ не "X"
Последний раз редактировалось SoFuWa; 20.03.2009 в 18:33. |
20.03.2009, 18:27 | #19 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
Ответы по порядку:
1.Функция Check пересчитывается так же как и стандартные функции Excel 2.По поводу ошибки, что конкретно пишет? Может быть дело в уровне безопасности? У тебя включен средний уровень? (Сервис\Макрос\Безопасность Уровень безопасности - Средняя)
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
20.03.2009, 18:35 | #20 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 64
|
Все ошибку больше не пишет, я незнаю почему писал, удалил, заного написал модуль, переоткрыл и все нормально, я сообщение исправил вопрос еще написал )) Спасибо шо помог )
в будущем придется вводить еще другие диапазоны, можно их добавить потом в функцию? Ну чтоб проверять не по 1 списку, а по двум например, и соответственно , для друго списка нужен будет другой символ не "X". Можешь тут написать или пример скинуть как добавить еще один диапазон? Или это наверное чере Если реализуется типа =ЕСЛИ(check(L2;$P$2:$P$108);"х";" ") AND ЕСЛИ(check(L2;$P$2:$P$108);"AH";" ") ну типа такого как то щас попробовать надо как там пишится точно Последний раз редактировалось SoFuWa; 20.03.2009 в 18:40. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите со скриптом | ZerokuL | Помощь студентам | 10 | 05.04.2008 11:07 |
Помогите разобраться со скриптом.... | fclmhooligan | JavaScript, Ajax | 13 | 14.02.2008 22:36 |