Условное смещение в списке проверки данных

РЕДАКЦИЯ № 2

* Хорошо, мои предыдущие формулировки моей проблемы, как указывалось выше, были довольно мусором. Это редактирование перефразирует вопрос в более простой форме, обобщает контекст и предоставляет образцы данных.

ПРИМЕР ДАННЫХ

Col 1   Col 2 RESET? UNIQUE VALUES
A       A     yes    A
C       C            B
D       D            C
A       A            D
B       B
A       A
D       D
C       C

Обратите внимание, что для того, чтобы повторить мою проблему, необходимо использовать инструмент проверки списка, чтобы создать раскрывающийся список для каждой ячейки в столбце 2, где элементами списка являются A, B, C, D. Примечание. Только столбец 1 и столбец 2 (+ выпадающие списки) являются частью проблемы.

СБРОС? ячейка является частью потенциального решения / как я бы хотел, чтобы решение выглядело идеально.

Столбец уникальных значений, просто для удобства при создании выпадающих списков. (См. Формулу в разделе попыток.)

ОПИСАНИЕ

У меня есть два столбца, Col 1 и Col 2. Как видно из примера выше, оба изначально идентичны. Однако каждая ячейка в столбце 2 имеет раскрывающийся список, представляющий собой список уникальных значений в столбце 1.

Пока все просто. Проблема в том, что мои столбцы на самом деле намного длиннее, чем мой образец, поэтому, поиграв с Col 2, я могу захотеть восстановить / сбросить его до его начальных значений (т.е. вернуть его к его начальным значениям, равным Col 1),

ВОПРОС

Мне нужна кнопка, которая "сбрасывает" столбец, содержащий раскрывающиеся списки, чтобы его значения совпадали со значениями в другом столбце.

КОНТЕКСТ

В моем приложении Col 1 для справки, в то время как Col 2 - контрфактуальный столбец, в котором пользователь может изменить значение на любое из четырех возможных значений (опять же, A, B, C или D в этом примере), чтобы увидеть, какой эффект это имеет на других столбцах.

После игры с Col 2 пользователь захочет сбросить Col 2 до значений по умолчанию, которые содержатся в Col 1. Другими словами, значение Col 2 по умолчанию является условным для Col 1.

СЛОЖНОСТИ И ПОПЫТКИ

Кажется, основная трудность заключается в попытке применить формулу и выпадающий список к одной ячейке.

Я пытался с помощью IF формула в ячейке, но это удаляет выпадающий список

Я также попытался использовать следующую формулу в source окна настройки проверки списка

Формула на ячейке B2*:

=IF(C2="yes",A2,D2:D5)

* где столбцы имеют интуитивное соответствие приведенным выше образцам данных; то есть Col 1 такой же, как столбец A; Колонка D - УНИКАЛЬНЫЕ ЗНАЧЕНИЯ).

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

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

ЗАМЕЧАНИЯ И ОШИБКИ

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


ОРИГИНАЛЬНЫЙ ВОПРОС

У меня есть две колонки, X_1 и X_2. Представьте, что у X_1 есть значения, которые я наблюдаю в реальности, - содержащие, скажем, четыре уникальных значения, а не N наблюдений. X_2 - это фактическая переменная, которая означает, что я могу позволить пользователю изменить X_2 на любое из четырех значений X_1 через раскрывающийся список. Это имеет последующие последствия с точки зрения функции, которую я использую для предсказания некоторого Y.

Проблема в том, что N - очень большое число, поэтому для ручного сброса X_2 потребуется слишком много времени.

Затем я ищу кнопку, которая может сбросить список в X_2 в соответствии с соответствующим значением в X_1.

РЕДАКТИРОВАТЬ:

Как показано на снимке экрана, когда ячейка сброса (т.е. D2) == "да", формула ниже ограничивает раскрывающийся список только одним значением; то, что соответствует X_1; в противном случае он имеет все четыре уникальных значения X_1, которые содержатся в списке в G2:G5.

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

Формула:

=IF($D$2="yes";INDEX($A$2;1);$G$2:$G$5)

Список в выбранной ячейке содержит только "A", потому что RESET установлен на "да"; в противном случае список будет содержать A, B, C, D. Проблема в том, что "А" не заполняется автоматически.

1 ответ

Решение

Решение оказалось довольно простым.

Private Sub CommandButton1_Click()
Range("B:B").Value = Range("A:A").Value
End Sub

Где A и B соответствуют X_1 и X_2 в вопросе респираторно. "Кнопка" СБРОСА, которую я включил, может быть обработана с помощью кнопки CommandButton, о которой я не знал, что она существует.

Чтобы быть ясным о том, что это делает:

  • B - это колонка с выпадающими списками, которую я могу поиграть с B, насколько мне нравится.
  • Когда я закончу, я могу нажать свою кнопку и привет! Все значения B возвращаются к значениям по умолчанию, которые равны A.

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

Другие вопросы по тегам