Как скопировать проверку данных вставки с изменением диапазона? - PullRequest
1 голос
/ 27 сентября 2019

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

Итак, в основном у меня есть то, что A1 - это выбранная вами услуга, а затем B1 дает вам возможность выбрать вспомогательную услугу из созданной мной формулы, которая в основном равна

=TRANSPOSE(SI(ESTVIDE(Prestations!$C7);;SI(Prestations!$C7='Données'!$B$28;INDIRECT("Depose");SI(Prestations!$C7='Données'!$E$28;INDIRECT("Sols");SI(Prestations!$C7='Données'!$H$28;INDIRECT("Cloisons");SI(Prestations!$C7='Données'!$K$28;INDIRECT("Peinture");SI(Prestations!$C7='Données'!$N$28;INDIRECT("Plafonds");SI(Prestations!$C7='Données'!$Q$28;INDIRECT("Plomberie_CVC");SI(Prestations!$C7='Données'!$T$28;INDIRECT("Autres");SI(Prestations!$C7='Données'!$W$28;INDIRECT("Cas_Specifique");"Prestation n'existe pas"))))))))))

Код по-французски извините за это.Таким образом, в основном SI = IF, ESTVIDE = ISBLANK и, s есть; s.Prestations! $ C7 - это услуга, поэтому в основном наши «A1», а затем заключенные в INDIRECTS, представляют собой именованные диапазоны для вспомогательных услуг.«Données»! B28: W28 - это в основном я, сравнивая название сервиса в раскрывающемся списке A1.

А потом я просто скопировал это в 1000 строк.Так что это в основном, скажем, наш E1, а затем скопировал до E1000.В проверке данных я просто поставил диапазон как E1: Z1.Я использовал транспонирование, потому что в противном случае данные столкнулись бы с скопированными формулами ниже.

Теперь мне нужна проверка данных для A2 и выше.Конечно, когда я копирую и вставляю данные проверки, он принимает тот же диапазон E1: Z1.Можно ли изменить его на E2: Z2, E3: Z3 и т. Д.?

Редактировать: Вот ссылка на документ Prestation_Test

1 Ответ

1 голос
/ 27 сентября 2019

РЕДАКТИРОВАТЬ - обратите внимание, что этот ответ был опубликован, когда вопрос все еще был помечен как "Excel".

ОК.Если я правильно понимаю, один из способов сделать то, что вы хотите, это определить динамический именованный диапазон, используя текущую строку ячейки.

Определить именованный диапазон с именем «DataValidation» с помощью формулы:

=INDEX(Sheet1!$E:$E,ROW()):INDEX(Sheet1!$Z:$Z,ROW())

Вам нужно будет изменить «Лист1» на имя вашего листа, содержащего ваш диапазон E1: Z1000 (из вашего вопроса не ясно, на каком листе он находится).

Затем вы можете ввести

=DataValidation 

в проверку данных ячейки и перетащите эту ячейку вниз.Проверка данных будет тогда основываться на том, что когда-либо находится в столбцах с E по Z текущей строки.


РЕДАКТИРОВАТЬ - Как определить именованный диапазон

  1. Перейти кЛента «Формулы».
  2. Нажмите «Диспетчер имен».
  3. Нажмите «Создать».
  4. Введите «Подтверждение данных» в качестве имени.
  5. ВведитеПриведенная выше формула (с измененным именем листа) в поле «Относится к:».
  6. Нажмите «ОК».
  7. Нажмите «Закрыть».

Пожалуйстасм. изображение ниже:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...