Поиск в Excel для возврата формулы

I have a two-column lookup table something like:

    Col1    Col2
    tran1   =qty/1000
    tran2   =qty/2000
    tran3   =price+10
    
where qty and price are named ranges.

Я хочу использовать Vlookup (или что-то еще, что может сработать), чтобы заполнить ячейку формулой из столбца 2, а не значением.

Предположим, A1 содержит tran1 и B1 = 2500. B1 - это именованный диапазон qty. Я хочу найти формулу в столбце 2 моей таблицы поиска и вставить формулу в ячейку C1, чтобы в ячейке C1 отображалось 2,5.

Используя Excel 2010.

Я изо всех сил пытаюсь найти способ сделать это.


person kiloran    schedule 20.06.2015    source источник
comment
Забыл упомянуть .... Excel 2010   -  person kiloran    schedule 20.06.2015
comment
Объясните, пожалуйста, логику. вы говорите, что вам нужны формулы, а не значения, но формулы у вас уже есть! Например. =qty/1000 - это формула! Кроме того, vlookup будет искать какое-то конкретное значение в какой-то конкретной таблице. Я не вижу другой таблицы, я не вижу значения, которое можно было бы найти в этой другой таблице.   -  person ZygD    schedule 20.06.2015
comment
Предположим, что A1 содержит tran1 и B1 = 2500. B1 - это именованный диапазон qty. Я хочу найти формулу в столбце 2 моей таблицы поиска и вставить формулу в ячейку C1, чтобы в ячейке C1 отображалось 2,5.   -  person kiloran    schedule 20.06.2015
comment
Спасибо, теперь это имеет смысл   -  person ZygD    schedule 20.06.2015


Ответы (1)


Допустим, у нас есть таблица поиска в столбцах G и H, например:

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

Мы хотим ввести слово в ячейку A1, и соответствующая формула появится в ячейке B1.

Введите следующий макрос Event в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range

    If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
    Set r = Range("G1:G4").Find(What:=Target.Value)
    If r Is Nothing Then Exit Sub
    Application.EnableEvents = False
        Target.Offset(0, 1).Formula = r.Offset(0, 1).Formula
    Application.EnableEvents = True
End Sub

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите Просмотреть код - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо сомнения, сначала попробуйте его на пробном листе.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более позднюю, чем 2003, вы должны сохранить файл как .xlsm, а не .xlsx.

Чтобы удалить макрос:

  1. откройте окна VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы узнать больше о макросах в целом, см .:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код рабочего листа), см .:

http://www.mvps.org/dmcritchie/excel/event.htm

Чтобы это работало, должны быть включены макросы!

person Gary's Student    schedule 20.06.2015
comment
Большое спасибо. Я надеялся избежать VBA и просто сделать это со стандартными функциями Excel, но ваше предложение для меня по крайней мере является запасным решением. - person kiloran; 20.06.2015