Макрос или функция Excel. Заполните диапазон ячеек (столбец A) зацикленными значениями (из другого листа), если ячейка не пуста - PullRequest
0 голосов
/ 23 мая 2019

Нужна помощь для тех, кто пытается освоить макрокодирование.

Лист 1 имеет две колонки A и B. Лист 2, Col A имеет диапазон значений.Я хотел заполнить столбец B листа 1 значением в столбце A листа 2, если ячейка столбца A листа 1 не пустая.

Иллюстрация ниже.

Sheet2 Col A
Brian, 
David,
Nicole,
Aspen,

Col A                  
Apple         
Banana        
Orange        
Lemon         
Mango         
Strawberry    
Grape      

Поля B должны быть заполнены циклами с именами: Брайан для Apple, затем Дэвид для банана и так далее, а затем возвращаться к Дэвиду и так далее, пока Виноград для Николь ..

Пожалуйста, помогите предоставить функцию или код макро VBA для достижения этой цели.

1 Ответ

1 голос
/ 23 мая 2019

Одним из способов является использование INDIRECT:

=INDIRECT("Sheet2!A" & MOD(ROW()+3,4)+1)

Предполагается, что имена указаны в A1:A4

Редактировать: и я просто подумал, как использовать INDEX вместо:

=INDEX(Sheet2!A$1:A$4,MOD(ROW()+3,4)+1)

MOD вернет остаток от номера строки, деленный на n (в данном случае 4). Это приведет к числу от 0 до 3 (n-1) включительно. последовательность для строк 1-6 равна 1, 2, 3, 0, 1, 2.

Добавив 3 (n-1) к номеру строки, я могу получить последовательность для строк 1-6, которая станет 0, 1, 2, 3, 0, 1

Затем добавление 1 в мод приводит к последовательности: 1, 2, 3, 4, 1, 2, которую я затем могу использовать в качестве индекса для таблицы имен

Для 12 имен вы хотите использовать:

=INDEX(F$1:F$12,MOD(ROW()+11,12)+1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...