Формула за търсене в 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. Искам да потърся формулата в Col2 на моята справочна таблица и да вмъкна формулата в клетка 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. Искам да потърся формулата в Col2 на моята справочна таблица и да вмъкна формулата в клетка C1, така че клетка C1 да показва 2,5.   -  person kiloran    schedule 20.06.2015
comment
Благодаря, сега това започва да има смисъл   -  person ZygD    schedule 20.06.2015


Отговори (1)


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

въведете описание на изображението тук

Искаме да въведем дума в клетка A1 и подходящата формула да се появи в клетка B1.

Въведете следния макрос Събитие в кодовата област на работния лист:

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