İç içe geçmiş bir Excel’i bir formül metni görünümüyle değiştirmek


0

Malzeme İhtiyaç Planlaması için bir elektronik tablo üzerinde çalışıyorum (sadece eğlence için). Bir sorun, lot büyüklüğü kuralları ile. OFFSET ve INDIRECT işlevlerini birçok yerde kullanmam gerekiyor ve formülleri okumak çok zor (ve çok uzun!).

Farklı kurallara yönelik formül metinlerini bir diziye koyup VLOOKUP'a göre seçmenin bir yolu var mı? Beklediğim şey, aşağıdakileri yapan bir işlev bulmak:

=FORMULAFROMTEXT(VLOOKUP(rule,$A1:$B5,formula, FALSE))

Kural, "L4L", "FOQ", vb. biri olabilir ve tablo böyle görünür.

L4L     L4L-formula
FOQ     FOQ-formula
...

Bu bana çok daha temiz (ve daha kısa) görünüyor

IF(rule="L4L",L4L-formula,IF(rule="FOQ",FOQ-formula,IF(...))).

Sen sonucunu vereceğini L4L-formulave sadece sonucu VLOOKUP.
Scott Craner

Yanıtlar:


0

VBA'yı kullanarak bir işlev oluşturmanız gerekecektir.

Excel sayfanız açıkken, aşağıdakileri yaparak Visual Basic Editor'ı başlatın:

  • Windows PC'de +
    tuşuna basın .AltF11
  • Mac’te + +
    tuşlarına basınFNALTF11

ardından Insertsonra Module.

Visual Basic Düzenleyicisi'nin sağ tarafında yeni bir modül penceresi görünür.

Aşağıdakileri yeni modül penceresine kopyalayın:

Function Eval(Ref As String)
Application.Volatile
Eval = Evaluate(Ref)
End Function

Artık bir EVAL(cell reference)formül işlevi oluşturduğunuz gibi Visual Basic Düzenleyicisi'ni kapatabilirsiniz .

Şimdi bu yeni fonksiyonu kullanmak VLOOKUP()için formülün kullanımı.

Formül, verinin hangi satırda olduğuna göre oluşturulacaksa, örneğin

      ¦  A  ¦  B  ¦    C    ¦
-----------------------------
   1  ¦  2  ¦  2  ¦  =A1+B1 ¦
-----------------------------
   2  ¦  4  ¦  2  ¦  =A2+B2 ¦
-----------------------------

ve hücreler C1ve C2birL4L-formula

O zaman formülün değişkenliğini aklınızda tutmanız gerekir. L4L-formulaÖrneğin sadece A1 + B1'i koyamazsınız . Sen girişine olurdu eşittir (=) işareti olmadan "B"&ROW()&"+C"&ROW() için L4L formula.

Daha sonra elde edilen formül için bir yardımcı sütun oluşturmanız gerekecektir.

Formül listeniz aşağıdaki gibidir:

      ¦  A  ¦       B       ¦
-----------------------------
   1  ¦ L4L ¦  L4L-formula  ¦  Let's say this is F + G
-----------------------------
   2  ¦ FOQ ¦  FOQ-formula  ¦  Let's say this is F x G
-----------------------------

Olması L4L-formulagerekiyorsa F + G, "F"&ROW()&"+G"&ROW()hücreye girmeniz gerekmeden önce belirtildiği gibiB1

Eğer öyleyse FOQ-formula, F x Go zaman "F"&ROW()&"*G"&ROW()hücreye girmeniz gerekirB2

Şimdi eğer çalışma masanız aynı sayfadaysa ve aşağıdaki gibi ise:

      ¦  F  ¦  G  ¦  H  ¦
-------------------------
   1  ¦  2  ¦  2  ¦ L4L ¦
-------------------------
   2  ¦  4  ¦  2  ¦ FOQ ¦
-------------------------

sonra aşağıdakini hücreye yerleştirin I1ve aşağı sürükleyin:

=EVAL(VLOOKUP(H1,A:B,2,FALSE))

Sütun Işimdi, bu satır için gerekli formülü oluşturan yardımcı bir sütundur. Elbette yazdırırken o sütunu gizleyebilirsiniz (gerekirse).

Bu formülün sonucu olarak, =EVAL(I1)hücreye girersiniz J1ve onu da aşağı sürükleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.