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

Вход

Регистрация

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

 

= Мир MS Excel/анализ массива и поиск позиции по нескольким критериям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » анализ массива и поиск позиции по нескольким критериям (Формулы/Formulas)
анализ массива и поиск позиции по нескольким критериям
dimka_59 Дата: Вторник, 29.03.2016, 11:36 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго дня форумчанам!
Такая проблема возникла. Есть список договоров(номера не повторяются, они исключительные) от разных дат и разных поставщиков. В некоторые вносились изменения.
Я в отдельном столбце выделил поставщиков, у которых в договорах были изменения, и с которыми заключено более одного договора.
а вот теперь не могу найти тех, с кем были заключены договора после того как вносились изменения в ранее заключенные договора.
пример списка в файле ниже.
можно использовать дополнительные вкладки, что бы сформировать нужный массив....
Поправьте меня если я выставил не верный алгоритм - сначала программа должна проанализировать есть ли по данному поставщику изменения, затем найти все даты изменений договоров и после этого проанализировать является ли дата договора текущей строки более поздней чем найденные даты изменений...
К сообщению приложен файл: 7747975.xlsx (12.0 Kb)
 
Ответить
СообщениеДоброго дня форумчанам!
Такая проблема возникла. Есть список договоров(номера не повторяются, они исключительные) от разных дат и разных поставщиков. В некоторые вносились изменения.
Я в отдельном столбце выделил поставщиков, у которых в договорах были изменения, и с которыми заключено более одного договора.
а вот теперь не могу найти тех, с кем были заключены договора после того как вносились изменения в ранее заключенные договора.
пример списка в файле ниже.
можно использовать дополнительные вкладки, что бы сформировать нужный массив....
Поправьте меня если я выставил не верный алгоритм - сначала программа должна проанализировать есть ли по данному поставщику изменения, затем найти все даты изменений договоров и после этого проанализировать является ли дата договора текущей строки более поздней чем найденные даты изменений...

Автор - dimka_59
Дата добавления - 29.03.2016 в 11:36
_Boroda_ Дата: Вторник, 29.03.2016, 11:44 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=ЕСЛИ(СУММЕСЛИ(A$1:A1;A2;D$1:D1);"Менялся";"")
К сообщению приложен файл: 7747975_1.xlsx (12.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=ЕСЛИ(СУММЕСЛИ(A$1:A1;A2;D$1:D1);"Менялся";"")

Автор - _Boroda_
Дата добавления - 29.03.2016 в 11:44
abtextime Дата: Вторник, 29.03.2016, 11:52 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
я бы так сделал, как всегда, по рабоче-крестьянски:

Код
=ЕСЛИ(D2>0;ЕСЛИ(D2<C2;"Дата изменения не может быть раньше даты договора";"Договор с изменениями");"Договор без изменений")


Код
=ЕСЛИ(СЧЁТЕСЛИМН($E$2:$E$14;"Договор с изменениями";$A$2:$A$14;A16)>0;"Есть изменения в договорах";"Нет изменений в договорах")
К сообщению приложен файл: _7747975.xlsx (12.8 Kb)
 
Ответить
Сообщениея бы так сделал, как всегда, по рабоче-крестьянски:

Код
=ЕСЛИ(D2>0;ЕСЛИ(D2<C2;"Дата изменения не может быть раньше даты договора";"Договор с изменениями");"Договор без изменений")


Код
=ЕСЛИ(СЧЁТЕСЛИМН($E$2:$E$14;"Договор с изменениями";$A$2:$A$14;A16)>0;"Есть изменения в договорах";"Нет изменений в договорах")

Автор - abtextime
Дата добавления - 29.03.2016 в 11:52
dimka_59 Дата: Вторник, 29.03.2016, 12:00 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Спасибо за идею!
частично решена проблема.
Только в результате выходят договора, которые были заключены до изменений. А мне нужны только договора, которые были заключены после изменений в другие договора...
и еще там есть загвоздка, когда по одному из поставщиков вдажды вносились изменения и некоторые догвора были заключены после первой правки, а другие посе второй....
Всю голову изломал))))
Сначала уже думал вручную просматривать, но там их столько.... и с каждым месяцем все прибавляются и прибавляются.....


Сообщение отредактировал dimka_59 - Вторник, 29.03.2016, 12:09
 
Ответить
Сообщение_Boroda_, Спасибо за идею!
частично решена проблема.
Только в результате выходят договора, которые были заключены до изменений. А мне нужны только договора, которые были заключены после изменений в другие договора...
и еще там есть загвоздка, когда по одному из поставщиков вдажды вносились изменения и некоторые догвора были заключены после первой правки, а другие посе второй....
Всю голову изломал))))
Сначала уже думал вручную просматривать, но там их столько.... и с каждым месяцем все прибавляются и прибавляются.....

Автор - dimka_59
Дата добавления - 29.03.2016 в 12:00
abtextime Дата: Вторник, 29.03.2016, 12:08 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Можно попробовать перевести?

Вам нужно выделить все договоры для ДАННОГО контрагента, заключенные ПОСЛЕ даты ПОСЛЕДНЕГО ИЗМЕНЕНИЯ в любой договор для данного контрагента? Так?
 
Ответить
СообщениеМожно попробовать перевести?

Вам нужно выделить все договоры для ДАННОГО контрагента, заключенные ПОСЛЕ даты ПОСЛЕДНЕГО ИЗМЕНЕНИЯ в любой договор для данного контрагента? Так?

Автор - abtextime
Дата добавления - 29.03.2016 в 12:08
dimka_59 Дата: Вторник, 29.03.2016, 12:15 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
abtextime,
если бы все так "просто")))
нужно найти договора, которые были заключены не просто после ПОСЛЕДНЕГО изменения, а ВСЕ после ЛЮБОГО изменения.(к примеру МВидео - после изменения 21.01.2016 было заключено 2 договора, а после изменений 01.03.2016 - только один....)
А если будет выделять после изменения какого договора был заключен договор - было бы вообще идеально.

Но я склоняюсь к мысли что это уже из разряда системного програмирования и буду искать хотя бы все договора заключенные после последнего изменения и потом их вручную сравнивать с последним вариантом.
 
Ответить
Сообщениеabtextime,
если бы все так "просто")))
нужно найти договора, которые были заключены не просто после ПОСЛЕДНЕГО изменения, а ВСЕ после ЛЮБОГО изменения.(к примеру МВидео - после изменения 21.01.2016 было заключено 2 договора, а после изменений 01.03.2016 - только один....)
А если будет выделять после изменения какого договора был заключен договор - было бы вообще идеально.

Но я склоняюсь к мысли что это уже из разряда системного програмирования и буду искать хотя бы все договора заключенные после последнего изменения и потом их вручную сравнивать с последним вариантом.

Автор - dimka_59
Дата добавления - 29.03.2016 в 12:15
_Boroda_ Дата: Вторник, 29.03.2016, 12:18 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А так?
Код
=ЕСЛИ(C2>МАКС((A$2:A2=A2)*D$2:D2);"менялся";"")
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер)
К сообщению приложен файл: 7747975_2.xlsx (13.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА так?
Код
=ЕСЛИ(C2>МАКС((A$2:A2=A2)*D$2:D2);"менялся";"")
Формула массива. Вводится одновременным нажатием Контрл Шифт Ентер)

Автор - _Boroda_
Дата добавления - 29.03.2016 в 12:18
dimka_59 Дата: Вторник, 29.03.2016, 12:21 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
пока получился такой результат. желтым выделил тех, которых смог правильно промаркировать.
но!
те которые не получилось "поймать" формулой - выделил рыжим цветом. по ним пока не получиось выставить маркер "менялся".
К сообщению приложен файл: 3225686.xlsx (13.2 Kb)
 
Ответить
Сообщениепока получился такой результат. желтым выделил тех, которых смог правильно промаркировать.
но!
те которые не получилось "поймать" формулой - выделил рыжим цветом. по ним пока не получиось выставить маркер "менялся".

Автор - dimka_59
Дата добавления - 29.03.2016 в 12:21
abtextime Дата: Вторник, 29.03.2016, 12:22 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
Никаких супер-кардинальных трудностей в алгоритмизации любого признака в Excel нет (тем более, с учетом наличия в нем VBA). Вопрос лишь в очень чёткой формализации задачи. Я попытался это сделать за Вас - не угадал. Попробуйте и Вы это сделать (в том же ключе)

P.S. Область задач СИСТЕМНОГО программирования весьма далека от ПРИКЛАДНЫХ задач, одну из которых мы и обсуждаем.


Сообщение отредактировал abtextime - Вторник, 29.03.2016, 12:23
 
Ответить
СообщениеНикаких супер-кардинальных трудностей в алгоритмизации любого признака в Excel нет (тем более, с учетом наличия в нем VBA). Вопрос лишь в очень чёткой формализации задачи. Я попытался это сделать за Вас - не угадал. Попробуйте и Вы это сделать (в том же ключе)

P.S. Область задач СИСТЕМНОГО программирования весьма далека от ПРИКЛАДНЫХ задач, одну из которых мы и обсуждаем.

Автор - abtextime
Дата добавления - 29.03.2016 в 12:22
dimka_59 Дата: Вторник, 29.03.2016, 12:31 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, а почему маркер "менялся" выходит и по техносиле и эксперту? по ним же изменений не было.
 
Ответить
Сообщение_Boroda_, а почему маркер "менялся" выходит и по техносиле и эксперту? по ним же изменений не было.

Автор - dimka_59
Дата добавления - 29.03.2016 в 12:31
dimka_59 Дата: Вторник, 29.03.2016, 12:33 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
abtextime, без обид)))
я просто не силен в терминологии.
постарался объяснить как мог, чего пытаюсь добиться... теперь надеюсь полностью понятна задача?
 
Ответить
Сообщениеabtextime, без обид)))
я просто не силен в терминологии.
постарался объяснить как мог, чего пытаюсь добиться... теперь надеюсь полностью понятна задача?

Автор - dimka_59
Дата добавления - 29.03.2016 в 12:33
_Boroda_ Дата: Вторник, 29.03.2016, 12:34 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
_Boroda_, а почему маркер "менялся" выходит и по техносиле и эксперту?

Потому, что я неверно написал.
Вот так проверяйте. Во второй строке формулы нет. И не нужно.
Код
=ЕСЛИ(C3>=МИН(--ТЕКСТ((A$2:A2=A3)*D$2:D2;"0;0;99999"));"менялся";"")
К сообщению приложен файл: 7747975_3.xlsx (13.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
_Boroda_, а почему маркер "менялся" выходит и по техносиле и эксперту?

Потому, что я неверно написал.
Вот так проверяйте. Во второй строке формулы нет. И не нужно.
Код
=ЕСЛИ(C3>=МИН(--ТЕКСТ((A$2:A2=A3)*D$2:D2;"0;0;99999"));"менялся";"")

Автор - _Boroda_
Дата добавления - 29.03.2016 в 12:34
abtextime Дата: Вторник, 29.03.2016, 12:38 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация: 117 ±
Замечаний: 0% ±

Excel 2010
dimka_59

мне - нет :)

но раз за дело взялся _Boroda_ - значит он понимает, чего Вы хотите

P.S. Обиды-то при чём? )))
 
Ответить
Сообщениеdimka_59

мне - нет :)

но раз за дело взялся _Boroda_ - значит он понимает, чего Вы хотите

P.S. Обиды-то при чём? )))

Автор - abtextime
Дата добавления - 29.03.2016 в 12:38
dimka_59 Дата: Вторник, 29.03.2016, 12:43 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, СПАСИБО ОГРОМНОЕ!!!!
просто БОГ Ecxelя!!!!
хотел уточнить - судя по формуле - нужно отсортировать массив по дате заключения договоров внутри каждого из поставщиков? иначе она не будет корректно работать?

Еще раз СПАСИБО ВСЕМ за помощь!!! и как говорят у нас в Пензе - всем доброго здоровья!!!
 
Ответить
Сообщение_Boroda_, СПАСИБО ОГРОМНОЕ!!!!
просто БОГ Ecxelя!!!!
хотел уточнить - судя по формуле - нужно отсортировать массив по дате заключения договоров внутри каждого из поставщиков? иначе она не будет корректно работать?

Еще раз СПАСИБО ВСЕМ за помощь!!! и как говорят у нас в Пензе - всем доброго здоровья!!!

Автор - dimka_59
Дата добавления - 29.03.2016 в 12:43
dimka_59 Дата: Вторник, 29.03.2016, 13:09 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, это я решил уточнить, что бы верно массив подготовить.
 
Ответить
Сообщение_Boroda_, это я решил уточнить, что бы верно массив подготовить.

Автор - dimka_59
Дата добавления - 29.03.2016 в 13:09
dimka_59 Дата: Вторник, 29.03.2016, 14:52 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
подскажи пожалуйста, почему если я ввожу твою формулу с учетом смещения данных на 4 позиции вправо (т.е. наименование поставщика у меня не в столбце "А" а в столбце "D" и корректирую соответственно ссылки - то она не срабатывает?
стоит ввести данные по тем столбцам как есть - все работает? (ввожу с учетом массива данных, т.е. через контрл+шифт+ентер)
=ЕСЛИ(C3>=МИН(--ТЕКСТ((A$2:A2=A3)*D$2:D2;"0;0;99999"));"менялся";"") - работает
=ЕСЛИ(F3>=МИН(--ТЕКСТ((D$2:D2=D3)*G$2:G2;"0;0;99999"));"менялся";"") - не работает...
 
Ответить
Сообщение_Boroda_,
подскажи пожалуйста, почему если я ввожу твою формулу с учетом смещения данных на 4 позиции вправо (т.е. наименование поставщика у меня не в столбце "А" а в столбце "D" и корректирую соответственно ссылки - то она не срабатывает?
стоит ввести данные по тем столбцам как есть - все работает? (ввожу с учетом массива данных, т.е. через контрл+шифт+ентер)
=ЕСЛИ(C3>=МИН(--ТЕКСТ((A$2:A2=A3)*D$2:D2;"0;0;99999"));"менялся";"") - работает
=ЕСЛИ(F3>=МИН(--ТЕКСТ((D$2:D2=D3)*G$2:G2;"0;0;99999"));"менялся";"") - не работает...

Автор - dimka_59
Дата добавления - 29.03.2016 в 14:52
Мир MS Excel » Вопросы и решения » Вопросы по Excel » анализ массива и поиск позиции по нескольким критериям (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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