вот костыль, только учтите, что при выполнении действий ниже, нельзя прописать формулы между книгами (файлами); вы не сможете копировать формулы из одной книги в другую. https://lumpics.ru/how-open-excel-in-different-windows/
так и сделал (вар2), не работает. жду файл) пока мучал нашел такой вариант вар3=СУММ(СЧЁТЕСЛИ(B25;"*"&{"01.01.2022";"02.01.2022";"03.01.2022";"04.01.2022";"05.01.2022";"06.01.2022";"07.01.2022";"08.01.2022";"23.02.2022";"08.03.2022";"01.05.2022";"09.05.2022";"12.06.2022";"04.11.2022"}&"*")) но как заменить этот список в фигурных скобках на диапазон D2:D15? домучал)) вар4{=СУММ(СЧЁТЕСЛИ(B25;"*"&Таблица1[празд дни]&"*"))} в принципе можно остановиться, но если кому нибудь нужно без умной таблицы? есть такой вариант?
у вас работает? у меня почему то выдает 0 везде, ввожу массивной вот типо вашего решения я пытался сделать на массивах, с СУММПРОИЗВ пробовал, не осилил.
имеется сводная с датами в одной ячейке, а так же праздничные даты (01.01.2022 02.01.2022 03.01.2022 04.01.2022 05.01.2022 06.01.2022 07.01.2022 08.01.2022 23.02.2022 08.03.2022 01.05.2022 09.05.2022 12.06.2022 04.11.2022), нужно определять выходные и нерабочие праздничные дни. в принципе у меня готовое решение. но мне хотелось бы узнать может есть какое то более лаконичное решение? особенно формулы в столбце D (про него название темы и из-за нее создана тема, остальное идет в дополнение в качестве готового решения). в принципе столбцы B-E не нужны, если есть решение проще и нагляднее, нужно из столбца A получить столбец F. пояснение моего решения: в сводной присутствуют как даты 09.05.2022, так и текст 09.05.2022, по этому в столбце B преобразуем все в текст. столбец C считает сколько всего дней в ячейке. столбец D считает сколько праздничных дней в ячейке. столбец E считает сколько не праздничных дней как разницу C-D. ну и столбец F на основе количества праздничных и не праздничных дней выводит текстом выходные и нерабочие праздничные дни. кому то может быть полезно.
сам себе отвечу. чтобы запускать эту надстройку автоматически без нажатия Ctrl+Enter надо вставить в модуль листа такой код (настроил на B10:B20)
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, Range("B10:B20")) Is Nothing Then
SendKeys "^~"
End If
End If
End Sub
еще добавил в DDLSettings!E столбец E , типо мою задумку нереализованную (надеюсь кто то сможет реализовать), что очень было бы круто если бы вышеописанный код как то можно было запихнуть не в модуль листа, чтобы не настраивать каждый лист, а в надстройку, и использовать логику что то типа: если выделенная ячейка попадает в диапазон и соответствует настройкам в DDLSettings, т.е. имя листа(столбец A)&диапазон(столбец B)&атозапуск=ИСТИНА(столбец E), тогда выполнялся бы этот код автоматически запускающий надстройку без нажатия Ctrl+Enter
=ЕСЛИ(ПРАВСИМВ(G10)="ч";"м";ЕСЛИ(ПРАВСИМВ(G10)="а";"ж";"???")) так же советую сделать столбик с определением количества пробелов (если 2 то все норм, то бишь три слова в ячейке (бывают без отчества, или если на конце пробел), иначе формула не правильно сработает): =ДЛСТР(G10)-ДЛСТР(ПОДСТАВИТЬ(G10;" ";"")) ну или объединить эти две формулы в одну: =ЕСЛИ(ДЛСТР(G10)-ДЛСТР(ПОДСТАВИТЬ(G10;" ";""))<>2;"не два пробела!";ЕСЛИ(ПРАВСИМВ(G10)="ч";"м";ЕСЛИ(ПРАВСИМВ(G10)="а";"ж";"???")))
есть еще хороший лаконичный вариант для нахождения сколько ячеек содержит раз содержит диапазон определенный текст (или тексты). нашел на просторах интернета
=ЕСЛИ(СУММ(СЧЁТЕСЛИ(G10:G589;"*"&{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9";".";",";"!";" "}&"*"))=0;"в ФИО нет цифр";"в ФИО есть что-то кроме букв и пробела! Найдено ячеек:"&СУММ(СЧЁТЕСЛИ(G10:G589;"*"&{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9";".";",";"!";" "}&"*")))
использую для нахождения в столбце ФИО сколько ячеек содержат недопустимые символы, но у меня вопрос, она суммирует все недопустимые знаки в ячейке, а надо чтобы суммировало один раз. то есть если в ФИО "Иванов Иван Иванович 121", то формула выдает 2, а нужно 1
странно, я перед отправкой проверил работает. подумал может сайт planetaexcel.ru накосячил, скачал еще раз своё прикрепленное, все скачивается, и разархивируется. Далее в папке просто запустить INSTALL.bat для установки. для удаления REMOVE.bat
Олег Новожилов,как говорили в переадресованной теме, можно эту кнопочку разместить за пределами формы (т.е. раздвинуть переместить кнопку туда и снова задвинуть форму)
мучают тут человека чтобы сам разобрался. это конечно правильно) я вот тоже вообще не разбираюсь, в первый раз залез форму редактировать
Олег Новожилов, держи только не совсем понятно, зачем это вам, если даже из нескольких найденных позиций нельзя стрелками выбрать желаемый, а приходится мышкой.. Нельзя это улучшить в коде этого выпадающего поиска?
А у меня вопрос, можно ли как нибудь сделать так, чтобы не приходилось каждый раз нажимать Ctrl+Enter для вызова надстройки? чтобы форма поиска при вводе и переходе на следующее положение открывалась бы снова автоматически, если это положение оказалось в диапазоне указанном в диапазоне работы надстройки во вкладке настройки "DDLSettings" надстройки? Т.к. я не разбираюсь в макросах, нашел код из другого примера, запускающий надстройку при установлении курсора в заданной в ячейке (настроил на B10:B20)
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Application.Intersect(Target, Range("B10:B20")) Is Nothing Then
Application.Run "nerv_DropDownList.DropDownListShow"
End If
End If
End Sub
или (не разбираюсь в чем разница)
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not Intersect(Target, Range("B10:B20")) Is Nothing Then
Application.Run "nerv_DropDownList.DropDownListShow"
End If
End If
End Sub
но, почему то не работает должным образом. находит, обрабатывает, но в конце после ввода и перехода на следующую ячейку выдает ошибку
Александр Макаров,не получается затестить, Microsoft Visual Basic for Applications Compile error: The The code in this project must be updated for use on 64-bit systems. Please review and update Declare statements and then mark them with the PtrSafe attribute.
оставлю здесь. может кому пригодиться. nerv 08.05.2016, 18:53 | Сообщение № 1
Цитата
Несколько лет назад мною было создано пару надстроек, которые, как оказалось, могут быть полезны при работе в excel. Одна из них называется "Надстройка выпадающий список с поиском (source code)". Почитать описание и скачать ее можно тут и тут. В связи с тем, что ко мне периодически обращаются с просьбами открыть исходный код этих надстроек и/или модифицировать их, а с экселем я уже давным давно не имею макрописательных отношений, счел необходимым выложить исходный код данных надстроек в том неизменном виде, в котором они доступны на сайтах для скачивания.
Имя архива должно было быть nerv_DropDownList_1.x_no_protect.tar.gz, но форум оставляет право за собой на переименование. Чтобы правильно его извлечь, обратите внимание, что это *.tar.gz архив.
мне тоже надстройка нравится но не подходит - она игнорит листы с цифровым название, и постоянно вносить в таблицу десятки новых листов которые используют список не реально ((( печалька
для того чтобы надстройка работала в листах только с цифровым названием нужно на вкладке настроек "DDLSettings" перед именем листа поставить апостроф. например лист у вас называется 2019, а в настройках должно быть '2019
PS. Давайте использовать эту отдельную тему по этой надстроке где обсуждаются ее проблемы и решения и если у кого возникает подобная задача отправлять в эту тему? Чтобы все было в одном месте, а не рыскать искать по всему форуму и интеренету. Прошу модераторов переименовать тему в "Надстройка выпадающий список с поиском nerv_DropDownList_1.6"
Навеяно статьей Выпадающий список с быстрым поиском https://www.planetaexcel.ru/techniques/1/9645/ А если нужно именно такой выпадающий список с функцией поиска, но для заполнения списка, для нескольких строк? (не знаю как правильней сформировать описание, подсказывайте - исправлю)
Сам же и отвечу на этот вопрос. Есть, но сложно и долго. Вот мое решение. За основу взят пример Николая Павлова из урока и подредактирован. Все работает как надо. Но для того чтобы сформировать такой работающий список, нужно подготовить столько Отборов, столько Диспетчеров имен, столько Проверок данных, сколько строк данных у вас имеется (в моем нужно примере 20, но настроено для примера 3). Итого вопрос: как это упростить? Может попросить реализовать в PLEX? Думаю полезно будет многим