Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Некорректная арифметика (вычитание), Excel 2013 с погрешностью считает вычитание с двузначной точностью
 
Спасибо. Почитал, действительно не баг, а фича. Просто раньше на настолько простых примерах не сталкивался.
Некорректная арифметика (вычитание), Excel 2013 с погрешностью считает вычитание с двузначной точностью
 
Добрый день!
Столкнулся в Excel 2013 со странностью при вычитании достаточно простых чисел в 1 действие.
Из 26 870 360,00 попытался вычесть 26 889 156,74, получил результат -18 796,74. Всё как бы хорошо, но при наведении на ячейку (когда перенес только значения, без формулы) результат выглядит как -18796,740000002. При вводе исходных чисел в другие ячейки получаю -18796,7399999983. Я из паранойи ОКРУГЛом конечно арифметику обрамляю, но здесь что-то не так.

Я думаю, что дело может быть в стиле ячеек R1C1, но интересно почитать догадки.
Объединить по заголовку, объединить текст в ячейках строки, удовлетворяющих заголовку
 
Да, столбцов много, спасибо большое, МатросНаЗебре!

Подскажите пожалуйста, а зачем в первой строке двойные кавычки вокруг точки с запятой? Всё, я понял, это пустые условие и результат, затупил что-то.
Изменено: Rayleigh - 13.11.2024 15:13:11
Объединить по заголовку, объединить текст в ячейках строки, удовлетворяющих заголовку
 
В каждом запросе поступают данные одного или нескольких типов. Тип данных определен для каждых своим столбцом.
Необходимо отдельной ячейкой показать все типы поступивших в запросе данных, пустые игнорировать. Наименование типа данных уникально и не содержит повторяющиеся слова (Тип1, Тип2 и Тип3 для иллюстрации, отфильтровать по ним не получится).
Я нашел отличную функцию Объединить, но не могу сформулировать условия, прошу помочь.

Прошу без кода, PowerQuery и эксклюзива 365.
Изменено: Rayleigh - 13.11.2024 14:16:35
Ряд данных в ячейке, вытащить данные из ряда с разделителями в ячейке
 
Добавил в эксельку нужные результаты, посчитанные руками, с формулами, чтобы было понятно, какие значения суммируются.

МатросНаЗебре, спасибо за решение, но я к нему обращусь, если не найду чего-то более воспроизводимого. Сам-то я разберусь, а вот с объяснениями будет тяжело :)

Sanja, спасибо за вариант, доберусь до нового Экселя, потестирую.
Ряд данных в ячейке, вытащить данные из ряда с разделителями в ячейке
 
Поправил.
Ряд данных в ячейке, вытащить данные из ряда с разделителями в ячейке
 
Есть несколько административных округов, в которых протекает несколько рек. Известно, по территории каких округов протекает река и какой по протяженности участок реки находится в границах каждого округа. Нужно понять протяженность реки и разбивку количества и протяженности рек по округам.
Округов может быть несколько десятков, поэтому количество столбцов увеличить не получится и данные записываются через разделитель.  
Так-то понятно, что это обычная связка индекс-поискпоз, но нужно из ряда данных в ячейке вытащить каждое значение, чтобы с ним работать, а это непонятно.
Изменено: Rayleigh - 30.10.2024 14:28:06
Сцепить по произвольному количеству условий, Задача в чем-то обратная поискпозу сцепленных столбцов (ВПР по нескольким условиям)
 
Ігор Гончаренко, Спасибо! А есть ли аналог для 2013?
Сцепить по произвольному количеству условий, Задача в чем-то обратная поискпозу сцепленных столбцов (ВПР по нескольким условиям)
 
Добрый день!

Есть некоторое количество параметров (Name). Каждый запрос описывается произвольным количеством данных параметров в произвольном порядке.
Нужно все эти параметры вывести в строку через ", ".

Понятно, что работать будет Сцепить с Индексом, но как поймать все позиции для Индекса, я придумать не могу, прошу помочь. Встретил при поиске вопроса конкатенацию столбцов для "мульти-ВПР", но тут у меня уже условия сцеплены, а без разделителей сцеплять условия бессмысленно, когда их больше десяти (а их больше).

Поскольку это модель, есть варианты записи условий через разные разделители, но к сожалению из-за достаточно большого количества возможных условий распихать их по столбцам для каждого не представляется рациональным.
Если можно, прошу сделать два варианта формулы: чтобы считалось по совпадению с ID и чтобы считалось по порядковому номеру параметра в списке.
Изменено: Rayleigh - 21.09.2023 00:09:49
Поиск по слову, Поиск во фразе слова из списка и вставка его и следующего за ним
 
Павел \Ʌ/, спасибо за решение, работает, как нужно!
МатросНаЗебре, я прошу прощения, не стал полностью копировать и перебирать все переменные, так как у коллеги решение вышло короче.
Msi2102, преклоняюсь перед умами, которые вертят формулами на таком уровне.
Sanja, мне всегда нравится, как коротко и ступенчато выглядят макросы, но к сожалению из-за отсутствия пересылаемости не могу их использовать.
Бахтиёр, спасибо, в 365 есть очень удобные и простые формулы, жалко перейти не вариант.

Единственное, я использовал результат этой конструкции внутри функции Гиперссылка и получил ошибку "Не удается открыть указанный файл", хотя ссылка была на поиск Яндекса получившейся фразы. Решил просто вставкой текста первой половины адреса ссылки (адрес яндекса без текста запроса, который ищет рассматриваемая в теме конструкция) в виде текстовой строки в формулу вместо ссылки на ячейку с этой первой половиной ссылки. Это странно, так как конструкцию с Гиперссылкой использовал ранее в другой таблице, но без формулы: внутри гиперссылки собирались первая половина ссылки, затем тип и наименование водного объекта, всё напрямую из ячеек, - и ошибка не появлялась.

Спасибо всем большое, коллеги!
Поиск по слову, Поиск во фразе слова из списка и вставка его и следующего за ним
 
Добрый день!

Есть столбец Наименование с длинным названием, в котором встречаются комбинации символов (часть слова) из столбца Диапазон, но в отличие от типовых похожих задач мне нужно вставить в итоговую ячейку не саму комбинацию символов, а два слова, которые идут от начала комбинации символов в строке Наименование. Файл прилагаю.

Пробовал подогнать ПРОСМОТР(2;1/ПОИСК(..., но под мою цель (с двумя словами) оптимизировать не смог, помогите пожалуйста.
Равномерное распределение сумм по годам
 
Ігор Гончаренко, спасибо, интересное решение! Я не стану даже вдаваться в перемножение неравенств, так как не пойму, но мне хотелось бы знать, откуда появился столбик 2023 и в чем смысл значений в нем.

Апд: Всё понял, заглянул в Солвер)
Изменено: Rayleigh - 28.08.2023 11:01:59
Равномерное распределение сумм по годам
 
Ну, давайте не будем так уж категорично про то, что задачи нет.
Вот я немного по интернету погулял и решение приемлемое у индусов нашел.
1) Сделал в ячейке AD33 по суммам функцию стандартного отклонения. Её нужно максимально уменьшить Поиском решения (Солвер), чтобы как раз получить максимальную равномерность распределения суммы финансирования по годам.
2) Так как вариантов, будет ли в ячейке итоговой таблицы финансирование на конкретный год или нет, будет 2 (да и нет),построил на 5 лет СМРов дополнительную таблицу под 1-0, которые Солвер будет собственно менять.
3) В саму итоговую табличку поставил формулу, чтобы подходящую под номер года единичку (из новой переборной таблички) умножало на подходящую под год реализации сумму (из таблички с суммами). Сделал два варианта: сначала, чтобы автоматом 2 года ПИРов перед СМРами прикручивало, но Солвер работает не очень быстро у меня, поэтому второй вариант - прикрутка ПИРов формулой после пересчета Солвером, оба на разных листах прилагаются.
4) Установил Солвер, воткнул 4 ограничения: переборная таблица должна быть бинарной (1 или 0), сумма единичек должна соответствовать сумме годов реализации, построчно тоже, а также количество пробелов между годами реализации должно быть равно 0.

Вот собственно и всё. Единственное, ни разу не дождался конца работы Солвера, комп медленный, после первого решения отключал и сохранял решения. Действительно, отклонение уменьшалось, но кое-где были не убраны пробелы внутри одного мероприятия (последнее ограничение), их просто переставил руками, результат не сильно ухудшился.

Файл прилагаю, тему можно считать исчерпанной. Хотя, если кто-то укажет на неэлегантность решения и предложит что-то менее громоздкое, буду рад прочитать.
Равномерное распределение сумм по годам
 
Ігор Гончаренко, спасибо за внимание, тем не менее. Может быть, кто-нибудь еще заскочит в тему, ткнет меня в правильное русло.
Равномерное распределение сумм по годам
 
Ігор Гончаренко, изменил, посмотрите пожалуйста. Прям проблема какая-то картинки вставить. На всякий случай как файлы вставил.
Равномерное распределение сумм по годам
 
Ігор Гончаренко, Спасибо за терпение! Вот два примера (файл тот же, я просто перенес из плановой стоимости значения в искомую область):
1) Нулевой вариант, который я описывал выше, когда в 1 год планирования из 7 (2024) начинается первый год проектирования ($ПИР_1) у всех объектов одновременно:

2) Попытался немного разбить вручную (тоже перетаскиванием ячеек) - стало получше, но не оптимально и не масштабируется:
Изменено: Rayleigh - 26.08.2023 23:45:18
Равномерное распределение сумм по годам
 
Ігор Гончаренко, объем финансирования по каждому объекту известен и проставлен в соответствующих столбцах - на ПИР 2 года (2 столбца) и на СМР 4 столбца, где заполнено 2-4 года (по объему).
Я просто не знаю, как понятно изложить задачу: нужно, чтобы по годам суммы затрат на все объекты, общий бюджет, были как можно более близки по значению.
Как пример, можно не менять начало ни одного из объектов, оставить начало всех из них на первый год, но тогда 7 год (2030) будет пустой, 5 и 6 год будут минимальными из-за 3х и 4х-летних мероприятий, объем финансирования на 3-4 годы будет сравнительно большим.
Ну, и косвенно проектирование пострадает - менее эффективно одновременно всё проектировать в 1-2 годах, чем если размазать проектирование частично на 1-2, 2-3, 3-4 и даже 4-5 годы (для двухлетних мероприятий остается 6-7 год на СМР).
Логика, как мне кажется, самая эффективная - это размазать на 3-7 годы (2026-2030) СМР, чтобы финансирование было равномерным, а потом уже перед началом СМР повтыкать 2х-летние ПИРы, так как они меньше по стоимости и сильно баланс (равномерность) не поломают.

А вот как это сделать в Экселе - для меня большой секрет. Как-то наверное надо сводную таблицу заставить считать суммы по годам и выровнять по ним годы финансирования строительства...
Либо я даже согласен, если меня ткнут на нормальное названия такого типа задач, по-любому размазывание по годам бюджета должно быть очень популярно. Я попытался как-то "транспортную задачу" натянуть на это, но вроде не подходит. Так что, не знаю даже, куда гуглить =(
Равномерное распределение сумм по годам
 
Ігор Гончаренко, разделить я могу, но каждый объект разный по длительности и стоимости. И стоимость эта распределена неравномерно как между СМР и ПИР, так и внутри СМР.
Некоторые объекты, допустим можно начать в первый год, какие-то во второй, какие-то - в третий. Если их начинать сразу - расходы будут неравномерными.
Равномерное распределение сумм по годам
 
Добрый день!

Есть перечень объектов строительства (условно), которые реализуются в два этапа: проектирование (ПИР в таблице) и строительство (СМР).
Стоимость каждого этапа известна и разбита: на 2 года для ПИР и 2-4 года на СМР (в зависимости от объема работ).
СМР идет после ПИР и желательно без перерывов между ними (но если это на что-то повлияет, можно допустить наличие перерыва в 1 год).
Есть несколько объектов, где проект уже есть, там стоимость ПИР не считается.

Задача: раскидать суммы мероприятий по годам (7 лет), чтобы суммы по каждому из лет были как можно более близкими.
Как вариант, если можно: раскидать ТОЛЬКО СМР на последние 5 лет, а суммы ПИРов проставлять перед первым годом СМР. Мне кажется, так будет реальнее в части равномерности производства работ.

Стоимость ПИР и СМР разная, поэтому через среднее просто вручную разбить у меня не получилось.
Задача скорее всего типовая и решается уже готовыми инструментами типа сводных таблиц или солвера, но как это применить я не придумаю никак(
ОБЪЕДИНИТЬ в произвольном порядке, Усовершенствование примера из приема "3 способа склеить текст из нескольких ячеек"
 
Alien Sphinx, спасибо за пример, когда-нибудь я смогу (наверное) попробовать массивные формулы из 365, а пока в копилочку. Выглядит достаточно элегантно, надо признать.

DAB, ну нет же. формула уже написана, нужно не ячейки отдельные сцеплять, а все ячейки внутри массива. "Сцепить" это не может, указание вручную элементов это совсем не то, можно и просто & использовать тогда уж. Подходит именно "Объединить", которая весь массив ячеек склеивает. Только мне нужно, чтобы ячейки склеивались не по порядку (A1&A2&A3...&A6), а в произвольной последовательности: когда A2&A5&A3...&A1, когда A3&A1&A4...&A2, когда еще как. Суть именно в рандоме.
ОБЪЕДИНИТЬ в произвольном порядке, Усовершенствование примера из приема "3 способа склеить текст из нескольких ячеек"
 
Добрый день!

Николай в приемах по склейке текста (3 способа склеить текст из нескольких ячеек) привел пример использования формулы ОБЪЕДИНИТЬ для склейки текста ячеек А1:А6 в ячейку А8:

С вашего позволения, создавать файл Экселя я под это не буду, так как содержимое значения не имеет, а вычисляется одна обычная формула.

Я хотел бы понять, какой конструкцией можно заменить для формулы ОБЪЕДИНИТЬ аргумент "текст1" (то есть - ячейки "А1:А6"), чтобы текст из этих ячеек склеивался не по порядку следования ячеек, а произвольно, например "Тюмень,Самара... " и т.д.

В интернете находил только метод с внедрением дополнительного столбца с генератором случайных чисел и сортировкой по нему, но мне интересно, какой набор формул можно впихнуть в строку без макросов и дополнительных построений.
Слияние текстовых диапазонов, оно же слияние списков, оно же консолидация текста
 

Еще раз благодарю коллег за подсказки, благодаря которым я черпал вдохновение, когда искал ответ на свой вопрос.

В итоге я его нашел, хоть и с помощью построения двух дополнительных таблиц:

Итоговый диапазон:

Код
=ЕСЛИ(ЕПУСТО(
ИНДЕКС(ДВССЫЛ(ИНДЕКС(Таблица5[Столбец1];ВПР(СТРОКА(1:1);Таблица6;2)));
СТРОКА(1:1)-ВПР(СТРОКА(1:1);Таблица6;1)+1)
);"";
ИНДЕКС(ДВССЫЛ(ИНДЕКС(Таблица5[Столбец1];ВПР(СТРОКА(1:1);Таблица6;2)));
СТРОКА(1:1)-ВПР(СТРОКА(1:1);Таблица6;1)+1)
)

Первая доп. таблица - подсчет длины диапазона (кол-во строк), где первый столбец – перечисление наименований диапазонов-одностолбцовых умных таблиц:

Код
=ПОИСКПОЗ(9E+307;ДВССЫЛ([@Столбец1])) %если последнее значение диапазона числовое
Код
=ПОИСКПОЗ(ПОВТОР("я";255);ДВССЫЛ([@Столбец1])) %если последнее значение диапазона текстовое

Вторая доп. таблица:

конечный порядковый номер каждого начального диапазона по первой доп. таблице:

Код
=1+ЕСЛИ(СТРОКА(1:1)=1;0;СУММ(ИНДЕКС(Таблица5[Столбец2];1):ИНДЕКС(Таблица5[Столбец2];СТРОКА(1:1)-1)))

и порядковый номер диапазона:

Код
=СТРОКА([@Столбец1])-СТРОКА(Таблица6[#Заголовки])

Особенности подхода:

1)      логика частей формул описаны в статьях ниже, я сам боюсь, что так хорошо не изложу;

2)      экспорт в Гугл таблицы не поддерживается, так как там всё банально: ={Диапазон1; Диапазон2;Диапазон3};

3)      поддерживается, понятное дело, расширение самих диапазонов;

4)      поддерживается расширение количества диапазонов;

5)      поддерживается окончание диапазона на текстовое значение, тема в первую очередь для этого, но если в таблице подсчета длины исходного диапазона заменить «ПОВТОР(“я”;255)» на «9E+307», то можно работать с последним числовым значением;

6)      вопрос исключения «пробелов» из списков не решался – в итоговый диапазон переносятся и нули «от чисел», и пустые строки «от текста»;

7)      начальные и итоговый диапазоны размещены «лесенкой» для наглядности работы, так как и в подсказках коллег, и в моих собственных изысканиях я узнал, что иногда формулы в умных таблицах "работают", если ячейки исходной таблицы и итоговой находятся на одной строке, и перестают работать, если итоговый диапазон перенести ниже.

Основа идеи взята у Дениса Батьянова в статье «Создание базового списка» (убрал макросы и лишние доп. построения, хотя последнее и усложнило формулу).

У него же взял логику ВПР вместо (как для меня ни странно) ИНДЕКС+ПОИСКПОЗ в статье «Функция ВПР (VLOOKUP) или тайна четвёртого параметра».

Приём с 255 «я» для текста и 9E+307 для чисел взял у Николая в приеме «Динамический диапазон с автоподстройкой размеров».

Вдохновение по ДВССЫЛ черпал также у Николая в приеме «Разбор функции ДВССЫЛ (INDIRECT) на примерах».

Также заменил ВЫБОР Дениса на ДВССЫЛ ИНДЕКСа по аналогии приема «Получение элемента из набора по номеру функцией ВЫБОР (CHOOSE)» Николая.

(Не уверен в допустимости публикации ссылки на сторонние ресурсы, поэтому прошу модераторов подправить, если что.)

Единственный вопрос, который остается - автоподстройка размера итогового диапазона под уменьшение/увеличение исходного.
Может быть, это со СМЕЩем работает, не подскажет кто?
Изменено: Rayleigh - 27.03.2022 00:04:00
Дублирование текстового диапазона, оно же копирование списков, оно же перенос текста
 
В общем, поэкспериментировав, понял 2 момента:
1) некоторые формулы "работают", если ячейки исходной таблицы и итоговой находятся на одной строке. Может внезапно возникнуть вопрос при размещении итогов в другом месте/листе;
2) как новичка, смущают "пробелы, которые не пробелы" - постарался учесть.

В итоге, к чему пришёл:
Код
=ЕСЛИ(ЕПУСТО(ИНДЕКС(Таблица1[Столбец1];СТРОКА(1:1)));"";ИНДЕКС(Таблица1[Столбец1];СТРОКА(1:1)))

Единственный вопрос, который остается - автоподстройка размера итогового диапазона под уменьшение/увеличение исходного. Может быть, это со СМЕЩем работает, подскажет кто?
Дублирование текстового диапазона, оно же копирование списков, оно же перенос текста
 
Формула редуцируется без потери смысла:
Код
=ЕСЛИОШИБКА(ИНДЕКС(Таблица1[@Столбец1];1);"")
Единственное, остается минус в виде невозможности подстройки размера вторичного диапазона.
"Сохранить как...." меняет имя файла перед сохранением (дописывает Копия)
 
Ловил похожий глюк на Ворде. Обратил внимание, что дописывается Копия, а не (1) и пр. Также в Ворде создается файл другого расширения. И старой даты - то есть, со временем создания, когда исходный файл был открыт, до редактирования, а после редактирования сохраняется файл с оригинальным именем и датой после редактирования.

Решил вопрос появления файла так:
Файл - Параметры - Дополнительно - раздел Сохранение - убрать галочку Всегда создавать резервную копию.

Не знаю, поможет ли здесь.
Слияние текстовых диапазонов, оно же слияние списков, оно же консолидация текста
 
jakim, спасибо, сохраню себе на случай необходимости PQ.

БМВ, благодарю за мегаформулу, буду пытаться ее разгрызть. Всегда поражался способности людей создавать такие комплексные решения!

UPD:
До конца смысла всей конструкции не докопался, но решил провести тест. Две формулы показывают разные результаты (в первой почему-то третье значение второго диапазона ошибочно). Также итоговый диапазон увеличивается только на одно значение, остальное игнорируется.
Изменено: Rayleigh - 18.03.2022 01:04:28
Дублирование текстового диапазона, оно же копирование списков, оно же перенос текста
 

Добрый день!

Нужно банально копировать один диапазон (Столбец1) в другой (Столбец2) без объединений и прочих действий. Просто: в одну таблицу пишем, в другой отображается копия, которая автоматически меняется, увеличивается и уменьшается в зависимости от текста в столбце.

Из доступного к моему пониманию собрал так:

Код
ЕСЛИОШИБКА(ИНДЕКС(Таблица1[@Столбец1];ПОИСКПОЗ(Таблица1[@Столбец1];Таблица1[@Столбец1];0));"")

В целом работает, только диапазон не растягивает.

Нашел на форуме тему семилетней давности с использованием АГРЕГАТ, но не смог понять, как это реализовать у себя, и смысл/плюшки метода в целом.

Прошу:

1)      подсказать более элегантный вариант;

2)      пояснить, как сюда пристроить Агрегат, и есть ли смысл

3)      подсказать, как (можно ли) сделать автоматическое изменение размеров второго диапазона.

Планирую также экспорт формул в Гугл Таблицы, поэтому прошу без макросов и PowerQuery. Также прошу без формул LET и ПОСЛЕД (SEQUENCE), если возможно.

Слияние текстовых диапазонов, оно же слияние списков, оно же консолидация текста
 

Добрый день!

Есть три столбца с текстом (допустим, в разных умных таблицах, но в одном файле). Значения в них будут добавляться и могут удаляться, поэтому ссылки нужны не на ячейки, а на диапазоны (Таблица1[Столбец1]…).

В таблице Таблица4[Свод] нужно вставить все три диапазона текстовых ячеек один за другим. Переформирование сводного диапазона происходит по мере удаления/добавления текста в исходных столбцах 1-3.

В своде вручную вставленный результат, нужна формула.

Консолидация, понятное дело, не подходит. Гугл находит либо по числам, либо сцепку текста в одной строке. Форум также просмотрел, но ничего удовлетворительного найти не смог. Хотелось бы, конечно «Таблица1[Столбец1]+Таблица2[Столбец2]+Таблица3[Столбец3]», но жизнь простой не бывает =)))

Планирую также экспорт формул в Гугл Таблицы, поэтому прошу без макросов и PowerQuery. Также прошу без формул LET и ПОСЛЕД (SEQUENCE), если возможно.
Последняя серия значений и количество серий, Если диапазон изменяется по датам
 
БМВ, спасибо за интересный вариант, но от растягиваемых диапазонов я отказываться не хочу, тем более что предлагаемая формула также не проходит проверку на заполнение единицами. Я так понял, что если все значения диапазона равны 1, то это единственный логически возможный вариант, когда у Просмотра отсутствует даже одна единица среди #/DIV!'ов, которую функция могла бы взять до искомой двойки. Поэтому для данного варианта я ввел проверку на ошибку и поставил строку начала повторений, если массив занят целиком:
Код
=ПОИСКПОЗ($G$6;$A:$A)-ЕСЛИОШИБКА(
  ПРОСМОТР(2;1/(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))="");
    СТРОКА(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))));
  (ПОИСКПОЗ($G$2;$A:$A)-1)
  )
Я бы не стал сильно заморачиваться по такой математически незначительной детали, но поведенчески как раз в начале работ дисциплина повторять действия наивысшая и вероятность сплошных серий выше, а получать в начале работы ошибку вместо подтверждения достижения было бы обидно.

Бахтиёр, также спасибо зя интересный вариант. Эта конструкция Просмотра мне вообще кажется космической, так как я не понимаю, как диапазон может быть отрицательным (перед ним стоит минус). Тем не менее, доп построения меня не устроили, и я решил поискать решение, которое выводило бы диапазоны единичек, которые можно было бы поделить на 7 и отсеять меньшие 1. Наткнулся на формулу самой длинной победной серии, но вместо Макса использовал Суммпроизв по условию >=1, а потом округлил вниз.
Код
=ОКРУГЛВНИЗ(СУММПРОИЗВ(
  ((ЧАСТОТА(ЕСЛИ(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))=1;
      СТРОКА(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))));
     ЕСЛИ(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))<>1;
      СТРОКА(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))))
)/7)>=1)*1;
   (ЧАСТОТА(ЕСЛИ(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))=1;
      СТРОКА(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))));
     ЕСЛИ(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))<>1;
      СТРОКА(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))))
)/7)
  );
 )
Да, получилось опять монструозно, но работает, как требуется. Не знаю, можно ли это упростить. Как-то можно было бы диапазоны логически перемножить, но у меня не вышло.
Кстати, обратил внимание, что в формулах из поста №4 присутствует интересная защита от дурака: при введении в пустые клетки нулей они продолжают считать корректно, в отличие от последующих, в том числе и моей.
Изменено: Rayleigh - 13.11.2021 12:43:51
Последняя серия значений и количество серий, Если диапазон изменяется по датам
 
БМВ, исследовав вашу красивую формулу, привел ее к общему виду, которое соответствует условию задачи строго.
Поскольку следим мы за выполнением не с 22.09 (B2), а с 01.10 (B11, оно же $G$2), и не по железное B50, а по гибкое "сегодня" (оно же $G$6), то диапазон в столбце у нас не B2:B50, a скользящий:
Код
ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))
А 50 у нас тоже не в камне, а порядковый номер "сегодняшнего" дня:
Код
ПОИСКПОЗ($G$6;$A:$A)

Таким образом, преобразовав вашу элегантную, но конкретную, формулу моими усложнениями, получаем формулу, которая учитывает условия задачи в полной мере:

Код
=ПОИСКПОЗ($G$6;$A:$A)-
ПРОСМОТР(2;1/(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))="");
СТРОКА(ИНДЕКС(B:B;ПОИСКПОЗ($G$2;$A:$A)):ИНДЕКС(B:B;ПОИСКПОЗ($G$6;$A:$A))))

Для более общего случая в логике условия ссылку на "как бы сегодняшний" день $G$6 можно заменить просто функцией Сегодня().

Еще раз спасибо, что помогли разобраться.

UPD:

Нагородил я, конечно, нормально, но при тестировании выяснил, что если все ячейки в отслеживаемом диапазоне B11:B50 равны 1, то появляется ошибка #Н/Д. Причем, в изначальной формуле с фиксированными диапазонами (как у БМВ и Бахтиёра) ошибки нет и всё считается корректно. Всё, пойду спать Х_х

Изменено: Rayleigh - 11.11.2021 03:22:19
Страницы: 1 2 След.
Наверх