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

Вход

Регистрация

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

 

= Мир MS Excel/Сравнить результаты одного столбца, с двумя другими - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сравнить результаты одного столбца, с двумя другими
pain2430 Дата: Пятница, 24.05.2019, 20:53 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 11 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте. Прошу помощи решить вот такое вот задание....
Основной столбец "H", в котором в рандомном порядке записаны значения "G" и "R".
Есть так же столбцы "D" и "F" в которых записаны такие же значенения "G" и "R" в рандомном порядке.
Столбец K - результат следующих вычислений:
Когда в столбце H, появляется значение "G", формула должна искать значение "R" в столбцах D и F начиная со следующей строки.
Когда в столбце H, появляется значение "R", пропускаем диапазон, ищем следующее "G".
Если по пути к "R" встречается "G" (в одной из колонок), тогда в колонке результата "K" должно быть значение "B".
Если по пути к "R", в одной строке (В обеих колонках) будут "G" и "G", тогда в колонке "K" должно быть значение "B"
Если по пути к "R" , в одной строке (В обеих колонках) будут "R" и "G" одновременно (или "G" и "R"), тогда в колонке "K" пустота.
Если находим "R" (в одной из колонок), тогда в колонке "K" должно быть значение "A".
Если находим "R" и "R" (в обеих колонках, тогда в колонке "K" должно быть значение "A".

Если найдено "R", переходим к следующему значению в колонке "H". (то есть не считаем значения после найденного "R", до следующего G в колонке "H")
Как это реализовать формулой либо кодом ?

Спасибо!
К сообщению приложен файл: -1-.xlsx (9.8 Kb)
 
Ответить
СообщениеЗдравствуйте. Прошу помощи решить вот такое вот задание....
Основной столбец "H", в котором в рандомном порядке записаны значения "G" и "R".
Есть так же столбцы "D" и "F" в которых записаны такие же значенения "G" и "R" в рандомном порядке.
Столбец K - результат следующих вычислений:
Когда в столбце H, появляется значение "G", формула должна искать значение "R" в столбцах D и F начиная со следующей строки.
Когда в столбце H, появляется значение "R", пропускаем диапазон, ищем следующее "G".
Если по пути к "R" встречается "G" (в одной из колонок), тогда в колонке результата "K" должно быть значение "B".
Если по пути к "R", в одной строке (В обеих колонках) будут "G" и "G", тогда в колонке "K" должно быть значение "B"
Если по пути к "R" , в одной строке (В обеих колонках) будут "R" и "G" одновременно (или "G" и "R"), тогда в колонке "K" пустота.
Если находим "R" (в одной из колонок), тогда в колонке "K" должно быть значение "A".
Если находим "R" и "R" (в обеих колонках, тогда в колонке "K" должно быть значение "A".

Если найдено "R", переходим к следующему значению в колонке "H". (то есть не считаем значения после найденного "R", до следующего G в колонке "H")
Как это реализовать формулой либо кодом ?

Спасибо!

Автор - pain2430
Дата добавления - 24.05.2019 в 20:53
Светлый Дата: Пятница, 24.05.2019, 23:38 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1871
Репутация: 538 ±
Замечаний: 0% ±

Excel 2013, 2016
Здравствуйте!
Возможно, я чего-то недопонял. Два варианта массивных формул. Оба имеют отклонения. Проверьте, может подойдёт:
Код
=ЕСЛИ((МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0)+(H10="G");"";ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1))
Код
=ЕСЛИ((МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0)+(H10>"");"";ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1))
*Непонятны строки 19, 24, 37.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Суббота, 25.05.2019, 00:12
 
Ответить
СообщениеЗдравствуйте!
Возможно, я чего-то недопонял. Два варианта массивных формул. Оба имеют отклонения. Проверьте, может подойдёт:
Код
=ЕСЛИ((МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0)+(H10="G");"";ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1))
Код
=ЕСЛИ((МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0)+(H10>"");"";ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1))
*Непонятны строки 19, 24, 37.

Автор - Светлый
Дата добавления - 24.05.2019 в 23:38
pain2430 Дата: Суббота, 25.05.2019, 00:55 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 11 ±
Замечаний: 0% ±

Excel 2010
Цитата Светлый, 24.05.2019 в 23:38, в сообщении № 2 ()
*Непонятны строки 19, 24, 37.

Здравствуйте, Светлый! Спасибо за отклик!
Вторая массивная формула работает немножко точнее нежели первая :) Но нужны коррективы :(
По 19 строке: диапазон в котором нужно найти "R" или "R-R"(в обеих строках), начался в ячейке "H17", в нем значение "G". В 18 строке, мы уже нашли нужное нам "R-R"(и в K18 стоит "А"), по этому поиск должен "прекратится". Следующая строка(19-ая = "R"), не подходит под условие(пропускаем).
Следующий диапазон поиска начинается в строке 21, потому что в предыдущей строке, в ячейке "H20", стоит "G" - подходит. Начинаем опять поиск "R", или "R-R" в обеих строках.
По 24 строке: в H24, стоит R, то есть не подходит под наш критерий. Значит пропускаем диапазон, до следующего "G". То есть пропускаем строки 24-35. В 35 строке стоит "G", значит начинаем поиск в 36 строке.
По 37 строке: диапазон поиска начался начиная от последнего "G" в ячейке H35. Начиная с 36 строки, начался поиск "R" или "R-R". В 36 строке стоит "G", значит отмечаем в колонке результата, что это "B". Ищем дальше в строке 37, и находим там "R", значит условие выполнилось, и должно стоять "A" (в К37). После этого ищем (следующий диапазон), начнется он в 54 строке, потому что в H53 = "G".
Очень надеюсь что нормально объяснил :) Спасибо!
 
Ответить
Сообщение
Цитата Светлый, 24.05.2019 в 23:38, в сообщении № 2 ()
*Непонятны строки 19, 24, 37.

Здравствуйте, Светлый! Спасибо за отклик!
Вторая массивная формула работает немножко точнее нежели первая :) Но нужны коррективы :(
По 19 строке: диапазон в котором нужно найти "R" или "R-R"(в обеих строках), начался в ячейке "H17", в нем значение "G". В 18 строке, мы уже нашли нужное нам "R-R"(и в K18 стоит "А"), по этому поиск должен "прекратится". Следующая строка(19-ая = "R"), не подходит под условие(пропускаем).
Следующий диапазон поиска начинается в строке 21, потому что в предыдущей строке, в ячейке "H20", стоит "G" - подходит. Начинаем опять поиск "R", или "R-R" в обеих строках.
По 24 строке: в H24, стоит R, то есть не подходит под наш критерий. Значит пропускаем диапазон, до следующего "G". То есть пропускаем строки 24-35. В 35 строке стоит "G", значит начинаем поиск в 36 строке.
По 37 строке: диапазон поиска начался начиная от последнего "G" в ячейке H35. Начиная с 36 строки, начался поиск "R" или "R-R". В 36 строке стоит "G", значит отмечаем в колонке результата, что это "B". Ищем дальше в строке 37, и находим там "R", значит условие выполнилось, и должно стоять "A" (в К37). После этого ищем (следующий диапазон), начнется он в 54 строке, потому что в H53 = "G".
Очень надеюсь что нормально объяснил :) Спасибо!

Автор - pain2430
Дата добавления - 25.05.2019 в 00:55
Светлый Дата: Суббота, 25.05.2019, 08:49 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1871
Репутация: 538 ±
Замечаний: 0% ±

Excel 2013, 2016
Тогда такой массивный вариант:
Код
=ЕСЛИ(ИЛИ(ИНДЕКС(K$1:K9;МАКС((H$9:H9="G")*СТРОКА($9:9))):K9="A";МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0);"";СЖПРОБЕЛЫ(ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1)))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеТогда такой массивный вариант:
Код
=ЕСЛИ(ИЛИ(ИНДЕКС(K$1:K9;МАКС((H$9:H9="G")*СТРОКА($9:9))):K9="A";МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0);"";СЖПРОБЕЛЫ(ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1)))

Автор - Светлый
Дата добавления - 25.05.2019 в 08:49
pain2430 Дата: Суббота, 25.05.2019, 16:41 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 11 ±
Замечаний: 0% ±

Excel 2010
Цитата Светлый, 25.05.2019 в 08:49, в сообщении № 4 ()
Тогда такой массивный вариант:
[Перевод / Translate]
=ЕСЛИ(ИЛИ(ИНДЕКС(K$1:K9;МАКС((H$9:H9="G")*СТРОКА($9:9))):K9="A";МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0);"";СЖПРОБЕЛЫ(ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1)))

Спасибо, Светлый! Вы гений! :)
Еще такой вопрос...а как теперь подсчитать кол-во A в диапазоне, и кол-во B? СЧЁТЕСЛИ не работает :(
 
Ответить
Сообщение
Цитата Светлый, 25.05.2019 в 08:49, в сообщении № 4 ()
Тогда такой массивный вариант:
[Перевод / Translate]
=ЕСЛИ(ИЛИ(ИНДЕКС(K$1:K9;МАКС((H$9:H9="G")*СТРОКА($9:9))):K9="A";МАКС((H$9:H9="R")*СТРОКА($9:9))-МАКС((H$9:H9="G")*СТРОКА($9:9))>=0);"";СЖПРОБЕЛЫ(ПСТР(" A B";ПОИСК(D10&F10;" RRGGR");1)))

Спасибо, Светлый! Вы гений! :)
Еще такой вопрос...а как теперь подсчитать кол-во A в диапазоне, и кол-во B? СЧЁТЕСЛИ не работает :(

Автор - pain2430
Дата добавления - 25.05.2019 в 16:41
Светлый Дата: Суббота, 25.05.2019, 16:49 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1871
Репутация: 538 ±
Замечаний: 0% ±

Excel 2013, 2016
Всё работает:
Код
=СЧЁТЕСЛИ(K:K;"A")
Код
=СЧЁТЕСЛИ(K:K;"B")


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВсё работает:
Код
=СЧЁТЕСЛИ(K:K;"A")
Код
=СЧЁТЕСЛИ(K:K;"B")

Автор - Светлый
Дата добавления - 25.05.2019 в 16:49
pain2430 Дата: Суббота, 25.05.2019, 17:02 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 65
Репутация: 11 ±
Замечаний: 0% ±

Excel 2010
Цитата Светлый, 25.05.2019 в 16:49, в сообщении № 6 ()
Всё работает:

Все, я понял. Просто вводил СЧЁТЕСЛИ в ячейке K8, из-за этого выдавало ошибку.
Спасибо Вам огромное!
 
Ответить
Сообщение
Цитата Светлый, 25.05.2019 в 16:49, в сообщении № 6 ()
Всё работает:

Все, я понял. Просто вводил СЧЁТЕСЛИ в ячейке K8, из-за этого выдавало ошибку.
Спасибо Вам огромное!

Автор - pain2430
Дата добавления - 25.05.2019 в 17:02
  • Страница 1 из 1
  • 1
Поиск:

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