Avatar billede kim1a Ekspert
11. april 2012 - 14:48 Der er 12 kommentarer og
1 løsning

Arbejde med formlen "indirekte"

Jeg har et ark hvor jeg henviser til en række faneblade via formlen indirekte. Således kan jeg på mit hovedark (KPI) vælge hvilken af fanebladene jeg vil arbejde med. De 9 faneblade er ens i opsætning (regnskab).

Nu er jeg kommet i den kattepine at jeg ønsker at indsætte en linje i hver af de 9 faneblade, men idet Excel ikke "anderkender" teksten inden i formlen indirekte som en henvisning flytter den ikke henvisningerne.

Eksempel:
=Indirekte($B$3&"!C92") giver jo en henvisning til fanebladet jeg skriver i B3 og henter celle C92 i det faneblad. Desværre vil jeg nu indsætte en linje i fanebladene, og derfor skal den for eftertiden henvise til celle 93.

Jeg har ca 1200 henvisninger på denne måde. Er der nogen redning?
Avatar billede supertekst Ekspert
11. april 2012 - 15:52 #1
VBA..
Avatar billede lsskaarup Nybegynder
11. april 2012 - 15:53 #2
Tja, ved ikke lige om du kommer uden om at skulle ændre alle henvisningerne, men hvis du havde navngivet C92 først, så havde det ikke være noget problem.

Jeg har lige lavet en test, hvor jeg navngav cellen i et andet ark, og så referede til cellenavnet istedet for nummeret, og så kan jeg godt indsætte en røkke før, uden at det giver problemer.

Så vil din formal se nogenlunde sådan ud:
=Indirekte($B$3&"!CELLENAVN")
Avatar billede Slettet bruger
11. april 2012 - 16:34 #3
Hvis du bruger Excel 2007+ så lav det område hvor du henter data fra til en tabel (Indsæt, Tabel).

Hans
Avatar billede kim1a Ekspert
11. april 2012 - 16:52 #4
Super forslag - hvis jeg skulle lavet det om :-)

Konklusionen er nok at jeg burde have tænkt mig om inden jeg startede.

supertekst-it.dk - kan du komme med et forslag til hvordan det evt. skulle se ud?
Kunne man forestille sig en VBA som lagde en til tallet i min henvisning? Altså =Indirekte($B$3&"!C92+1") i et nærmere defineret område. Min linje starter hedder i kolonne Y - altså:
Y5 =Indirekte($B$3&"!C92")
Z5 =Indirekte($B$3&"!D92")
AA5 = Indirekte($B$3&"!E92")

Hvis jeg kunne have en VBA som jeg kan køre på hver linje er arbejdet hos nogetkun lettere.
Avatar billede Slettet bruger
11. april 2012 - 17:25 #5
Enig i din konklusion.

Men hvis ikke tabelløsningewn er en mulighed så kunne du måske overveje:

=INDIREKTE(B3&"!R"&RÆKKE('Ark1'!92:92)&"C3";0)

Hans
Avatar billede Slettet bruger
11. april 2012 - 17:29 #6
Glem venligst #5. Den dur selvfølgelig ikke.
Avatar billede Slettet bruger
11. april 2012 - 19:46 #7
Hvis du for eksempel Sheet1 B3 og:

=RÆKKE(Sheet1!A92) i B4

så prøv med:

=INDIREKTE("'"&$B$3&"'!R"&B4&"C3";0)

Hans
Avatar billede Slettet bruger
12. april 2012 - 06:45 #8
Det var vist ikke særlig klart det jeg fik skrevet i #7, så derfor prøver jeg lige igen.

Forudsætninger:

Ark1!B3 skal indeholde tekststengen Ark2
Ark1!B4 skal indeholde formlen: =RÆKKE('Ark2'!92:92)
Ark2!C92:E92 indeholder de data der skal hentes til Ark1!Y5:AA5

I Ark1!Y5 indtastes:

=INDIREKTE($B$3&"!R"&$B$4&"C"&KOLONNE(C:C);0)

Formlen kopieres til højre til og med AA5.

Nu kan du indsætte rækker i Ark2 før række 92 og INDIREKTE-formlen vil justere sig selv.

Hans
Avatar billede kim1a Ekspert
12. april 2012 - 14:49 #9
Det ser spændende ud. Jeg tester lige på mandag. Du skal under alle omstændigheder have point for forsøget :-)
Avatar billede kim1a Ekspert
23. april 2012 - 10:33 #10
Hej dkhanknu

Det virker skisme som planlagt - jeg forstår dog ikke hvorfor.

I min verden skriver indirekte jo (Ark2!R92C3). Kan du også hjælpe mig til at forstå det - kolonne giver jo blot nummeret på en kolonne - jeg fornemmer at den funktion kan blive god i lopslags situationer :-)
Men hvis jeg manuelt skriver det jeg forventer Indirekte giver så forstår Excel det ikke.

Husk at smide svar.
Avatar billede Slettet bruger
23. april 2012 - 17:45 #11
=INDIREKTE($B$3&"!R"&$B$4&"C"&KOLONNE(C:C);0)

Jf. post #8 står der i B3 tekststrengen "Ark2"
Jf. post #8 står der i B4 formlen:=RÆKKE('Ark2'!92:92)
Denne formel er dynamisk i den forstand, at hvis du indsætter en række ovenfor række 92 i Ark2, så vil formlen tilpasse sig i overensstemmmelse hermed.

Følgende del af INDIREKTE-formlen: $B$3&"!R"&$B$4 returnerer
tekststrengen "Ark2!R92"
KOLONNE(C:C); reurnerer nummeret på kolonne C, det vil sige 3. Når formlen kopieres én til højre ændrer den sig til KOLONNE(D:D) der returnerer 4 osv.
"C"&KOLONNE(C:C) returnerer tekststrengen "C3".
Formlens sidste argument, det vil sige 0 (nul) angiver at der er tale om r1c1 notation (se hjælp hvis det ikke siger dig noget).

Hele udtrykket $B$3&"!R"&$B$4&"C"&KOLONNE(C:C) returnerer tekststrengen "Ark2!R92C3" der indsat i INDIREKTE funktionen returnerer værdien i Ark2, række 92, kolonne 3.

I og med, at den formel der står i B4 er "dynamisk" opnås at INDIREKTE-formlen tager højde for rækker der indsættes/slettes ovenfor række 92 i Ark2.

Hjalp det?

Hans
Avatar billede kim1a Ekspert
02. maj 2012 - 12:47 #12
Det hjalp på forståelsen også - du mangler stadig at smide et svar :-)
Avatar billede Slettet bruger
02. maj 2012 - 16:58 #13
OK.
Hans
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel-kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester