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

Страницы: 1
Формирование списка из наименований по критерию
 
Добрый день, уважаемые форумчане. Возник интересный вопрос: реально ли сформировать выпадающий список из наименований, отвечающих определенному критерию, БЕЗ промежуточных столбцов и желательно без макросов?

Суть в чем: допустим есть таблица с 2 столбцами, в первом - наименования, в другом - критерии (для примера - А и Б). Необходимо создать формулу, которая формировала бы список из наименований по критерию Б и которую можно было бы загнать в диспетчер имён. Знаю решения, где люди делают через доп. столбец и функцию НАИМЕНЬШИЙ - в этом доп. столбце формулой подтягиваются все нужные наименования, а потом просто делается именованный диапазон необходимых размеров. Этот вариант не подходит, хотелось бы именно "на лету", без промежуточных вычислений. Функция НАИМЕНЬШИЙ здесь явно не подходит, т.к. нужен динамический k-тый аргумент, которого явно не будет в диспетчере имён...

Файл с примером прилагаю. Там создана таблица и в диспетчере имён прописана простейшая формула, которая просто формирует список нужных размеров, но не учитывает критерии:
Код
=СМЕЩ(Таблица1[Наименование];0;0;СЧЁТЗ(Таблица1[Наименование]);1)


Может у кого-то есть готовое решение или интересные мысли в этом направлении?)
Выпадающий список из двух динамических диапазонов
 
Доброго времени суток. Подскажите, существует ли вообще решение для такой задачи:

Есть две умные таблицы, у всех есть столбец Наименование. Возможно ли создать выпадающий список, который бы объединял все введенные наименования из обеих таблиц?

С одной таблицей то всё просто, реализовал через формулу:

Код
=ДВССЫЛ("Таблица1[Наименование]")


А как "дополнить" этот список из наименований второй таблицы и желательно без макросов?
Изменено: flashertheone - 06.11.2020 18:44:59
Наименования оборудования, где коэффициент износа >0, перенести в другую таблицу
 
Здравствуйте! Помогите, пожалуйста, с решением. Задача состоит в следующем:

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

Сложность №1 - обе таблицы имеют растягивающийся диапазон, а значит вторая таблица должна вмещать ровно столько строк, сколько было отобрано из первой таблицы по заданному условию (коэффициент >0).

Сложность №2 - во второй таблице не должно быть пустых строк ни между наименованиями, ни в конце. Я пробовал и через формулы массива, и через ИНДЕКС, но у меня всегда появлялись пустые строки между наименованиями.

Сложность №3 - это должна быть не сводная таблица, т.к. планируется добавить к ней еще столбцы (в примере это столбцы 1, 2 и 3) и работать с ними тоже с помощью формул.

Пример прикрепил. На листе 1 - исходная таблица, на листе 2 - желаемый результат.

Есть ли решение этой задачи без макроса?
Макрос на скрытие листов по разным условиям., если определенная ячейка на каждом из листов пустая
 
Привет!
Подскажите, как будет выглядеть макрос под фигурную кнопку, который проверял бы значение в ячейке B9 на каждом из листов, и если на каком-то из листов она пустая, то он скрывал бы эти листы.
В примере после работы макроса должны быть скрыты листы 3 и 4.
Макрос для удаления значений из строк по определенному критерию, и удаления (смещения) образовавшихся пустых строк
 
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, написать макрос. Суть такая:
Есть табличка, с таким диапазоном - A6:F505. Туда будут копироваться данные из другой программы. Нужен макрос (под кнопку из фигуры), который будет очищать данные в каждой строке данного диапазона, если хотя бы одна ячейка данной строки пустая. То есть, допустим, если в строке A6:F6 есть хотя бы одна пустая ячейка, то должна очищаться вся строка (имею в виду не удаление строки, а удаление данных из всех ячеек этой строки).
А затем, чтобы образовавшиеся пустые строки тоже удалялись. Опять же, желательно не удаление всей строки, а каким-то другим способом это делать... Возможно, сдвиг значений из нижерасположенной строчки или еще как-то. Главное, чтобы в таблице осталось фиксированное число строк, именно в этом диапазоне и именно с конкретной стилистикой. И все это действие должно происходить на одном листе.
Если такое можно сделать без 100 грамм и десятков часов кропотливой работы, был бы очень признателен))

Пример прилагаю. Там на листе1 выборка исходных данных, а на листе2 то, что должно получиться после работы макроса.
Макрос на переименование листов по содержимому ячейки
 
Здравствуйте!
Подскажите, пожалуйста, макрос для такой задачи:
Нужна кнопка на листе1, по щелчку на которой переименовывались бы все листы книги, имя листа выбиралось бы исходя из значений в ячейке J7 каждого листа. Например, на листе2 в ячейке J7 стоит "2", значит, имя этого листа становится "2", а на листе3 в ячейке J7 стоит "3", значит имя этого листа становится "3"...
Очень надеюсь на помощь знатоков.
P.S. В принципе, можно и на событие изменения листа1 повесить... Если можно, помогите с обоими вариантами...
Изменено: flashertheone - 27.12.2016 16:25:57
Вывод диапазона от мин до макс из списка текстовых значений
 
Привет, форумчане.
Нужен совет... Задача такая:
На листе 1 есть таблица, которая служит как бы "градуировкой" для массива текстовых значений, который находится на листе 2. Нужно в одну любую ячейку на листе 1 вывести диапазон от МИН до МАКС среди этих текстовых значений.
Задачу я решил, но хотелось бы что-то покрасивее, например без доп. столбца :)
Возможно это сделать чисто формулами, но без формул массива? (они медленные)
Приоритет, конечно же, на скорость просчета. Т.к. книженция уже не маленькая, буду выбирать среди самых "шустрых" вариантов. Надеюсь, таковые будут :)
Заранее спасибо.
Файл с моим решением ниже:
Изменено: flashertheone - 29.05.2016 19:19:41
Изменить событие, при котором выполняется макрос
 
Помогите, пожалуйста, повесить этот макрос на Worksheet_Calculate листа10, либо Worksheet_Change листа5.
Вывод уникальных значений из списка
 
Уважаемые, такой вопрос возник:
Мне нужно из списка вывести все уникальные (неповторяющиеся) значения в отдельный список.
Набросал файл примера с идеально подходящей мне формулой, но есть одно НО:
У какой-то из функций в этой формуле стоит ограничение на распознавание не более 255 символов в ячейке.
Думаю, что это ограничение у функции ПОИСКПОЗ...
Попробуйте в А6 добавить хотя бы 1 символ и это значение исчезнет из списка выведенных уникальных значений...

Как можно обойти это ограничение?

Сейчас формула (массива) выглядит так:
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$6;ПОИСКПОЗ(0;ЕСЛИ(ЕПУСТО($A$2:$A$6);"";СЧЁТЕСЛИ($B$1:B1;$A$2:$A$6));0));"")
Макрос на генерацию случайных чисел в определенном диапазоне с определенным шагом
 
Здравствуйте, у меня опять вопрос по макросам.
Задача такая:
Нужно получить в диапазоне В6:В3000 случайные числа в диапазоне от 70 до 100 с шагом 2, т.е. 70,72,74 и.т.п. Повторения допускаются, естественно.
Это нужно получить на двух разных листах, независимо друг от друга (на одном листе одна кнопка, на втором другая) и при условии, что соответствующие ячейки в диапазоне A6:A3000 не пустые. Например, если ячейка A6 пустая, то число не выводится, если непустая - то число выводится в ячейку B6 в диапазоне 70-100 (и делится без остатка на 2).

На данный момент у меня это реализовано формулой через СЛЧИС и ЕСЛИОШИБКА, и парой нехитрых математических выражений + вот таким вот макросом на листе, с кнопкой ActiveX, которая просто включает и отключает автопересчет на листе.
Код
Private Sub CommandButton1_Click()
    Worksheets(3).EnableCalculation = Not Worksheets(3).EnableCalculation
    If Worksheets(3).EnableCalculation Then
        '  "Вкл"
        Me.CommandButton1.Caption = "Вкл."
    Else
        '  "Выкл"
        Me.CommandButton1.Caption = "Выкл."
    End If
End Sub


У этого способа есть огромные минусы:
1) После закрытия книги и открытия ее заново - автопересчет на листе автоматически отключается и приходится пару раз "вхолостую" по кнопке нажать, чтобы заработала.
2) Этот макрос не работает на двух листах, если написать аналогичный на втором. Не знаю почему, не силен в VBA.
Можно ли этот макрос как-то переделать, чтобы автопересчет отключался нормально и независимо на двух разных листах? (на каждом листе кнопка тоже отдельная)
Либо, сделать новый макрос, именно на генерацию случайных чисел, а не на отключение автопересчета. Было бы даже удобнее.

Насколько сложно сделать такой макрос? Прошу помощи и советов.
Прикрепил файл, над которым можно издеваться, на всякий случай...
Нормальный пример не влезает по размеру.
Макрос на очистку данных в диапазоне ячеек и на перевод в числовой формат
 
Уважаемые форумчане, помогите, пожалуйста в написанием двух макросов. В программировании я вообще чайник...
1) Очистка значений во всех ячейках в диапазоне С6:U1000 (для одного листа) и A6:Q3000 (для другого)
2) Перевод диапазона ячеек в числовой формат (например, умножить на 1) C6:U1000
И объясните, пожалуйста, куда вбивать - в код листа или делать новый модуль к листу. Я даже не понимаю в чем разница :)
Разбивка текстовых значений в ячейке по разным строкам
 
Доброго времени суток. Уже около недели пытаюсь придумать решение к задаче.
Прикрепляю файл, это абсолютно реальная табличка. Сейчас попробую доходчиво объяснить, чего именно хотелось бы достичь.
Условия и объяснения:
1) Лист №1 - геологическая таблица, заполняемая при бурении скважин;
Столбец С - глубина отбора пробы;
Столбцы D-M - процентное соотношение пород в пробе;
Столбец N - описание породы;
Столбцы O-Q - результаты первого анализа (ЛБА);
Столбцы R-T - результаты второго анализа (карбонатометрия);
2) Лист №2 - вспомогательные таблички для достижения результата, которые, на мой взгляд, должны помочь составить или, хотя бы, укоротить будущие формулы;

Желаемый результат:
1) Чтобы на листе №3 (в любой ячейке) каждый вид породы выводился построчно. Другими словами, есть у нас на листе №1 ячейка, в которой написано: известняк такой-то такой-то; доломит такой-то такой-то... Надо, чтобы на листе №3 известняк, вместе с описанием был на одной строке (допустим в яч. А1), а доломит с его описанием - на другой строке (допустим в яч. А2). И каждый отдельный вид породы выводился бы на листе №3 в отдельной строке вместе с описанием. При том, даже если описание отличается хоть на 1 слово - это уже другая порода. Например, цвет у известняка где-то серый, а где-то коричневый, значит они должны будут располагаться на разных строках, поэтому анализ и проверки со всякими "ЕСЛИ" по словам "известняк" или "доломит" - не совсем подходят...
Более того, на данный момент в этой табличке отражены далеко не все существующие породы, естественно. И поэтому, вывод уникальных значений по слову-критерию тут не совсем подходит, хотя... если только привязать слово-критерий к ячейкам D3-M3...можно попробовать.

2) Тут еще сложнее...
Чтобы на листе №4 (в любой ячейке) наоборот, объединялись породы с одинаковым названием. Например, у нас есть известняк серый и известняк коричневый. Тут уже не важно описание, главное, что это известняк. В связи с этим, хотелось бы, чтобы в любой ячейке выводилось просто 1 слово - "известняк". А в других ячейках рядом - диапазон (от мин. до макс.) результатов анализа №1 и №2 и желательно, но не обязательно - интервал отбора проб (от мин до макс), где присутствует слово "известняк" (в этом примере я про известняк, но нужно для всех типов пород, какие могут встретиться - они указаны на листе №1 в яч. D3-M3).
С градацией анализа №1 (ЛБА) есть одна сложность. Выглядит он таким образом: 3-БГ-ЛБ, к примеру. Понятно, что цифровые значения отсортировать от мин. до макс. как раз плюнуть. А вот БГ и ЛБ уже не так просто. Именно для этого я составил вспомогательную табличку на листе №2 (внимание! столбец №п.п. в этой табличке и столбец "балл" на листе №1 НЕ ОДНО И ТО ЖЕ. №п.п. здесь служит только для будущей сортировки ЦВЕТА от мин. до макс., т.е. БГ,БЖ,Ж и.т.д.)
В идеале, хотелось бы, чтобы выводилось не просто "известняк", а "известняк глинистый", например. Для этого я составил на листе №2 еще одну табличку - классификация карбонатных пород. Тут с неравенствами и "ЕСЛИ" надо грамотно поэкспериментировать будет... То есть: смотрим, например, на ячейку N24. Карбонатометрия данной пробы - 90-0-10. Согласно классификации карбонатных пород на листе №2 - это глинистый известняк ,т.к. Н.О.>5%.

Количество промежуточных вкладок и табличек (для более удобной сортировки) не важно, сделаю хоть 1000. Главное - приблизиться к результату.

Тут, как мне кажется, высший пилотаж нужен. Буду признателен, если кто-то что-то по делу подскажет. Мне бы хотя бы намек, как это реализовать и возможно ли такое. И надеюсь, что хоть кто-то что-то понял =)
Спасибо заранее.
Изменено: flashertheone - 25.05.2016 16:58:17
Возврат ближайшего наибольшего значения из столбца
 
Добрый день! Помогите, пожалуйста, с задачей. Попробую внятно объяснить условие...
Есть 2 листа. На листе №1 - 3 столбца. Столбец А - это единицы измерения, прописанные через шаг 0,2 (для облегчения понимания, пусть будут метры). Столбец В - формула, возвращающая остаток от деления столбца А на 5 (по сути вспомогательный столбец, для облегчения составления дальнейшей формулы). Столбец D - будущее решение. На листе №2 - 2 столбца. Столбец А - это те же единицы измерения (метры), только прописанные через шаг 5. Столбец В - значения, соответствующие каждому пятому метру.
Цель: Составить формулу в столбце D листа №1, которая:
- Каждому 5-ому метру возвращала бы соответствующее ему значение
- Если этот метр не делится на 5 без остатка (например 3,2), то формула должна вернуть значение, соответствующее БЛИЖАЙШЕМУ НАИБОЛЬШЕМУ метру, который делится без остатка на 5, (т.е. 5-ому в данном случае).
Не знаю, понятно ли описал, прикрепляю файл примера, там тоже есть описание результата, но немного другое и + столбец, наглядно демонстрирующий нужный результат работы формулы.
Первую часть формулы (для метров, кратных 5) я смог составить и выглядит она так:
Код
=ЕСЛИ(B2=0;ИНДЕКС(Лист2!$B$2:$B$4;ПОИСКПОЗ(Лист1!A2;Лист2!$A$2:$A$4;0));"")

Кажется, что истина уже где-то рядом, но окончательное решение никак не приходит)
Выбор значения из одного столбца при соблюдении условий в диапазоне другого столбца
 
Здравствуйте! Помогите, пожалуйста, с одной задачкой. Файл прикрепляю.
Желаемый результат:
1. Проверить столбец D на соответствие условию, есть ли значения в диапазоне D2-D20>=1
2. Если есть, то вывести в объединенную ячейку F2 значение из столбца А, соответствующее строке с максимальным значением в столбце D
3. Если нет, то ячейка остается пустой
Желателен вывод именно в объединенную ячейку (формулы массива ругаются на это). Реально ли такое осуществить обычными формулами?
Страницы: 1
Наверх