Innholdsfortegnelse
Denne INDIREKTE-veiledningen for Excel forklarer funksjonens syntaks, grunnleggende bruksområder og gir en rekke formeleksempler som viser hvordan du bruker INDIREKTE i Excel.
Det finnes mange funksjoner i Microsoft Excel, noen er enkle å forstå, andre krever en lang læringskurve, og førstnevnte brukes oftere enn sistnevnte. Og likevel er Excel INDIREKTE en av typen. Denne Excel-funksjonen utfører ingen beregninger, og evaluerer heller ingen betingelser eller logiske tester.
Vel da, hva er den INDIREKTE funksjonen i Excel og hva bruker jeg den til? Dette er et veldig godt spørsmål, og forhåpentligvis vil du få et utfyllende svar i løpet av noen minutter når du er ferdig med å lese denne veiledningen.
InDIREKT Excel-funksjon - syntaks og grunnleggende bruk
Som navnet antyder, brukes INDIREKTE Excel til indirekte å referere til celler, områder, andre ark eller arbeidsbøker. Med andre ord lar INDIREKTE-funksjonen deg lage en dynamisk celle- eller områdereferanse i stedet for å hardkode dem. Som et resultat kan du endre en referanse i en formel uten å endre selve formelen. Dessuten vil disse indirekte referansene ikke endres når noen nye rader eller kolonner settes inn i regnearket eller når du sletter eksisterende.
Alt dette kan være lettere å forstå fra et eksempel. For å kunne skrive en formel, selv den enkleste, må du imidlertid kjenne tilautomatisk. Løsningen er å bruke INDIREKTE-funksjonen, slik:
=SUM(INDIRECT("A2:A5"))
Siden Excel oppfatter "A1:A5" som en ren tekststreng i stedet for en rekkeviddereferanse, vil den ikke lage noen endres når du setter inn eller sletter en rad(er).
Bruke INDIREKTE med andre Excel-funksjoner
Bortsett fra SUM, brukes INDIREKTE ofte med andre Excel-funksjoner som ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, for å nevne noen.
Eksempel 1. INDIREKTE- og ROW-funksjoner
Ganske ofte brukes ROW-funksjonen i Excel for å returnere en rekke verdier. Du kan for eksempel bruke følgende matriseformel (husk at det krever å trykke Ctrl + Shift + Enter ) for å returnere gjennomsnittet av de 3 minste tallene i området A1:A10:
=AVERAGE(SMALL(A1:A10,ROW(1:3)))
Men hvis du setter inn en ny rad i regnearket ditt, hvor som helst mellom rad 1 og 3, vil området i ROW-funksjonen endres til ROW(1:4) og formelen vil returnere gjennomsnittet av de 4 minste tallene i stedet for 3 .
For å forhindre at dette skjer, nest INDIRECT i ROW-funksjonen og matriseformelen din vil alltid forbli korrekt, uansett hvor mange rader som settes inn eller slettes:
=AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))
Her er et par flere eksempler på bruk av INDIREKTE og RAD i forbindelse med LARGE-funksjonen: Hvordan summere N største tall i et område.
Eksempel 2. INDIREKTE- og ADRESSE-funksjonene
Du kan bruke Excel INDIREKTE sammen med ADRESSE-funksjonen for å fåen verdi i en bestemt celle i farten.
Som du kanskje husker, brukes ADRESSE-funksjonen i Excel for å få en celleadresse ved rad- og kolonnenummer. For eksempel returnerer formelen =ADDRESS(1,3)
strengen $C$1 siden C1 er cellen i skjæringspunktet mellom 1. rad og 3. kolonne.
For å lage en indirekte cellereferanse, bygger du ganske enkelt inn ADRESSE-funksjonen i en INDIREKTE formel som denne:
=INDIRECT(ADDRESS(1,3))
Selvfølgelig demonstrerer denne trivielle formelen bare teknikken. Og her er noen eksempler som kan vise seg å være veldig nyttige:
- INDIREKTE ADRESSE-formel - hvordan bytte rader og kolonner.
- VLOOKUP og INDIREKTE - hvordan hente data dynamisk fra forskjellige ark .
- INDIREKTE med INDEKS / MATCH - hvordan bringe en bokstavsensitiv VLOOKUP-formel til perfeksjon.
- Excel INDIRECT og COUNTIF - hvordan bruke COUNTIF-funksjonen på et ikke-sammenhengende område eller en utvalg av celler.
Bruke INDIREKTE med datavalidering i Excel
Du kan bruke Excel-INDIREKTE-funksjonen med datavalidering for å lage rullegardinlister som viser forskjellige valg avhengig av hvilken verdi brukeren valgt i den første rullegardinmenyen.
En enkel avhengig rullegardinliste er veldig enkel å lage. Alt som trengs er noen navngitte områder for å lagre rullegardinlistens elementer og en enkel =INDIRECT(A2)
-formel der A2 er cellen som viser den første rullegardinlisten din.
For å gjøre mer komplisert3-nivå menyer eller rullegardiner med oppføringer med flere ord, trenger du en litt mer kompleks INDIREKTE formel med en nestet ERSTATT-funksjon.
For detaljert trinn-for-steg veiledning om hvordan du bruker INDIREKTE med Excel-datavalidering, vennligst sjekk ut denne opplæringen: Hvordan lage en avhengig rullegardinliste i Excel.
Excel INDIREKTE-funksjon - mulige feil og problemer
Som vist i eksemplene ovenfor, er INDIREKTE funksjonen er ganske nyttig når du arbeider med celle- og områdereferanser. Men ikke alle Excel-brukere omfavner det ivrig, hovedsakelig fordi omfattende bruk av INDIREKTE i Excel-formler resulterer i mangel på åpenhet. Den INDIREKTE-funksjonen er vanskelig å gjennomgå siden cellen den refererer til ikke er den endelige plasseringen av verdien som brukes i formelen, noe som faktisk er ganske forvirrende, spesielt når du arbeider med store komplekse formler.
I tillegg til ovenfor sagt, som enhver annen Excel-funksjon, kan INDIREKTE gi en feil hvis du misbruker funksjonens argumenter. Her er en liste over de mest typiske feilene:
Excel INDIREKTE #REF! error
Oftest returnerer INDIREKTE-funksjonen en #REF! feil i tre tilfeller:
- ref_text er ikke en gyldig cellereferanse . Hvis ref_text-parameteren i den indirekte formelen din ikke er en gyldig cellereferanse, vil formelen resultere i #REF! feilverdi. For å unngå mulige problemer, vennligst sjekk INDIREKTE-funksjonenargumenter.
- Rekkeviddegrensen er overskredet . Hvis ref_tekst-argumentet til den indirekte formelen refererer til et celleområde utover radgrensen på 1 048 576 eller kolonnegrensen på 16 384, vil du også få #REF-feilen i Excel 2007, 2010 og Excel 2013. Tidligere Excel-versjoner ignorerer overskredet begrense og returnerer en viss verdi, men ofte ikke den du forventer.
- Det refererte arket eller arbeidsboken er lukket. Hvis den indirekte formelen refererer til en annen Excel-arbeidsbok eller -regneark, annen arbeidsbok/regneark må være åpen, ellers returnerer INDIREKTE #REF! feil.
Excel INDIREKTE #NAVN? feil
Dette er det mest åpenbare tilfellet, som antyder at det er en feil i funksjonens navn, som fører oss til neste punkt: )
Bruk av INDIREKTE-funksjonen i ikke-engelske lokaliteter
Du kan være nysgjerrig på å vite at det engelske navnet på INDIREKTE-funksjonen er oversatt til 14 språk, inkludert:
|
|
Hvis du er interessert i å få hele listen, vennligst sjekk ut denne siden.
Et vanlig problem med ikke-engelske lokaliseringer erikke navnet på den INDIREKTE funksjonen, men heller forskjellige Regionale innstillinger for Listeskilletegn . I standard Windows-konfigurasjon for Nord-Amerika og noen andre land er standard Listeseparator et komma. Mens i europeiske land, er kommaet reservert som desimaltegnet og Listeskilletegn er satt til semikolon.
Som et resultat, når du kopierer en formel mellom to forskjellige Excel-lokaliteter, kan du få feilmeldingen " Vi fant et problem med denne formelen... " fordi Listeseparatoren som brukes i formelen er forskjellig fra det som er angitt på maskinen din. Hvis du får denne feilen når du kopierer en INDIREKTE formel fra denne opplæringen til Excel, erstatt alle kommaer (,) med semikolon (;) for å fikse det.
For å sjekke hvilke listeskilletegn og desimalsymboler som er satt på maskinen din, åpne Kontrollpanelet og gå til Region og språk > Ytterligere innstillinger .
Forhåpentligvis har denne opplæringen kastet litt lys over bruken av INDIREKTE i Excel. Nå som du kjenner styrken og begrensningene, er det på tide å prøve det og se hvordan INDIREKTE-funksjonen kan forenkle Excel-oppgavene dine. Takk for at du leser!
funksjonens argumenter, ikke sant? Så la oss ta en rask titt på Excel INDIREKTE syntaks først.INDIREKTE funksjonssyntaks
Den INDIREKTE funksjonen i Excel returnerer en cellereferanse fra en tekststreng. Den har to argumenter, det første er obligatorisk og det andre er valgfritt:
INDIREKT(ref_tekst, [a1])ref_tekst - er en cellereferanse, eller en referanse til en celle i form av en tekststreng, eller et navngitt område.
a1 - er en logisk verdi som spesifiserer hvilken type referanse som finnes i ref_tekst-argumentet:
- Hvis TRUE eller utelatt, tolkes ref_tekst som en cellereferanse i A1-stil.
- Hvis FALSE, behandles ref_tekst som en R1C1-referanse.
Mens R1C1-referansetypen kan være nyttig i visse situasjoner, vil du sannsynligvis bruke de kjente A1-referansene mesteparten av tiden. Uansett, nesten alle INDIREKTE formler i denne opplæringen vil bruke A1-referanser, så vi utelater det andre argumentet.
Grunnleggende bruk av INDIREKTE-funksjonen
For å komme inn på funksjonens innsikt, la oss skrive en enkel formel som viser hvordan du bruker INDIREKTE i Excel.
Anta at du har nummer 3 i celle A1, og tekst A1 i celle C1. Sett nå formelen =INDIRECT(C1)
i en hvilken som helst annen celle og se hva som skjer:
- Den INDIREKTE funksjonen refererer til verdien i celle C1, som er A1.
- Funksjonen er rutet til celle A1 der den velger verdien som skal returneres,som er nummer 3.
Så, det INDIREKTE-funksjonen faktisk gjør i dette eksemplet er å konvertere en tekststreng til en cellereferanse .
Hvis du tror at dette fortsatt har svært lite praktisk mening, vær så snill å tåle med meg, så skal jeg vise deg noen flere formler som avslører den virkelige kraften til Excel INDIREKTE-funksjonen.
Hvordan bruke INDIREKTE i Excel - formeleksempler
Som vist i eksemplet ovenfor, kan du bruke Excel INDIREKTE-funksjonen til å sette adressen til en celle inn i en annen som en vanlig tekststreng, og få verdien av den første cellen ved å referere til den andre. Det trivielle eksemplet er imidlertid ikke mer enn et hint om INDIREKTE-funksjonene.
Når du arbeider med ekte data, kan INDIREKTE-funksjonen gjøre hvilken som helst tekststreng til en referanse, inkludert svært komplekse strenger som du bygger ved å bruke verdiene til andre celler og resultater returnert av andre Excel-formler. Men la oss ikke sette vognen foran hesten, og kjøre gjennom flere indirekte Excel-formler, en om gangen.
Opprette indirekte referanser fra celleverdier
Som du husker, tillater Excel-INDIREKTE-funksjonen for A1 og R1C1 referansestiler. Vanligvis kan du ikke bruke begge stilene i et enkelt ark om gangen, du kan bare bytte mellom de to referansetypene via Fil > Alternativer > Formler > R1C1 avmerkingsboks . Dette er grunnen til at Excel-brukere sjelden vurderer å bruke R1C1som en alternativ referansetilnærming.
I en INDIREKTE formel kan du bruke begge referansetypene på samme ark hvis du vil. Før vi går videre, kan det være lurt å vite forskjellen mellom A1- og R1C1-referansestiler.
A1-stil er den vanlige referansetypen i Excel som refererer til en kolonne etterfulgt av en rad Antall. For eksempel refererer B2 til cellen i skjæringspunktet mellom kolonne B og rad 2.
R1C1-stil er den motsatte referansetypen - rader etterfulgt av kolonner, noe som tar litt tid å bli brukt til : ) For eksempel refererer R4C1 til celle A4 som er i rad 4, kolonne 1 i et ark. Hvis det ikke kommer noe tall etter bokstaven, refererer du til samme rad eller kolonne.
Og nå, la oss se hvordan INDIREKTE-funksjonen håndterer A1- og R1C1-referanser:
Som du ser i skjermbildet ovenfor gir tre forskjellige indirekte formler det samme resultatet. Har du allerede funnet ut hvorfor? Jeg vedder på at du har : )
- Formel i celle D1:
=INDIRECT(C1)
Dette er den enkleste. Formelen refererer til celle C1, henter verdien - tekststreng A2 , konverterer den til en cellereferanse, går over til celle A2 og returnerer verdien, som er 222.
- Formel i celle D3:
=INDIRECT(C3,FALSE)
FALSE i det andre argumentet indikerer at den refererte verdien (C3) skal behandles som en R1C1-cellereferanse, det vil si et radnummer etterfulgt av et kolonnenummer. Derfor,vår INDIREKTE formel tolker verdien i celle C3 (R2C1) som en referanse til cellen i forbindelse med rad 2 og kolonne 1, som er celle A2.
Opprette indirekte referanser fra celleverdier og tekst
I likhet med hvordan vi opprettet referanser fra celleverdier, kan du kombinere en tekststreng og en cellereferanse i den INDIREKTE formelen din, knyttet sammen med sammenkoblingsoperatoren (&) .
I følgende eksempel returnerer formelen: =INDIREKTE("B"&C2) en verdi fra celle B2 basert på følgende logiske kjede:
Den INDIREKTE-funksjonen setter sammen elementene i ref_tekst-argumentet - tekst B og verdien i celle C2 -> verdien i celle C2 er nummer 2, som refererer til celle B2 -> formelen går til celle B2 og returnerer verdien, som er nummer 10.
Ved å bruke INDIREKTE-funksjonen med navngitte områder
I tillegg til å lage referanser fra celle- og tekstverdier, kan du få Excel INDIREKTE funksjon for å referere til navngitte områder .
Anta at du har følgende navngitte områder i arket ditt:
- Eple - B2:B6
- Bananer - C2:C6
- Sitroner - D2:D6
For å lage en dynamisk Excel-referanse til noen av de ovennevnte navngitte områdene, skriv inn navnet i en celle, for eksempel G1, og referer til den cellen fra en indirekte formel =INDIRECT(G1)
.
Og nå kan du ta et skritt videre og legge inn denne INDIREKTE formeleninn i andre Excel-funksjoner for å beregne summen og gjennomsnittet av verdiene i et gitt navngitt område, eller finn maksimums-/minimumsverdien innenfor rage:
-
=SUM(INDIRECT(G1))
-
=AVERAGE(INDIRECT(G1))
-
=MAX(INDIRECT(G1))
-
=MIN(INDIRECT(G1))
Nå som du har den generelle ideen om hvordan du bruker INDIREKTE-funksjonen i Excel, kan vi eksperimentere med kraftigere formler.
INDIREKTE formel for å dynamisk referere til et annet regneark
Nyttigheten til Excel INDIREKTE-funksjonen er ikke begrenset til å bygge "dynamiske" cellereferanser. Du kan også bruke den til å referere til celler i andre regneark "on the fly", og her er hvordan.
Anta at du har noen viktige data i ark 1, og du vil hente disse dataene i ark 2. Følgende skjermbilde viser hvordan en indirekte Excel-formel kan håndtere denne oppgaven:
La oss dele opp formelen du ser på skjermbildet og forstå.
Som du vet, den vanlige måten å referere til et annet ark på. i Excel skriver du arkets navn etterfulgt av utropstegnet og en celle-/områdereferanse, som SheetName!Range . Siden et arknavn ofte inneholder et(e) mellomrom, bør du sette det (navnet, ikke et mellomrom : ) i enkle anførselstegn for å forhindre feil, for eksempel 'Mitt ark!'$A$1 .
Og nå, alt du trenger å gjøre er å skrive inn arknavnet i én celle, celleadressen i en annen, sette dem sammen i en tekststreng, og mate den strengen tilINDIREKTE funksjon. Husk at i en tekststreng, må du omslutte hvert element annet enn en celleadresse eller et nummer i doble anførselstegn og koble alle elementene sammen ved å bruke sammenkoblingsoperatoren (&).
Gitt ovenstående får vi følgende mønster:
INDIRECT("'" & Arkets navn & "'!" & Celle for å hente data fra )Gå tilbake til eksempelet vårt, du legger inn arkets navn i celle A1, og skriver inn celleadressene i kolonne B, som vist i skjermbildet ovenfor. Som et resultat får du følgende formel:
INDIRECT("'" & $A$1 & "'!" & B1)
Vær også oppmerksom på at hvis du kopierer formelen til flere celler, må du låse referansen til arkets navn ved å bruke de absolutte cellereferansene som $A$1.
Merknader
- Hvis en av cellene som inneholder det andre arkets navn og celleadresse (A1 og B1 i formelen ovenfor) er tom , vil den indirekte formelen returnere en feil. For å forhindre dette kan du pakke INDIREKTE-funksjonen inn i HVIS-funksjonen:
IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))
- For at den INDIREKTE formelen som refererer til et annet ark skal fungere riktig, bør det refererte arket være åpent, ellers formel vil returnere en #REF-feil. For å unngå feilen kan du bruke IFERROR-funksjonen, som viser en tom streng, uansett hvilken feil som oppstår:
IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")
Opprette en Excel dynamisk referanse til en annen arbeidsbok
Den indirekte formelen som refererertil en annen Excel-arbeidsbok er basert på samme tilnærming som en referanse til et annet regneark. Du trenger bare å spesifisere arbeidsbokens navn som tillegg til arknavnet og celleadressen.
For å gjøre ting enklere, la oss begynne med å referere til en annen bok på vanlig måte (apostrof legges til i tilfelle boken din og/eller arknavn inneholder mellomrom):
'[Book_name.xlsx]Sheet_name'!Område
Forutsatt at boknavnet er i celle A2, er arknavnet i B2, og celleadressen er i C2, får vi følgende formel:
=INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)
Siden du ikke vil at cellene som inneholder bokens og arkets navn skal endres når du kopierer formelen til andre celler, lås dem ved å bruke absolutte cellereferanser, henholdsvis $A$2 og $B$2.
Og nå kan du enkelt skrive din egen dynamiske referanse til en annen Excel-arbeidsbok ved å bruke følgende mønster:
=INDIREKTE("'[" & Boknavn & " ]" & Arknavn & "'!" & Mobiladresse )Merk. Arbeidsboken formelen refererer til skal alltid være åpen, ellers vil INDIREKTE-funksjonen gi en #REF-feil. Som vanlig kan IFERROR-funksjonen hjelpe deg å unngå det:
=IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")
Bruke Excel INDIREKTE-funksjonen for å låse en cellereferanse
Vanligvis endrer Microsoft Excel cellereferanser når du setter inn ny eller slett eksisterende rader eller kolonner i et ark. For å forhindre at dette skjer, kan dubruk INDIREKTE-funksjonen til å jobbe med cellereferanser som skal forbli intakte uansett.
For å illustrere forskjellen, vennligst gjør følgende:
- Skriv inn en hvilken som helst verdi i en celle, for eksempel , nummer 20 i celle A1.
- Referer til A1 fra to andre celler på forskjellige måter:
=A1
og=INDIRECT("A1")
- Sett inn en ny rad over rad 1.
Se hva som skjer? Cellen med den logiske operatoren lik returnerer fortsatt 20, fordi formelen har blitt automatisk endret til =A2. Cellen med den INDIREKTE formelen returnerer nå 0, fordi formelen ikke ble endret da en ny rad ble satt inn og den fortsatt refererer til celle A1, som for øyeblikket er tom:
Etter denne demonstrasjonen kan du være under inntrykk av at den INDIREKTE funksjonen er mer til sjenanse enn hjelp. Ok, la oss prøve det på en annen måte.
Anta at du vil summere verdiene i cellene A2:A5, og du kan enkelt gjøre dette ved å bruke SUM-funksjonen:
=SUM(A2:A5)
Du vil imidlertid at formelen skal forbli uendret, uansett hvor mange rader som slettes eller settes inn. Den mest åpenbare løsningen – bruk av absolutte referanser – hjelper ikke. For å være sikker, skriv inn formelen =SUM($A$2:$A$5)
i en celle, sett inn en ny rad, si ved rad 3, og ... finn formelen konvertert til =SUM($A$2:$A$6)
.
Selvfølgelig vil en slik høflighet fra Microsoft Excel fungere fint i de fleste saker. Likevel kan det være scenarier når du ikke vil at formelen skal endres