Перво наперво приветствую всех участников форму. Уже лет 10 как ни на каких форумах не регистрировался. Увидев стандартную форму регистрации (Придумайте подпись), ностальгически улыбнулся. А теперь собственно вопрос. Имеется таблица из 7 столбцов. 1 столбец дата, остальные 6 набор чисел. Те набор из 6 цифр соответствует дате. Мне необходимо релизовать следующую задачу: Я ввожу 6 своих чисел и при помощи формулы Excel ищет совпадения с таблицей. Если такой набор чисел уже имеется, то вывести дату которой этот набор соответствует. Если такого набора нет, то вывести "Нет совпадений". Вроде звучит не сложно, но в работе пригождается только порстая арифметика, поэтому все позабылось. Заранее спасибо! прикладываю скриншот и сам файл.
Перво наперво приветствую всех участников форму. Уже лет 10 как ни на каких форумах не регистрировался. Увидев стандартную форму регистрации (Придумайте подпись), ностальгически улыбнулся. А теперь собственно вопрос. Имеется таблица из 7 столбцов. 1 столбец дата, остальные 6 набор чисел. Те набор из 6 цифр соответствует дате. Мне необходимо релизовать следующую задачу: Я ввожу 6 своих чисел и при помощи формулы Excel ищет совпадения с таблицей. Если такой набор чисел уже имеется, то вывести дату которой этот набор соответствует. Если такого набора нет, то вывести "Нет совпадений". Вроде звучит не сложно, но в работе пригождается только порстая арифметика, поэтому все позабылось. Заранее спасибо! прикладываю скриншот и сам файл. PIRATSTEN
Karataev, низкий поклон. Спасли. Пара моментов. Сравнение вывод результата корректно работает только с датами у которых разделитель точка. Все бы ничего. Но эти разделители не меняются через Формат ячеек-Дата-Тип. Такое ощущение, что перед датой стоит какой-то невидимый знак (не порбел, даже не занимает позицию), т.к. если в строке формулы поставить курсор в начало строки с датой и нажать Backspase и Enter, то тип разделителя сменится на точки. Не сталкивались с такой порблемой? Возможно ли это массово исправить? Руками это оооочень долгий поцесс, т.к. в файле только часть таблицы. Основная же начинается аж с 97 года.
UPD. Извиняюсь. Бэкспейс жать не обязательно. Достаточно поставить курсор в строку с формулой и нажать Enter. Тип даты примет нужный вид.
Karataev, низкий поклон. Спасли. Пара моментов. Сравнение вывод результата корректно работает только с датами у которых разделитель точка. Все бы ничего. Но эти разделители не меняются через Формат ячеек-Дата-Тип. Такое ощущение, что перед датой стоит какой-то невидимый знак (не порбел, даже не занимает позицию), т.к. если в строке формулы поставить курсор в начало строки с датой и нажать Backspase и Enter, то тип разделителя сменится на точки. Не сталкивались с такой порблемой? Возможно ли это массово исправить? Руками это оооочень долгий поцесс, т.к. в файле только часть таблицы. Основная же начинается аж с 97 года.
UPD. Извиняюсь. Бэкспейс жать не обязательно. Достаточно поставить курсор в строку с формулой и нажать Enter. Тип даты примет нужный вид.PIRATSTEN
Сообщение отредактировал PIRATSTEN - Пятница, 29.03.2019, 21:27
В J5:N5 числа преобразуйте в числа. В ячейке видна зеленая стрелка, щелкните её - Преобразовать в число. Числовой формат тоже изменен. Но есть недостаток - если нет искомых данных, то будет подставляться текст из левой ячейки (I6).
Даты можно так преобразовать: 1) выделите фрагмент; 2) Данные - Текст по столбцам - ничего не делая, щелкните "Готово".
PS. Не цитируйте посты целиком. Чтобы ответить, не нужно щелкать кнопку "Цитата", а достаточно прокрутить страницу вниз и там будет поле для написания поста. Если хотите к кому-то обратиться, то просто напишите ник.
Чтобы даты не преобразовывать, можно использовать такую формулу в "J6":
В J5:N5 числа преобразуйте в числа. В ячейке видна зеленая стрелка, щелкните её - Преобразовать в число. Числовой формат тоже изменен. Но есть недостаток - если нет искомых данных, то будет подставляться текст из левой ячейки (I6).
Даты можно так преобразовать: 1) выделите фрагмент; 2) Данные - Текст по столбцам - ничего не делая, щелкните "Готово".
PS. Не цитируйте посты целиком. Чтобы ответить, не нужно щелкать кнопку "Цитата", а достаточно прокрутить страницу вниз и там будет поле для написания поста. Если хотите к кому-то обратиться, то просто напишите ник.Karataev
Вторая - формула массива. Вводится одновременным нажатием Контл Шифт Ентер Еще найденная дата автоматически подкрашивается Условным форматированием_Boroda_
2 Karataev, спасибо. Решил порблему вторым способом. bmv98rus и _Boroda_, тоже спасибо. Буду ковыряться. ЗЫ отличный форум. И пользователи отзывчивые.
2 Karataev, спасибо. Решил порблему вторым способом. bmv98rus и _Boroda_, тоже спасибо. Буду ковыряться. ЗЫ отличный форум. И пользователи отзывчивые.PIRATSTEN
Сообщение отредактировал PIRATSTEN - Пятница, 29.03.2019, 21:02
Это было вовсе не так уж обязательно. Вы что, каждый раз после загрузки данных так делать будете? Когда-нибудь забудете Формулы из постов 5 и 6 (и 4 тоже) все сами за Вас делают, посмотрите приложенные файлы-примеры оттуда
*Акция. Ага. И второй день рулит ПРОСМОТР
Это было вовсе не так уж обязательно. Вы что, каждый раз после загрузки данных так делать будете? Когда-нибудь забудете Формулы из постов 5 и 6 (и 4 тоже) все сами за Вас делают, посмотрите приложенные файлы-примеры оттуда
2 all, ну раз общение пошло в треде, то вопрос. Если ответ положительный, то я офигею. Возможно ли мой файл экспортировать в exe и пользоваться им без установки дистрибутива Excel?
2 all, ну раз общение пошло в треде, то вопрос. Если ответ положительный, то я офигею. Возможно ли мой файл экспортировать в exe и пользоваться им без установки дистрибутива Excel?PIRATSTEN
Это да, но 1. Таблица небольшая 2. Если добавится еще штук 20 столбцов, то формулы со сцепками или произведениями придется соответственно на 20 элементов увеличивать, а мою нет. Да и 6 произведений или сцепок массивов тоже скоростью не особо блещут, хотя, конечно, должны быть побыстрее МУМНОЖ. Но по-любому см. п.1
PIRATSTEN, п.4 Правил форума
Это да, но 1. Таблица небольшая 2. Если добавится еще штук 20 столбцов, то формулы со сцепками или произведениями придется соответственно на 20 элементов увеличивать, а мою нет. Да и 6 произведений или сцепок массивов тоже скоростью не особо блещут, хотя, конечно, должны быть побыстрее МУМНОЖ. Но по-любому см. п.1
UP. Ребят, было неудобно снова писать сюда, т.к. Вы за меня мою задачу решили. Но оказывается я не верно понял человека. Мучаюсь третий день сам, но хоть убейте не могу реализовать. Набор из 6 цифр который набирается пользователем ищется в любом порядке. Т.е. важен сам набор значений в 6ке. Если такие числа встречались в любом порядке в опред дату, то выводить дату. Уже уши горят. Спотыкаюсь на мелочах, то формула как текст вводится, то формат сбивается. Каждую функцию приходится изучать и отрабатывать, вспоминаю лабораторные работы в политехе. Поможет кто? Файл тот же.
UP. Ребят, было неудобно снова писать сюда, т.к. Вы за меня мою задачу решили. Но оказывается я не верно понял человека. Мучаюсь третий день сам, но хоть убейте не могу реализовать. Набор из 6 цифр который набирается пользователем ищется в любом порядке. Т.е. важен сам набор значений в 6ке. Если такие числа встречались в любом порядке в опред дату, то выводить дату. Уже уши горят. Спотыкаюсь на мелочах, то формула как текст вводится, то формат сбивается. Каждую функцию приходится изучать и отрабатывать, вспоминаю лабораторные работы в политехе. Поможет кто? Файл тот же.PIRATSTEN
Сообщение отредактировал PIRATSTEN - Среда, 03.04.2019, 17:51
Фуууух. Почти победил. Остался последний шаг - вывести дату. Способ квадратно-гнездовой. Но хотя бы факт наличия комбинации проверяется. Не знаю как он будет работать с огромным массивом данных. Скрещиваю пальцы. Если интересно, то расскажу как я делаю. 1 шаг. Проверяю наличие первой позиции моего набора в первой строке статистики. Если это значение есть, то в первой ячейке напротив строки со статистикой я ставлю позицию на которой она нашлась. Если не нашлась, то ставится - 0. И так с каждым СВОИМ числом. Таким образом получаем набор значений от 0 до 5 (оказалось что и сравнивать нужно только первые 5). Формула такая:
Цитата
=ЕСЛИОШИБКА(ПОИСКПОЗ(J$5; $J10:$O10; 0);0)
Далее я проверяю каждую строку из полученных наборов на наличие - 0. Если есть ноль, то ставится позиция на которой он находится, если не найден, то получается ошибка и при помощие ЕСЛИОШИБКА, мы исправляем на её на ноль. В итоге если у нас в какой-нибудь строчке есть ноль - Вуаля, совпадение с нашим набором есть. Формула:
Цитата
=ЕСЛИОШИБКА(ПОИСКПОЗ(0;P10:T10; 0);0)
Ну и в конце концов в поле где нам нужно вывести результат проверки я ввожу формулу:
Мне надо самому 5 раз её прочитать чтобы сориентироваться, но работает. ЕСЛИОШИБКА и ПОИСКПОЗ творят чудеса. Осталось только научиться выделять номер строки в которой встретился ноль, чтобы сформировать координаты на ячейку с датой и вывести её (механизм же примерно такой?). 2 Светлый, спасибо! Пока я сам печатал, Вы уже ответили. Попробую это всяко лучше моего. Правда несколько совпадений исключено. Точнее маловероятно. Но это делу не мешает.
Светлый, Ошибка в значении и все тут. ... Разобрался! Ctrl+Shift+Enter, массив же. И ячейку в формат даты нужно было перевести. Сначала не понял что за 45тыр на выходе. Спасибище!
...
Еще вопрос Как в случае если такого набора нет, вместо 00.01.1900 вывести "Совпадений нет". Лаконично в смысле. А то нагородить-то могу.
Фуууух. Почти победил. Остался последний шаг - вывести дату. Способ квадратно-гнездовой. Но хотя бы факт наличия комбинации проверяется. Не знаю как он будет работать с огромным массивом данных. Скрещиваю пальцы. Если интересно, то расскажу как я делаю. 1 шаг. Проверяю наличие первой позиции моего набора в первой строке статистики. Если это значение есть, то в первой ячейке напротив строки со статистикой я ставлю позицию на которой она нашлась. Если не нашлась, то ставится - 0. И так с каждым СВОИМ числом. Таким образом получаем набор значений от 0 до 5 (оказалось что и сравнивать нужно только первые 5). Формула такая:
Цитата
=ЕСЛИОШИБКА(ПОИСКПОЗ(J$5; $J10:$O10; 0);0)
Далее я проверяю каждую строку из полученных наборов на наличие - 0. Если есть ноль, то ставится позиция на которой он находится, если не найден, то получается ошибка и при помощие ЕСЛИОШИБКА, мы исправляем на её на ноль. В итоге если у нас в какой-нибудь строчке есть ноль - Вуаля, совпадение с нашим набором есть. Формула:
Цитата
=ЕСЛИОШИБКА(ПОИСКПОЗ(0;P10:T10; 0);0)
Ну и в конце концов в поле где нам нужно вывести результат проверки я ввожу формулу:
Мне надо самому 5 раз её прочитать чтобы сориентироваться, но работает. ЕСЛИОШИБКА и ПОИСКПОЗ творят чудеса. Осталось только научиться выделять номер строки в которой встретился ноль, чтобы сформировать координаты на ячейку с датой и вывести её (механизм же примерно такой?). 2 Светлый, спасибо! Пока я сам печатал, Вы уже ответили. Попробую это всяко лучше моего. Правда несколько совпадений исключено. Точнее маловероятно. Но это делу не мешает.
Светлый, Ошибка в значении и все тут. ... Разобрался! Ctrl+Shift+Enter, массив же. И ячейку в формат даты нужно было перевести. Сначала не понял что за 45тыр на выходе. Спасибище!
...
Еще вопрос Как в случае если такого набора нет, вместо 00.01.1900 вывести "Совпадений нет". Лаконично в смысле. А то нагородить-то могу.PIRATSTEN