Уважаемые знатоки! Помогите, пожалуйста, произвести поиск значений в диапазоне ячеек расположенных по диагонали. Все подробности в приложенном файле-примере: 16_1.xlsx
Уважаемые знатоки! Помогите, пожалуйста, произвести поиск значений в диапазоне ячеек расположенных по диагонали. Все подробности в приложенном файле-примере: 16_1.xlsxKaktus86307
Светлый, спасибо! Но, если честно, я немного не понял. И непонятно, как продолжать таблицу?
Да, к тому же, если нужна нумерация столбцов, то могу освободить пару строк (3-ю и 4-ю) в заголовках колонок, где можно будет проставить нумерацию. Возможно, это облегчит задачу, если она решаема.
Светлый, спасибо! Но, если честно, я немного не понял. И непонятно, как продолжать таблицу?
Да, к тому же, если нужна нумерация столбцов, то могу освободить пару строк (3-ю и 4-ю) в заголовках колонок, где можно будет проставить нумерацию. Возможно, это облегчит задачу, если она решаема.Kaktus86307
Сообщение отредактировал Kaktus86307 - Среда, 13.01.2021, 00:56
Если вправо, то копируете формулы, настраиваете на другую группу. Для разного наклона диагоналей своя формула. Если хотите вниз продолжить, то формулу придётся сильно переделать. Что тогда брать за образец поиска? Значение из самой нижней строки группы?
Если вправо, то копируете формулы, настраиваете на другую группу. Для разного наклона диагоналей своя формула. Если хотите вниз продолжить, то формулу придётся сильно переделать. Что тогда брать за образец поиска? Значение из самой нижней строки группы?Светлый
Что тогда брать за образец поиска? Значение из самой нижней строки группы?
Нет. Я имел в виду, что берём ячейку в Колонке 1 и по диагонали-лесенке-вверх от неё ищем её значение (то есть для каждой ячейки в Колонке 1, - получается своя диагональ). Найдя первое совпадение, вычисляем, на сколько строк оно выше искомого (то есть разница строк между найденным и исходным). Заносим эту разницу в Колонку 3 (в ячейку соответствующую той, значение которой мы ищем). В Колонку 5, заносим общее количество найденных значений в этой диагонали-лесенке (если N=0, то ищем до верха таблицы (т.е. до 5 строки), а если N=число, - на указанное число ячеек вверх от исходной. Значение N для Колонки 1 прописывается в ячейку DT1, N для Колонки 2 прописывается в ячейку DT2). Такие же вычисления производим для каждой ячейки из Колонки 1 и заносим результат в соответствующие ячейки Колонки 3 и Колонки 5. Это для трёх желтых Колонок. Можно сделать не с 5 строки, а хотя-бы с 25. Для синих Колонок (то есть для Колонка 2, Колонка 4, Колонка 6), - всё то же самое, только для диагонали-влево.
Колонка 1 и Колонка 2 будут пополняться новыми данными, то есть таблица будет расти и для Колонок 3, 4, 5, 6 нужно иметь возможность протягивать формулы вниз. Если сложно реализовать протяжку формулы вправо, то, в принципе, могу вручную каждый столбец переправить. Главное, чтобы поиск производился вплоть до верха таблицы и формулы протягивались вниз.
P.S.: А несколько ячеек в нижней строке я только для примера заполнил, чтобы был понятен принцип и видна диагональ-лесенка. Остальные ячейки не заполнял, так как слишком долго было бы вручную это просчитывать.
P.S.2: поправил нумерацию текстового описания в файле-примере и добавил туда нумерацию столбцов (на всякий случай). Файл прилагаю.
Что тогда брать за образец поиска? Значение из самой нижней строки группы?
Нет. Я имел в виду, что берём ячейку в Колонке 1 и по диагонали-лесенке-вверх от неё ищем её значение (то есть для каждой ячейки в Колонке 1, - получается своя диагональ). Найдя первое совпадение, вычисляем, на сколько строк оно выше искомого (то есть разница строк между найденным и исходным). Заносим эту разницу в Колонку 3 (в ячейку соответствующую той, значение которой мы ищем). В Колонку 5, заносим общее количество найденных значений в этой диагонали-лесенке (если N=0, то ищем до верха таблицы (т.е. до 5 строки), а если N=число, - на указанное число ячеек вверх от исходной. Значение N для Колонки 1 прописывается в ячейку DT1, N для Колонки 2 прописывается в ячейку DT2). Такие же вычисления производим для каждой ячейки из Колонки 1 и заносим результат в соответствующие ячейки Колонки 3 и Колонки 5. Это для трёх желтых Колонок. Можно сделать не с 5 строки, а хотя-бы с 25. Для синих Колонок (то есть для Колонка 2, Колонка 4, Колонка 6), - всё то же самое, только для диагонали-влево.
Колонка 1 и Колонка 2 будут пополняться новыми данными, то есть таблица будет расти и для Колонок 3, 4, 5, 6 нужно иметь возможность протягивать формулы вниз. Если сложно реализовать протяжку формулы вправо, то, в принципе, могу вручную каждый столбец переправить. Главное, чтобы поиск производился вплоть до верха таблицы и формулы протягивались вниз.
P.S.: А несколько ячеек в нижней строке я только для примера заполнил, чтобы был понятен принцип и видна диагональ-лесенка. Остальные ячейки не заполнял, так как слишком долго было бы вручную это просчитывать.
P.S.2: поправил нумерацию текстового описания в файле-примере и добавил туда нумерацию столбцов (на всякий случай). Файл прилагаю.Kaktus86307
Исправил первый файл. Формулы из первой строки можно протянуть вниз, сколько надо. В каждой колонке своя формула. Протягивается вниз и вправо в пределах колонки. Для изменения количества столбцов в колонках, в формулах придётся исправлять константы и диапазоны. Сами формулы будут работать.
Исправил первый файл. Формулы из первой строки можно протянуть вниз, сколько надо. В каждой колонке своя формула. Протягивается вниз и вправо в пределах колонки. Для изменения количества столбцов в колонках, в формулах придётся исправлять константы и диапазоны. Сами формулы будут работать.Светлый
Ух-ты! Да, Вы - гений, честное слово! Сомневался, что это возможно! Всё работает именно так, как нужно. Спасибо, большое!
Правда, при переносе формул в другой файл возник затык: поиск по правой диагонали перенёсся без проблем, а по левой, - никак. Ищет по диагонали сдвинутой на единичку вправо. Всё перепроверил 10 раз и никак не могу понять почему так происходит. Копирую один в один. Попробовал на втором файле-примере (который выкладывал позже), - всё нормально, а на рабочем, - никак пока не получается. Масштабирование еще не успел проверить.
в формулах придётся исправлять константы и диапазоны
С диапазонами всё, вроде, понятно. А вот какие константы за что отвечают?
Ух-ты! Да, Вы - гений, честное слово! Сомневался, что это возможно! Всё работает именно так, как нужно. Спасибо, большое!
Правда, при переносе формул в другой файл возник затык: поиск по правой диагонали перенёсся без проблем, а по левой, - никак. Ищет по диагонали сдвинутой на единичку вправо. Всё перепроверил 10 раз и никак не могу понять почему так происходит. Копирую один в один. Попробовал на втором файле-примере (который выкладывал позже), - всё нормально, а на рабочем, - никак пока не получается. Масштабирование еще не успел проверить.
Выяснил, когда возникает ошибка. Если колонки с формулами сдвинуть правее от исходных данных, то возникает ошибка, причём чем дальше они сдвинуты вправо, тем больший сдвиг в возникает в диагоналях. Вот, в файле-примере, скопировал два раза (для оценки сдвига) Колонку 3 и Колонку 4 правее (за пределы исходной таблицы), - здесь наглядно видно сдвиг. Тут в первой копии колонок, сдвиг равен 1, а в скопированных ещё правее, достигает уже 7. Файл прилагаю. Масштабирование работает, но на сдвинутых вправо колонках ещё не проверил.
P.S.: забыл сказать, что в начале писал под новым ником, а теперь под старым (восстановленным).
Выяснил, когда возникает ошибка. Если колонки с формулами сдвинуть правее от исходных данных, то возникает ошибка, причём чем дальше они сдвинуты вправо, тем больший сдвиг в возникает в диагоналях. Вот, в файле-примере, скопировал два раза (для оценки сдвига) Колонку 3 и Колонку 4 правее (за пределы исходной таблицы), - здесь наглядно видно сдвиг. Тут в первой копии колонок, сдвиг равен 1, а в скопированных ещё правее, достигает уже 7. Файл прилагаю. Масштабирование работает, но на сдвинутых вправо колонках ещё не проверил.
P.S.: забыл сказать, что в начале писал под новым ником, а теперь под старым (восстановленным).Kaktus8
Спасибо, большое! Всё получилось, - вставил в рабочий файл. Формула получилась очень удобной для использования. Правда, в большой таблице возникает очень сильная загрузка процессора. Считает по 10 минут после каждого действия в таблице. А возможен вариант, когда поиск по диагоналям производится не до верха таблицы, а в пределах N-строк вверх от текущей ячейки (где N можно менять)? Возможно, в этом случае, удастся подобрать компромиссный вариант между производительностью и глубиной поиска.
И ещё, для подсчёта количества, тоже бы формулу поправить, чтобы можно было двигать куда угодно.
Спасибо, большое! Всё получилось, - вставил в рабочий файл. Формула получилась очень удобной для использования. Правда, в большой таблице возникает очень сильная загрузка процессора. Считает по 10 минут после каждого действия в таблице. А возможен вариант, когда поиск по диагоналям производится не до верха таблицы, а в пределах N-строк вверх от текущей ячейки (где N можно менять)? Возможно, в этом случае, удастся подобрать компромиссный вариант между производительностью и глубиной поиска.
И ещё, для подсчёта количества, тоже бы формулу поправить, чтобы можно было двигать куда угодно.Kaktus8
Сообщение отредактировал Kaktus8 - Суббота, 23.01.2021, 23:50
Спасибо! Всё стало шевелиться намного быстрее! Только, если возможно, прошу: 1) Если число не найдено, то в ячейку прописывается 0 (ноль). Можно ли сделать так, чтобы вместо нуля прописывалось значение N+1 (то есть количество строк указанное в ячейке $DV$3 + единица). 2) Подскажите, пожалуйста, как аналогичным образом переделать формулу (это тот же самый поиск, но только по вертикали)
чтобы она искала в пределах N строк вверх от текущей ячейки и если 0, то прописывала значение N+1 (в общем, то же самое, что и для Вашей формулы).
Спасибо! Всё стало шевелиться намного быстрее! Только, если возможно, прошу: 1) Если число не найдено, то в ячейку прописывается 0 (ноль). Можно ли сделать так, чтобы вместо нуля прописывалось значение N+1 (то есть количество строк указанное в ячейке $DV$3 + единица). 2) Подскажите, пожалуйста, как аналогичным образом переделать формулу (это тот же самый поиск, но только по вертикали)
чтобы она искала в пределах N строк вверх от текущей ячейки и если 0, то прописывала значение N+1 (в общем, то же самое, что и для Вашей формулы).Kaktus8
Сообщение отредактировал Kaktus8 - Понедельник, 25.01.2021, 21:53