Hur man automatiskt fyller celler i Excel baserat på en annan cell

  • Dela Detta
Hugh West

Hur bra skulle det vara om celler fylldes automatiskt? Oftast är det något vi älskar. Idag ska vi visa hur man fyller celler automatiskt i Excel baserat på värdet från en annan cell. För den här sessionen kommer vi att använda Excel 2019, men du kan gärna använda din favoritversion.

Först och främst ska vi bekanta oss med datasetet som ligger till grund för dagens exempel.

Här har vi en tabell som innehåller information om de anställda, t.ex. namn, id, adress, avdelning och anställningsdatum. Med hjälp av dessa uppgifter ska vi se hur man fyller cellerna automatiskt.

Observera att det här är ett grundläggande dataset med dummy-data. I ett verkligt scenario kan du stöta på ett mycket större och mer komplext dataset.

Arbetsbok för praktiska övningar

Du är välkommen att ladda ner arbetsboken från länken nedan.

Automatisk fyllning av celler i Excel baserat på en annan cell.xlsx

Automatiskt fylla celler baserat på en annan cell

Här har vi valt ett exempel som innebär att vi automatiskt hittar information om en anställd genom att ange dennes namn.

Här har vi infört informationsfält som är separerade från den ursprungliga tabellen. Låt oss säga att vi har satt Namn, Robert .

Då bör vi få information om Robert Låt oss undersöka hur vi kan göra det.

1. Använda VLOOKUP-funktionen

Om du för ett ögonblick glömmer bort "auto-uppdatering" och tänker på att hämta data som motsvarar kriterierna, vilka funktioner kommer du då att tänka på? Det är ganska uppenbart, VLOOKUP är en av dessa.

VLOOKUP letar efter data som är organiserade vertikalt. Mer information finns i artikeln om VLOOKUP.

Nu ska vi skriva en formel med hjälp av VLOOKUP funktion som hämtar exakt de data som vi vill ha i en cell.

Låt oss skriva formeln för att få fram den anställdes id

=IFERROR(VLOOKUP($I$4,$B$4:$F$9,2,0),""")

Inom VLOOKUP har vi lagt in namnet ( I4) som Lookup_value . Då är hela tabellområdet som Lookup_array .

Anställdas ID är den andra kolumnen, så vi har satt 2 som kolumn_nummer .

Vi har använt oss av IFERROR funktion för att avsluta VLOOKUP Detta kommer att radera alla fel som uppstår i formeln (om du vill veta mer om denna funktion kan du läsa artikeln: IFERROR).

För att få fram avdelningsnamnet måste vi ändra formeln,

=IFERROR(VLOOKUP($I$4,$B$4:$F$9,3,0),""")

Här har vi ändrat kolumn_nummer i enlighet med positionen i den ursprungliga tabellen. Avdelning är den tredje kolumnen, så vi har använt 3.

För Datum för anslutning och Adress, formeln kommer att vara

=IFERROR(VLOOKUP($I$4,$B$4:$F$9,4,0),""")

Och

=IFERROR(VLOOKUP($I$4,$B$4:$F$9,5,0),""")

Vi har hittat uppgifterna om den anställde. Ändra nu namnet och cellerna kommer att uppdateras automatiskt.

VLOOKUP med rullgardinslista

Tidigare har vi angett namnet manuellt. Ibland kan det verka både tidskrävande och förvirrande.

För att lösa problemet kan vi skapa en rullgardinslista för den anställdes namn. Läs artikeln om hur du skapar en rullgardinslista.

I Validering av data dialogrutan väljer du Lista och infoga cellreferensen för namnen.

B4:B9 är det intervall som innehåller namnen.

Nu hittar vi rullgardinslistan.

Nu kan vi välja namn på ett effektivare och snabbare sätt.

De andra cellerna fylls på automatiskt, eftersom vi använde VLOOKUP .

2. Använda funktionen INDEX - MATCH

Den operation som vi har utfört genom VLOOKUP kan göras på ett annat sätt. Vi kan använda kombinationen av INDEX-MATCH för att fylla cellerna automatiskt.

MATCH lokaliserar positionen för ett uppslagsvärde i en rad, kolumn eller tabell. INDEX returnerar värdet på en given plats i ett intervall. Mer information finns i artiklarna: INDEX, MATCH.

Formeln kommer att vara följande

=IFERROR(INDEX($C$4:$C$9,MATCH($I$4,$B$4:$B$9,0)),"")

Här får vår formel fram id-numret eftersom vi har angett id-intervallet inom INDEX och MATCH funktionen ger radnumret som matchar kriterievärdet i tabellen ( B4:B9 ).

För att få fram den Avdelning Vi ändrar intervallet i INDEX och formeln blir följande

=IFERROR(INDEX($D$4:$D$9,MATCH($I$4,$B$4:$B$9,0)),"")

Avdelningarna ligger i intervallet D4 till D9 .

Formeln för den Datum för anslutning kommer att vara

=IFERROR(INDEX($E$4:$E$9,MATCH($I$4,$B$4:$B$9,0)),"")

Och för adressen

=IFERROR(INDEX($F$4:$F$9,MATCH($I$4,$B$4:$B$9,0)),"")

För att förtydliga, låt oss radera urvalet och välja något av namnen.

Du kommer att märka att andra celler fylls på automatiskt.

3. Användning av HLOOKUP-funktionen

Om dina data är orienterade horisontellt måste du använda HLOOKUP Om du vill veta mer om funktionen kan du läsa den här artikeln: HLOOKUP.

Namnet fältet kommer att anges från rullgardinslistan. Resten av fältet fylls i automatiskt.

För att få fram id använder vi följande formel

=IFERROR(HLOOKUP($C$11,$C$3:$H$7,2,0),""")

Operationen liknar den som utförs av VLOOKUP formel. Inom ramen för HLOOKUP funktionen har vi angett namnet som Lookup_value och bordet som Lookup_array Id-numren finns på den andra raden, så row_num är 2. Och 0 för den exakta matchningen.

För departementet blir formeln följande

=IFERROR(HLOOKUP($C$11,$C$3:$H$7,3,0),""")

Avdelning är den tredje raden, så den row_num är 3 här.

Låt oss skriva formeln för anslutningsdatumet

=IFERROR(HLOOKUP($C$11,$C$3:$H$7,4,0),""")

Datum för anslutning är den fjärde raden, så row_num är 4 här. För adressen ändrar du radnumret till 5.

=IFERROR(HLOOKUP($C$11,$C$3:$H$7,5,0),""")

Vi raderar cellerna och väljer ett namn från rullgardinslistan.

När du har valt namnet kommer du att se att andra celler fylls på automatiskt.

4. INDEX-MATCH för rader

Vi kan också använda INDEX MATCH kombinationen för raderna. Formeln kommer att vara följande

=IFERROR(INDEX($C$4:$H$4,MATCH($C$11,$C$3:$H$3,0)),"")

Detta är för att härleda id, så vi har använt C4:H4 i den INDEX funktion, som är den Anställdas ID rad.

Ändra radintervallet för att hitta avdelningen

=IFERROR(INDEX($C$5:$H$5,MATCH($C$11,$C$3:$H$3,0)),"")

På samma sätt ändrar du radnumret för anslutningsdatum och adress.

=IFERROR(INDEX($C$6:$H$6,MATCH($C$11,$C$3:$H$3,0)),"")

Här C6:H6 är den Datum för anslutning rad.

Och den C7:H7 är den Adress rad, så formeln för att få fram adressen kommer att vara som den som anges nedan.

=IFERROR(INDEX($C$7:$H$7,MATCH($C$11,$C$3:$H$3,0)),"")

Slutsats

Det var allt för idag. Vi har listat flera olika sätt att automatiskt fylla celler baserat på en annan cell. Hoppas att du tycker att det här är till hjälp. Kommentera gärna om något verkar svårt att förstå. Låt oss veta om vi har missat andra metoder här.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.