Подтвердить что ты не робот

Окно Excel с именами/парами значений

У меня есть книга с двумя листами.

"Лист2" ​​имеет два столбца:

|    A    |      B        |
+---------+---------------+
|  code1  | description 1 |
|  code2  | Descr 2       |

В листе 1 есть несколько столбцов, один из них (столбец D) - код. В этом столбце мне нужен "drop box", что

  • отобразит столбец Sheet2! B (описания), и когда пользователь выберет одно описание
  • войдет в code из col: A.

Можно ли сделать without additional helper column в Sheet1? (Excel 2010)

Итак, нужно что-то, что не так просто в html:

<select>
  <option value="code1">Description 1</option>
  <option value="code2">Descr 2</option>
</select>

когда пользователь выбирает "Descr 2", форма получает "code2".

Этот вопрос, вероятно, является дубликатом, но я не уверен, что: Как создать раскрывающийся список с несколькими столбцами в excel, но единственный ответ на него указывает мне на внешний сайт, где решение относится к другой проблеме.

Добавлен снимок экрана для более точного объяснения: enter image description here

4b9b3361

Ответ 1

Звучит так, как Data Validation (allow List) в сочетании с VLOOKUP будет делать то, что вы хотите.

На листе 2 настройте описание/список кодов. Сделайте его именованным диапазоном (помогает избежать круговых эталонных проблем).

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

=IF(B4="", "", VLOOKUP(B4, FruitList, 2, FALSE))

Обновлено -

Я начинаю понимать, что вы подразумеваете под "без вспомогательной колонки", но я не уверен, что вы можете получить именно то, что хотите. Факт дизайна Excel: то, что вы видите, это то, что вы получаете, то есть значение, отображаемое в ячейке, является эффективным значением этой ячейки. Вы не можете отображать на ячейке одно значение, но "содержать" другое значение. В HTML такая вещь "мертвая простота", но элемент управления HTML не создан для той же цели, что и ячейка в электронной таблице. Это две вещи одновременно: значение и представление пользовательского интерфейса этого значения. Ячейка электронной таблицы может содержать способ определения значения (раскрывающийся список, формула и т.д.), Но любое значение, которое оно достигает, будет значением, которое оно показывает.

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

Обычный подход к этому - использовать проверку данных для создания выпадающего списка и иметь отдельный столбец, используя VLOOKUP для кода. Если у вас действительно нет другого столбца, чтобы содержать код, я не уверен, что вам сказать. Это будет зависеть от того, как данные будут потребляться; вы пытаетесь получить распечатку, или лист обрабатывается другой программой?

Обновление 2

Если вы действительно склонны не использовать отдельный столбец кода, вы можете использовать технику комбинированного блока, как описано здесь частично:

http://www.contextures.com/xlDataVal10.html

Это было бы сложно. Вам нужно будет (a) получить поле со списком, когда пользователь выбирает одну из ячеек в столбце D, и (b) динамически настраивает элементы отображения окна. Он будет включать код VBA, и я не уверен на 100%. Это, безусловно, не стоит усилий.

Ответ 2

Простой! Вот что мы собираемся получить!

введите описание изображения здесь

Только 3 шага:

  • Определите диапазон для использования в качестве значения поиска

  • Создайте раскрывающийся список

  • Вставить в некоторый код


Шаг 1: Настройка Sheet2, как это, и укажите Именованный диапазон как _descrLookup:

определить именованный диапазон для VLookup

( Highlight -> Right-Click -> "Define Name..." )

Это необязательный шаг, но он просто упрощает выполнение шага 3.



Шаг 2: В Sheet1 создайте раскрывающийся список, используя Data Validation, и используйте ЦЕННОСТИ, КОТОРЫЕ ВЫ ХОТИТЕ ПОКАЗАТЬ В DROPDOWN в качестве источника. В этом примере это Sheet2 A2:A4 (см. Выше изображение):

Установить проверку данных на источник из листа 2

( Data -> Data Validation )



Шаг 3: Добавьте код VBA в Sheet1:
( Right-Click the tab Sheet1 -> View Code )

Вставьте это в окно кода для Sheet1:

Private Sub Worksheet_Change(ByVal Target As Range)
    selectedVal = Target.Value

    If Target.Column = 4 Then
        selectedNum = Application.VLookup(selectedVal, Worksheets("Sheet2").Range("_descrLookup"), 2, False)

        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        End If

    End If
End Sub

Ответ 3

Мне удалось включить вкладку "Разработчик" в Excel 2016 (15.33) для Mac OS X, выполнив следующие шаги:

  • В меню выберите Excel- > Настройки
  • В разделе Авторский нажмите Просмотреть
  • В нижней части диалогового окна установите флажок вкладка разработчика

Открыть диалоговое окно из Excel 2016 (15.33) для Mac OS X

  1. Вкладка "Разработчик" теперь отображается в Excel

Главный экран Excel с вкладкой разработчика