![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
![]()
Лови готовое решение в двух вариантах:
1) Как я и говорил - стандартными функциями Excel 2) С использованием VBA. Я написал функцию Chek которая возвращает ИСТИНА при вхождении значения ячейки из одного интервала в другой.
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
![]()
Ты не прав, по поводу х.
Слегка доработав формулу можно выводить хоть х хоть +. Попробуй в ячейки с функцией Check прописать эту формулу: =ЕСЛИ(Check(B3;$E$2:$F$2);"X";"") Ну что? То что нужно? Я не понял вопрос про то если значения не найдены. Ты же спрашивал как поставить крестик напротив записи которая есть в проверяемом диапазоне?
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
![]() |
![]() |
![]() |
#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 И именно так как мне надо |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
![]()
У меня всё работает, причём отлично
![]() И опять повторюсь, я не понял проблему с 200 ячейками. Можешь по человечески объяснить что тебя смущает?
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
![]()
Тебя напрягает в формулу вместо $E$2:$F$2 вставить $E$2:$F$200???
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 14.08.2008
Сообщений: 64
|
![]()
Ааааа так можно, тогда я туплю, да так удобнее гораздо. Спасибо за помощь, ткок еще одна проблемочка, дело в том что в будущем придется вводить еще другие диапазоны, можно их добавить потом в функцию? Ну чтоб проверять не по 1 списку, а по двум например, и соответственно , для друго го списка нужен будет другой символ не "X"
Последний раз редактировалось SoFuWa; 20.03.2009 в 18:33. |
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 18
|
![]()
Ответы по порядку:
1.Функция Check пересчитывается так же как и стандартные функции Excel 2.По поводу ошибки, что конкретно пишет? Может быть дело в уровне безопасности? У тебя включен средний уровень? (Сервис\Макрос\Безопасность Уровень безопасности - Средняя)
VBA нужно использовать тогда, когда стандартные средства Excel бессильны....
|
![]() |
![]() |
![]() |
#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 |