
Generisk formel
=GET.WORKBOOK(1)&T(NOW())
Sammendrag
For å liste opp regneark i en Excel-arbeidsbok, kan du bruke en 2-trinns tilnærming: (1) definere et navngitt område kalt "arknavn" med en gammel makrokommando og (2) bruke INDEX-funksjonen til å hente arknavn ved hjelp av det navngitte området. I eksemplet vist er formelen i B5:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Merk: Jeg kom inn på denne formelen på MrExcel-oppslagstavlen i et innlegg av T. Valko.
Forklaring
Det navngitte området "arknavn" er opprettet med denne koden:
=GET.WORKBOOK(1)&T(NOW())
GET.WORKBOOK er en makrokommando som henter en rekke arknavn i gjeldende arbeidsbok. Den resulterende matrisen ser slik ut:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Et kryptisk uttrykk er sammenkoblet til resultatet:
&T(NOW())
Formålet med denne koden er å tvinge ny beregning til å hente endringer i arknavn. Fordi NÅ er en flyktig funksjon, beregner den på nytt med hvert regnearksendring. NOW-funksjonen returnerer en numerisk verdi som representerer dato og klokkeslett. T-funksjonen returnerer en tom streng ("") for numeriske verdier, slik at sammenkoblingen ikke har noen innvirkning på verdiene.
Tilbake på regnearket inneholder celle B6 denne formelen kopiert ned:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
MID-funksjonen fungerer fra innsiden og ut og brukes til å fjerne navnene på regnearket. Den resulterende matrisen ser slik ut:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Dette går inn i INDEX-funksjonen som "array". ROW-funksjonen bruker et an utvidende områder for å generere et økende radnummer. På hver nye rad returnerer INDEX neste matriseverdi. Når det ikke er flere arknavn å skrive ut, vil formelen returnere en #REF-feil.
Merk: fordi denne formelen er avhengig av en makrokommando, må du lagre som en makroaktivert arbeidsbok hvis du vil at formelen skal fortsette å oppdatere arknavn etter at filen er lukket og åpnet på nytt. Hvis du lagrer som et vanlig regneark, blir arknavnskoden fjernet.