Позвольте мне попытаться объяснить, что я пытаюсь сделать. Скажем, в форме цитаты доступно сорок вариантов. Клиент хочет только восемь вариантов. Я хотел бы ввести количество для каждого из восьми выбранных предметов и для других невыбранных предметов, которые будут скрыты (и не распечатаны).

Я уверен, что есть слово для этого, но я не могу думать о том, что это будет. Я не очень технически ориентирован, поэтому я был бы признателен за любую помощь, которую вы можете предложить.

1 ответ1

0

Разработка приложения для вас выходит за рамки ответа, но я могу дать вам подход, а затем, если у вас есть вопросы о том, как делать конкретные вещи, вы можете задать их в качестве дополнительных вопросов. Есть много способов сделать то, что вы хотите. Я опишу ту, которая использует только общие функции, без макросов или Visual Basic, и не является особенно абстрактной или замысловатой (по крайней мере, относительно других подходов).

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

Форма ввода

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

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

  • Используйте перенос слов (это оставит различные пробелы между опциями в распечатке, так как шаблон должен будет вместить самую большую запись, если вы не захотите).

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

Шаблон печати

Вы создаете второй лист, который отражает макет формы ввода. Выясните максимальное количество вариантов, которые кто-либо когда-либо захочет, и добавьте пару к количеству для хорошей меры. Это количество записей шаблона, которые вы создаете (вы всегда можете добавить больше, просто скопировав / вставив).

В скрытый столбец вы помещаете функцию поиска, которая находит следующую печатаемую опцию. Первая запись просматривает все строки в форме ввода, чтобы найти первую, где количество больше нуля, и сохраняет этот номер строки. Вторая запись просматривает форму ввода от записи после предыдущей до конца и сохраняет строку первого ненулевого параметра, найденного в этом диапазоне, и так далее. Когда в шаблоне печати заканчиваются ненулевые параметры, вы получите код ошибки или ноль, что нормально.

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

Теперь каждая запись в шаблоне имеет индекс для строки в форме ввода или код ошибки. В столбцах содержимого используется формула, которая помещает пустой или нулевой символ, если индекс представляет собой код ошибки (или ноль, в зависимости от того, что возвращает формула индекса), в противном случае содержимое связанной ячейки в форме ввода для строки по индексу Опять же, здесь используются функции поиска / ссылки и косвенные адреса.

Несколько строк могут быть обработаны путем включения дополнительных поисков и вычислений для самих строк и для компенсации дополнительных строк.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .