Страницы: 1
RSS
вставка ссылок на ячейки в нужные места листа, для печати наклеек из таблицы
 
Добрый день!

Понадобилось внести изменения в лист, с которого печатали наклейки.
Наклеек на листе больше ста, в каждой - по четыре ссылки (см. файл и картинку).
Очень не хочется заполнять лист ссылками вручную, тем более, что дизайн опять может поменяться.
Можно ли как-то вставить ссылки на лист по такому вот образцу?

 
А не проще ли для формирования наклеек использовать готовое решение?
http://excelvba.ru/programmes/Labels

Тогда дизайн сможете менять сколько угодно, - надо будет настроить шаблон только для одной наклейки
 
Игорь, да, я знаю, хорошая, видимо, программа)
Просто у меня уже есть готовый макет для печати, и кажется, что вот еще придумать алгоритм заполнения этого макета ссылками - и все будет готово.
Дело в том, что я отсылаю макет в типографию, а в каждую типографию по такой программе не поставишь.
Изменено: Дмитрий - 16.10.2014 10:55:19
 
А вот допустим, у меня уже есть один заполненный столбец. Как, грубо говоря, ко всем ссылкам из него прибавить определенное число? Чтобы вместо Е1 получилось Е17, вместо М2 - М18? Ведь это же, наверное, как-то можно сделать при копировании или при редактировании?
 
Смещение ссылки:
=ИНДЕКС($E$1:$E$300;СТРОКА(A1)*17)
 
vikttur, а Вы не могли бы на примере показать? Что-то, к сожалению, не работает у меня Ваша формула - видимо, неправильно применяю.
Вот пример (в приложении): столбец С заполнен, столбец Н начат.
Как по этому образцу заполнить остальные столбцы?
 
Показал только как пример изменения ссылки.
Для одной строки:
=ИНДЕКС(Лист1!$D$1:$D$1000;СЧЁТЗ($A3:A3)*16)
Для других нужно вручную прописать формулы в первом столбце, потом копировать. Можно копировать блоком по 4 ячейки, но формулу придется доработать:
=ИНДЕКС(Лист1!$D$1:$D$1000;СЧЁТЗ($A3:A3)*16+ЦЕЛОЕ(СТРОКА(A1)/8)
Последнюю не проверял.
 
блок из 4-х для всех столбцов при текущем расположении
=ИНДЕКС(Лист1!$D$1:$D$150;ОКРУГЛ((СТРОКА()-6)/8;0)+1+(СТОЛБЕЦ()-3)*3)
=ИНДЕКС(Лист1!$B$1:$B$150;ОКРУГЛ((СТРОКА()-6)/8;0)+1+(СТОЛБЕЦ()-3)*3)
=ИНДЕКС(Лист1!$M$1:$M$150;ОКРУГЛ((СТРОКА()-6)/8;0)+1+(СТОЛБЕЦ()-3)*3)
=ИНДЕКС(Лист1!$E$1:$E$150;ОКРУГЛ((СТРОКА()-6)/8;0)+1+(СТОЛБЕЦ()-3)*3)
F1 творит чудеса
 
vikttur, мне кажется, вы не совсем правильно поняли, чего мне хотелось бы.
Посмотрите, пожалуйста, новый файл. Для наглядности я заполнил Лист1 значениями, а первый и второй столбцы на Листе2 заполнил формулами.
Как теперь не вручную заполнить остальные столбцы на Листе2 по этому образцу?

Картинка удалена. Превышение допустимого размера вложения [МОДЕРАТОР]
Изменено: Дмитрий - 16.10.2014 14:57:57
 
Максим Зеленский, ух ты!) Работает! Спасибо большое!

Даже не верится)
Изменено: Дмитрий - 16.10.2014 16:04:48
 
Максим Зеленский, могли бы Вы сказать, как поменять формулу, если те же самые наклейки расположены на листе не 8 штук по горизонтали и 15 по вертикали, а 6 по горизонтали и 18 по вертикали?
 
Максим Зеленский, скажите пожалуйста, как работает в данном случае функция ОКРУГЛ?
 
Дмитрий, сейчас, к сожалению, не могу уже вспомнить всю логику, но суть второго аргумента для функции ИНДЕКС тут такая - нужно получить некий счетчик, который при копировании формулы на N строк и K столбцов давал бы нужный сдвиг внутри просматриваемого массива.
Например, у вас исходные данные для первой ссылки каждого блока лежат в диапазоне $D$1:$D$150
Если я копирую формулу на 8 строк вниз, я должен получить увеличение счетчика на 1. Логично сделать так, чтобы счетчик увеличивался при числе строк кратном 8, ну и учитывая начальный сдвиг от первой строки. Округление в данном случае работает как раз на то, чтобы получался нужный сдвиг при определении кратности номера строки (так как для 1,2,3,4 строк блока наклеек мы получим разные близкие к целым значения).
Соответственно, учитывая необходимость увеличения счетчика при изменении столбца, добавляем модификатор, увеличивающий счетчик по изменению номера столбца.
Например, первый блок наклеек стоит в 3-6 строке и 3 столбце. В первом блоке, соответственно, мы должны получить 1-ю ячейку из столбца данных. Видно, что для первого блока счетчик будет всегда 1 (модификатор № строки = 0, +1, модификатор № столбца = 0)
Сдвигаемся вниз во второй блок. Там уже строки с 11 по 14. В первой части счетчика получим 1, добавим 1, модификатор № столбца = 0.
Сдвигаемся вправо, во второй слева-сверху блок. Первая часть счетчика не изменится, но к нему уже добавится модификатор столбца: номер столбца 8 - 3 = 5 * 3 = 15. Т.е. к модификатору номера строки добавляется 15, что нам и нужно. В третьем столбце (№13) то же самое: (13-3)*3 =30, т.е. для третьего столбца сдвиг по строкам мы увеличиваем на 30, и так далее.


Чтобы построить нужный счетчик, рекомендую поэкспериментировать с ним отдельно, проставив в виде формулы
Код
=ОКРУГЛ((СТРОКА()-6)/8;0)+1+(СТОЛБЕЦ()-3)*3

Решающую роль играет расположение наклеек - номера начальных строк и столбцов и шаг между ними, ну и количество наклеек в столбец.

При изменении размерности, если начальное положение и шаг тот же самый, можно обойтись изменением модификатора столбца с 15 на 18: он должен при увеличении № столбца на 5 давать значение, кратное 18: 0 для первого столбика наклеек, 18 для второго, 36 для третьего  и т.п. Вроде бы для этого годится такой вид: (СТОЛБЕЦ()-3)*18/5

Немного путано, но без файла с новым расположением наклеек точнее не скажу
F1 творит чудеса
 
Максим Зеленский, большое спасибо! Работает!
Страницы: 1
Наверх