Göra LETARAD Case Sensitive

December 31

Robin frågade om det finns ett sätt att göra en LETARAD som små bokstäver. Hennes uppslagstabell / sortiment har poster som liknar (ABC och ABC) med den enda skillnaden är fallet med bokstäverna. Hon kan inte ändra värdena (göra dem alla stora eller små bokstäver), eftersom de unika värden är viktiga.

Funktionen LETARAD har inget sätt att kontrollera om det rör sig om uppgifter; Det är fallet okänslig. Det finns flera sätt att komma runt denna brist, dock. Ett sätt är att använda CODE funktion för att skapa en mellan kolumn som kan sökas med LETARAD. Förutsatt att din ursprungliga data i kolumn B, kan du sätta följande formel i cell A1 och kopiera den ner i kolumnen:

= KOD (VÄNSTER (B1,1)) & "." & KOD (MID (B1,2,1)) & "." & KOD (HÖGER (B1,1))

Denna formel tittar på de tre första tecknen i allt som är i cell B1 och omvandlar dessa tecken till decimalteckenkoder skiljs åt med punkter. Således, om A1 innehöll "ABC" och sedan B1 skulle innehålla "65.66.67". Förutsatt att det värde som du vill hitta i cell C1, kan du använda följande som din LETARAD formeln:

= LETARAD (KOD (VÄNSTER (C1,1)) & "." & KOD (MID (C1,2,1)) & "." &
CODE (MID (C1,3,1)), A: B, 2,)

Ett annat tillvägagångssätt är att använda exakta funktionen för att bestämma platsen för vad du letar efter. Detta tillvägagångssätt använder inte LETARAD alls, i stället förlita sig på funktionen INDEX. Formeln förutsätter att de celler som du vill jämföra är i kolumn A och vad du vill returnera är motsvarande cellen i kolumn B.

= IF (MIN (OM (EXAKT (C1, $ A $ 1: $ A $ 100), ROW ($ A $ 1: $ A $ 100))) = 0, NA (),
INDEX ($ B $ 1: $ B $ 100, MIN (OM (EXAKT (C1, $ A $ 1: $ A $ 100), ROW ($ A $ 1: $ A $ 100)))))

Denna formel måste anges som en matrisformel (Skift + Ctrl + Enter). Den första delen av formeln (den första förekomsten av EXACT) jämför C1 (vad du letar efter) till varje värde i intervallet A1: A100. Eftersom detta är en matrisformel, du sluta med, i det här fallet, 100 Sant / Falskt värden beroende på om det finns en exakt matchning eller inte. Om det är en match, sedan den första RAD returnerar raden av matchen och funktionen INDEX används för att fånga värdet från kolumn B i den raden.

I vissa fall kanske du vill skapa en egen användardefinierad funktion som kommer att göra uppslag för dig. Följande är ett exempel på en sådan makro:

Funktion CaseVLook (compare_value, tabell_matris Som Range, _
Valfri col_index As Integer = 1)
Dim c Som Range
Dim rngColumn1 Såsom Range

Application.Volatile

Ställ rngColumn1 = table_array.Columns (1)
CaseVLook = "Not Found"

"Loop första kolumnen
För varje c I rngColumn1.Cells
Om c.Value = compare_value Därefter
CaseVLook = c.Offset (0, col_index - 1) .Value
Exit For
End If
Nästa c
End Function

Om du vill använda makrot, helt enkelt ringa funktionen med det värde du vill hitta (säga cell C1), bör intervallet vars första kolumnen sökas (t.ex. A: B), och eventuellt kompenseras av pelaren inom detta område, som här:

= CaseVLook (C1, A: B, 2)

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (12222) gäller Microsoft Excel 2007 och 2010. Du kan hitta en version av detta tips för den äldre menygränssnittet i Excel här: Göra LETARAD Case Sensitive.