Indirekt Referera en cell på en annorlunda Blad

October 29

Michael har ett kalkylblad som har månadsnamn (januari, februari, etc.) i kolumn A. I kolumn B han vill dra ett värde från cell B11 oavsett kalkylblad angiven i kolumn A. Således om kolumn A innehåller månaden " Mars "i cellen precis till höger om mars (i kolumn B) han vill dra värdet i B11 mars!. Michael anser att INDIREKT funktionen bör hjälpa till med detta, men han kan inte få det att fungera.

Den goda nyheten är att Michael är korrekt, du kan använda INDIREKT funktionen för att göra detta. Den grundläggande användning av funktionen ser ut så här:

= INDIREKT (A1 & "! B11")

Du kan bygga ett mer "robust" version av formeln genom att innesluta den i en funktion som kontrollerar för fel. Om det finns ett fel, då frasen "No Data" visas i cellen:

= OMFEL (INDIREKT (A1 & "! B11"), "No Data")

Dessa tillvägagångssätt använder allt som är i cell A1 direkt, vilket fungerar förutsatt att värdet i A1 är text och ett enda ord. Om det kan finnas en andra ord i A1 (t.ex. "Juli Production"), måste du ändra formeln lite så att den innehåller apostrofer runt allt som är i cell A11:

= OMFEL (INDIREKT ("'" & A1 & "'! B11"), "No Data")

Eftersom apostrofer används för att bifoga en kalkylbladsnamn, kan du inte ha någon text i cell A1 som innehåller apostrofer. Så kommer "Juli Produktion" i cell A1 fungera bra (förutsatt att du har ett kalkylblad som heter "Juli Production"), men "Juli s produktion" inte kommer att fungera på grund av apostrof.

Vidare, om allt som står i cell A1 kan ha antingen inledande eller avslutande blanksteg på den, då måste du bli av med dessa utrymmen. Det enklaste sättet att kompensera är att använda TRIM-funktionen:

= OMFEL (INDIREKT ("'" & TRIM (A1) & "'! B11"), "No Data")

Samtliga varianter som presenteras hittills fungera alldeles utmärkt om värdet i A1 är en verklig sträng. De kommer inte att fungera om värdet i A1 är en faktisk tidpunkt, formaterad att se ut som en månadsnamn. Datum lagras internt som tal, och med hjälp av en av formlerna som diskuterats hittills kommer att försöka lägga serienummer dagen till cellreferens, vilket genererar ett fel. Istället behöver du använda funktionen TEXT att konvertera datum i A1 till en månad namn:

= OMFEL (INDIREKT (TEXT (A1, "mmmm") & "! B11"), "No Data")

Om du väntar andra människor att komma in månadsnamn i cell A1, då du skulle göra klokt i att göra den posten som idiotsäkert som möjligt. Det bästa sättet att göra det är att använda dataverifiering för att begränsa vad som kan läggas in i cell A1. (Hur du använder dataverifiering har täckts i andra frågor av ExcelTips.)

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (12701) gäller Microsoft Excel 2007, 2010, och 2013.