Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выбор трех любых разных значений - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выбор трех любых разных значений
ПАМ Дата: Четверг, 29.05.2014, 15:53 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
Доброго времени суток! Помогите пожалуйста разобраться:
Мне нужно, чтобы при наборе 3 любых значений в ячейке А2 из ячейки В2 в ячейке С2 была 1?
Можно ли это сделать без макросов? Заранее спасибо!
Очень приятно, что тут такой хороший форум!
К сообщению приложен файл: 6502598.xlsx (8.9 Kb)


Сообщение отредактировал ПАМ - Пятница, 30.05.2014, 12:57
 
Ответить
СообщениеДоброго времени суток! Помогите пожалуйста разобраться:
Мне нужно, чтобы при наборе 3 любых значений в ячейке А2 из ячейки В2 в ячейке С2 была 1?
Можно ли это сделать без макросов? Заранее спасибо!
Очень приятно, что тут такой хороший форум!

Автор - ПАМ
Дата добавления - 29.05.2014 в 15:53
Nic70y Дата: Четверг, 29.05.2014, 16:10 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9154
Репутация: 2427 ±
Замечаний: 0% ±

Excel 2010
Код
=--((ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;",";"");" ";ПОВТОР(" ";99));1;99));B2))+ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;",";"");" ";ПОВТОР(" ";99));99;99));B2))+ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;",";"");" ";ПОВТОР(" ";99));188;99));B2)))=3)
так наверное


ЮMoney 41001841029809
 
Ответить
Сообщение
Код
=--((ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;",";"");" ";ПОВТОР(" ";99));1;99));B2))+ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;",";"");" ";ПОВТОР(" ";99));99;99));B2))+ЕЧИСЛО(ПОИСК(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;",";"");" ";ПОВТОР(" ";99));188;99));B2)))=3)
так наверное

Автор - Nic70y
Дата добавления - 29.05.2014 в 16:10
ПАМ Дата: Пятница, 30.05.2014, 07:31 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
Nic70y, понимаете! он сразу пишет 1, а чтобы он только писал 1 когда уже введены 3 слова из ячейки А2, а когда А2 пустует значит 0
Спасибо!
 
Ответить
СообщениеNic70y, понимаете! он сразу пишет 1, а чтобы он только писал 1 когда уже введены 3 слова из ячейки А2, а когда А2 пустует значит 0
Спасибо!

Автор - ПАМ
Дата добавления - 30.05.2014 в 07:31
ПАМ Дата: Понедельник, 02.06.2014, 15:51 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
Дамы и Господа! Наверно мою тему надо закрывать)) не очень толково я ее изложил))всем спасибо.
 
Ответить
СообщениеДамы и Господа! Наверно мою тему надо закрывать)) не очень толково я ее изложил))всем спасибо.

Автор - ПАМ
Дата добавления - 02.06.2014 в 15:51
Serge_007 Дата: Понедельник, 02.06.2014, 16:04 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2750 ±
Замечаний: ±

Excel 2016
при наборе 3 любых значений
Как Вы их собрались "набирать"? Через запятую?
Формула получится зубодробительной
Бросайте это дело и вводите значения по одному, в А2:А4
Как только будет три значения из списка, формула
Код
=--(SUMPRODUCT(--(ISNUMBER(SEARCH(A2:A4;B2))))=3)
(перевод по флажку слева от формулы) вернет 1


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
при наборе 3 любых значений
Как Вы их собрались "набирать"? Через запятую?
Формула получится зубодробительной
Бросайте это дело и вводите значения по одному, в А2:А4
Как только будет три значения из списка, формула
Код
=--(SUMPRODUCT(--(ISNUMBER(SEARCH(A2:A4;B2))))=3)
(перевод по флажку слева от формулы) вернет 1

Автор - Serge_007
Дата добавления - 02.06.2014 в 16:04
Rioran Дата: Понедельник, 02.06.2014, 16:13 | Сообщение № 6
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ПАМ, здравствуйте.

Всё же попробую решить задачу =) Во вложении общий набросок решения. Чувствительность к дублированию значений пока отсутствует (можно ввести 2 одинаковых целевых значения и ещё одно - и даст 1-ку), но это исправимо. Пока интересно - приемлем ли в целом такой подход? Разные значения разнесены по разным ячейкам.
К сообщению приложен файл: Tripple_Search.xlsx (9.7 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеПАМ, здравствуйте.

Всё же попробую решить задачу =) Во вложении общий набросок решения. Чувствительность к дублированию значений пока отсутствует (можно ввести 2 одинаковых целевых значения и ещё одно - и даст 1-ку), но это исправимо. Пока интересно - приемлем ли в целом такой подход? Разные значения разнесены по разным ячейкам.

Автор - Rioran
Дата добавления - 02.06.2014 в 16:13
AlexM Дата: Понедельник, 02.06.2014, 17:49 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Еще решение. Формула массивная
Код
=--(СУММ(--(ПСТР(A2;7*(СТРОКА($1:$3)-1)+1;5)=ТРАНСП(ПСТР(B2;7*(СТРОКА($1:$6)-1)+1;5))))=3)
К сообщению приложен файл: 6502598_new.xls (23.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 02.06.2014, 17:50
 
Ответить
СообщениеЕще решение. Формула массивная
Код
=--(СУММ(--(ПСТР(A2;7*(СТРОКА($1:$3)-1)+1;5)=ТРАНСП(ПСТР(B2;7*(СТРОКА($1:$6)-1)+1;5))))=3)

Автор - AlexM
Дата добавления - 02.06.2014 в 17:49
ПАМ Дата: Вторник, 03.06.2014, 07:45 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
Спасибо!!Вы настоящие профи! Все отлично работает! СПАСИБО!
 
Ответить
СообщениеСпасибо!!Вы настоящие профи! Все отлично работает! СПАСИБО!

Автор - ПАМ
Дата добавления - 03.06.2014 в 07:45
ПАМ Дата: Вторник, 03.06.2014, 08:55 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
AlexM, подскажите пожалуйста до меня немного не доходит как изменить вашу формулу массива, если искомых значений (ячейка В2) не 6 например а 10 а слов нужно 4 или 5? спасибо за помощь!
 
Ответить
СообщениеAlexM, подскажите пожалуйста до меня немного не доходит как изменить вашу формулу массива, если искомых значений (ячейка В2) не 6 например а 10 а слов нужно 4 или 5? спасибо за помощь!

Автор - ПАМ
Дата добавления - 03.06.2014 в 08:55
AlexM Дата: Вторник, 03.06.2014, 09:38 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Для ячейки В2
Код
СТРОКА($1:$6)
число 6 указывает количество слов в ячейке В2.
Для ячейки А2
Код
СТРОКА($1:$3)
число 3 указывает количество слов в ячейке А2
Тройка в конце формулы задает количество совпадений слов.
Так что если в В2 10 слов, в А2 вводим 5 слов, а совпадать должно 4, то формула такая
Код
=--(СУММ(--(ПСТР(A2;7*(СТРОКА($1:$5)-1)+1;5)=ТРАНСП(ПСТР(B2;7*(СТРОКА($1:$10)-1)+1;5))))=4)

Формула будет правильно работать, если слова из 5 букв и разделены двумя символами, например как у вас ", " (запятая и пробел)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеДля ячейки В2
Код
СТРОКА($1:$6)
число 6 указывает количество слов в ячейке В2.
Для ячейки А2
Код
СТРОКА($1:$3)
число 3 указывает количество слов в ячейке А2
Тройка в конце формулы задает количество совпадений слов.
Так что если в В2 10 слов, в А2 вводим 5 слов, а совпадать должно 4, то формула такая
Код
=--(СУММ(--(ПСТР(A2;7*(СТРОКА($1:$5)-1)+1;5)=ТРАНСП(ПСТР(B2;7*(СТРОКА($1:$10)-1)+1;5))))=4)

Формула будет правильно работать, если слова из 5 букв и разделены двумя символами, например как у вас ", " (запятая и пробел)

Автор - AlexM
Дата добавления - 03.06.2014 в 09:38
ПАМ Дата: Вторник, 03.06.2014, 09:44 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
а если слова не из 5 букв а из восьми или семи? А так большое вам человеческое спасибо!
 
Ответить
Сообщениеа если слова не из 5 букв а из восьми или семи? А так большое вам человеческое спасибо!

Автор - ПАМ
Дата добавления - 03.06.2014 в 09:44
ПАМ Дата: Вторник, 03.06.2014, 09:57 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
попробывал поменять в формуле 5 на 8
Код
=--(СУММ(--(ПСТР(A2;7*(СТРОКА($1:$3)-1)+1;8)=ТРАНСП(ПСТР(B2;7*(СТРОКА($1:$6)-1)+1;8))))=3)


не получается


Сообщение отредактировал Serge_007 - Вторник, 03.06.2014, 10:10
 
Ответить
Сообщениепопробывал поменять в формуле 5 на 8
Код
=--(СУММ(--(ПСТР(A2;7*(СТРОКА($1:$3)-1)+1;8)=ТРАНСП(ПСТР(B2;7*(СТРОКА($1:$6)-1)+1;8))))=3)


не получается

Автор - ПАМ
Дата добавления - 03.06.2014 в 09:57
AlexM Дата: Вторник, 03.06.2014, 09:57 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
В функции ПСТР() третий аргумент пятерка указывает длину слова, а 7 перед функцией СТРОКА() интервал между первыми буквами слов 5+2=7, где 2 это запятая и пробел.
Если в ячейках слова будут разной дины, то лучше сделать функцию пользователя, так как формула получится гигантской.
В функции пользователя можно применить тот же алгоритм как в формуле.
Создать два массива с помощью функции Split, перемножить их, а затем суммировать все элементы полученного массива.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВ функции ПСТР() третий аргумент пятерка указывает длину слова, а 7 перед функцией СТРОКА() интервал между первыми буквами слов 5+2=7, где 2 это запятая и пробел.
Если в ячейках слова будут разной дины, то лучше сделать функцию пользователя, так как формула получится гигантской.
В функции пользователя можно применить тот же алгоритм как в формуле.
Создать два массива с помощью функции Split, перемножить их, а затем суммировать все элементы полученного массива.

Автор - AlexM
Дата добавления - 03.06.2014 в 09:57
ПАМ Дата: Вторник, 03.06.2014, 10:02 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 317
Репутация: 11 ±
Замечаний: 20% ±

Excel 2010, Excel 2016
все!! Я понял!!СПАСИБО!!! respect respect respect
[p.s.]А мне надо как завещал Ленин: Учиться, учиться и еще раз учиться :) :) :)
 
Ответить
Сообщениевсе!! Я понял!!СПАСИБО!!! respect respect respect
[p.s.]А мне надо как завещал Ленин: Учиться, учиться и еще раз учиться :) :) :)

Автор - ПАМ
Дата добавления - 03.06.2014 в 10:02
AlexM Дата: Вторник, 03.06.2014, 10:43 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1130 ±
Замечаний: 0% ±

Excel 2003
Функция пользователя[vba]
Код
Function Sovpadeniya(Nabor1 As String, Nabor2 As String, Kolichestvo As Long) As Long
Dim a, b, i As Long, j As Long, n As Long
a = Split(Nabor1, ", "): b = Split(Nabor2, ", ")
For i = 0 To UBound(a)
     For j = 0 To UBound(b)
         If a(i) = b(j) Then n = n + 1
     Next j
Next i
Sovpadeniya = IIf(n = Kolichestvo, 1, 0)
End Function
[/vba]
Слова должны быть разделены ", " (запятая и пробел) символа перевода строки не должно быть.
В наборах слова могут быть разной длины.
Количество слов в наборе любое. Количество слов повлияет на скорость обработки.
Количество совпадений можно задать в аргументе функции.
К сообщению приложен файл: 6502598_new1.xls (32.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеФункция пользователя[vba]
Код
Function Sovpadeniya(Nabor1 As String, Nabor2 As String, Kolichestvo As Long) As Long
Dim a, b, i As Long, j As Long, n As Long
a = Split(Nabor1, ", "): b = Split(Nabor2, ", ")
For i = 0 To UBound(a)
     For j = 0 To UBound(b)
         If a(i) = b(j) Then n = n + 1
     Next j
Next i
Sovpadeniya = IIf(n = Kolichestvo, 1, 0)
End Function
[/vba]
Слова должны быть разделены ", " (запятая и пробел) символа перевода строки не должно быть.
В наборах слова могут быть разной длины.
Количество слов в наборе любое. Количество слов повлияет на скорость обработки.
Количество совпадений можно задать в аргументе функции.

Автор - AlexM
Дата добавления - 03.06.2014 в 10:43
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!