Satır içi Excel formülü (yalnızca formülde) araması


0

Dize ile dizeye eşleştirmenin aşağıdaki gibi olduğunu varsayalım:

  • "turuncu" = & gt; "balon"
  • "kırmızı" = & gt; "bisiklet"
  • "mavi" = & gt; "kuş"

Değeri başka bir hücreden araştıracak (A1 diyelim) ve dizgiyi serbest bırakacak şekilde oluşturulabilecek (B1'de söylenebilir) bir formül var mı?

Örneğin, eğer A1 "kırmızı" ise, B1 "bisiklet" olur. Renk yoksa (örneğin "mor"), o zaman "NOT FOUND" gibi bir dizge çıkarmak istiyorum.

Bunun tamamen aynı hizada olmasına ihtiyacım var - formülün kendisinde, herhangi bir hücreye / tabloya veri yazmadan.

Ayrıca, sadece bir büyük If / Then / Else formülü değilse de tercih et (benim bahis planım). Daha özlü bir şey mi arıyorsunuz.


Bu hücreleri nasıl haritalıyorsunuz? "Balon" un aslında "turuncu" olduğunu nereden biliyor?
K.Dᴀᴠɪs

Sabit bir haritalama.
SFun28

INDEX ve MATCH kullanarak zarif bir satır içi çözümü için, dizelerinize uygun bir veri tablosuna sahip olmanız gerekir. Bunları görüntülemek istemiyorsanız, bu tabloları adlandırılmış bir aralıkta veya gizli bir sayfada oluşturabilirsiniz.
wbeard52

Yanıtlar:


3

UDF oluşturmakta sorun yaşıyorsanız ( U ser D efined F işlevi) VBA içinde sonra çizgileri boyunca bir şeyler yapabilirsiniz:

Function dereferenceCell(ByVal strReference As String) As String

    If strReference = vbNullString Then Exit Function

    Select Case strReference
        Case "orange"
            dereferenceCell = "balloon"
        Case "red"
            dereferenceCell = "bicycle"
        Case "blue"
            dereferenceCell = "bird"
        Case Else
            dereferenceCell = "NOT FOUND"
    End Select

End Function

Sonra senin B1 (veya başlıkları ile B2) hücre, sadece formülü kullanabilirsiniz =dereferenceCell(A2)

enter image description here


@ SFun28 Sorun yok. Başka biri yararlı bulabilir ;-)
K.Dᴀᴠɪs

2
=IFERROR(INDEX( {"balloon","bicycle","bird"}, MATCH("orange", {"red","blue"}, 0)),"NOT FOUND")

Lütfen bunu not al IFNA Excel 2013'te tanıtıldı. Soru etiketleriniz Excel 2010 ve Excel 2013'ü gösteriyor, bu nedenle bu çözüm biraz yanıltıcıdır.
davidmneedham

@ davidvidneedham - iyi yakalar. IFNA IFERROR olarak değiştirilmelidir
SFun28

Bu çözümün kesin arama için son eşleşme parametresi olarak 0 kullanması gerektiğini unutmayın.
SFun28

Cevabınızı yorumlarda belirttiğiniz düzeltmeleri içerecek şekilde düzenlemenizi öneririm.
Blackwood

@ Blackwood - bitti! Aslında dün denedim ama nedense düzenleyemedim. Bana geri dönmemi hatırlattığına sevindim.
SFun28
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.