Hej Jeg har en dynamisk tabel hvis dimmension købende ændres afhængigt af hvilket data medtages osv. Disse værdier vil jeg gerne til enhver tid have vist i et søjlediagram. Da dimensionerne ændres er min plan at lave en funktion der angiver området og så indsætte denne som =indirekte(Funktion) i grafen. Hvordan laver jeg nemmest denne funktion. Udgangspunktet for tabellen er altid D8 og planen er så at tillægge et antal kolonner og antal rækker hertil for at få den sidste del af referencen. Nogle gode ideer??
Du kan bruge dine formler andre steder end direkte i grafen for at få samme effekt: Hvis vi tager eksemplet hvor dine headings starter i D8 vil antallet af dine søjler kunne defineres udfra =COUNTA(8:8) forudsat der ikke er irrelavant data til højre eller venstre for. Dine headings kan videre defineres udfra: =OFFSET(Sheet1!$D$8,0,0,1,COUNTA(Sheet1!$8:$8)) og din første række udfra: =OFFSET(Sheet1!$D$9,0,0,1,COUNTA(Sheet1!$9:$9)) og på denne måde hele tiden tage hensyn til et dynamisk antal kolonner. Opretter du så et Name til labels med ovenstående formel og et Name til data også med ovenstående formel, så kan du henføre til disse Names i dine source data til din graf, som så bliver dynamisk bestemt af hvor meget kolonner data du kommer ind.
Problemet er da fordi tabellen er dynamisk er der også formler i de tomme celler. Derfor kan jeg ikke anvende tælv(). Med hensyn til det andet du skriver er jeg ikke sikker på jeg helt forstår. hvad hedder Offset() i den danske udgave??
Det er korrekt, man kan lave de formler du beskriver... men det gør ikke grafen dynamisk. Dvs. hvis du fjerner en kolonne i dit datasæt - ja så opdateres grafen ikke så den afspejler det nye datasæt.
Som udgangspunkt synes jeg det er en rigtig god ide at man gør en indsats for at datasættet man arbejder, at alle celler udfyldte fra øverst venstre til nederst højre, da det er sådan xl opfatter et datasæt, ved diverse formler, kopiering, filter, pivot, autoformatering, etc., istedet for at at have problemerne senere. Eventuelt ved at kopiere 0'er til alle tomme celler, eller multiplicere alle celler med 1, eller hvad man nu kan finde på. Jeg forstår bare ikke helt hvordan en celle kan være tom hvis der er en formel i den? Jeg ved ikke om tælv er den samme som counta, som kun tæller ikke tomme celler, men ellers prøv med nogen af de andre tælle formler. Ellers hvis du kan bruge løsningen, kan det nok løses på en anden måde, ved f.eks. at tage den sidste position minus den første, eller noget lignende. Jeg mener offset på dansk hedder forskydning??, men ellers findes den i samlingen af formler "lookup and reference" og syntaksen ser således ud: OFFSET(reference,rows,cols,height,width) hvor height og width er optional - så håber jeg du kan finde den :o)
Jeg har brugt ovenstående løsning til at opdatere en graf hvor der hele tiden kommer en ny periode til, hvor så alt jeg skal gøre er at kopiere det nye datasæt ind. Dette gælder også hvis jeg kopierer et datasæt ind med færre perioder, så funker den også. Jeg har aldrig haft behov for at slette en kolonne midt i det hele i et eksisterende datasæt - lige det scenario dækker den ikke.
Den løsning ville jeg ski gerne se :-) Jeg kan på ingen måde få den slags til at spille - men måske jeg har glemt en vigtig detalje. Vil du dele et eksempel?
Hvad siger du ehlerz? Jeg tror jeg har et lille illustrativt eksempel - så kunne du også se de korrekte danske oversættelser. Jeg har bare ikke lige en hjemmeside jeg kan uploade til - så måske en mail var en mulighed? / Luffe
Du må meget gerne prøve at sende din løsning på jesperehlers@stofanet.dk
Forestil dig at jeg i et ark har et datasæt på 1000 rækker til forskellige datoer (Aktiekurser). I et andet ark har jeg mine tabeller der viser årsafkast for en periode jeg selv vælger. Hvis jeg vælger 2000-2006 er min tabel kun 7 kolonner bred, hvis 1999 - 2006, 8 kolonner osv. Derudover står der i D8 altid mit startår, således at dette altid er udgangspunktet.hvis jeg så skriver 2000-2002, står der i D8 afkastet for år 2000, e8 afkast for år 2001 og f8 afkastet for år 2002. I resten af kolonnerne er angivet værdierne "". Dette er så jeg nemt kan kopiere tabellerne direkte ind i præsentationer osv uden hele tiden manuelt at skulle ændre layout osv.
Når du har "tomme" værdier som "" skal du bruge count som kun tæller cifre, istedet for counta, som tæller "ikke-tomme". Jeg har lagt dem begge ind i eksemplet, så du kan se oversættelsen. Offset formlerne forneden er blot tekst; hvor du finder finder formlerne inden under - menu - insert - name - define.
Jeg har testet med en formel der afgiver "", så det skulle funke.
Hej Luffe Mange tak for tilsendte. Må dog sige at jeg ikke fatter noget som helst af det! Forstår ikke hvad det er for værdier du henviser til inde i grafen?? de hedder data og Label. Jeg kan så se til venstre at du har defineret hhv data og label. Hvordan er sammenhængen?? Din ofset funktioner som jeg kan se er jo ikke dynamiske. HVor er selve de dynamiske "Navn" og "Lable" henne i arket??
Jeg tror ikke det kan lade sig gøre at lave det sådan her. Mit data range skal være fra D8:P15 som er maks dimensionen for min tabel. Alt mindre end dette kan lade sig gøre, dvs. færre serier og færre årstal. Jeg kan se at du i grafen under "Dataområde" har defineret netop det dataområde der er aktuelt lige nu, vil det ændre sig hvis jeg tilføjer august i de gule felter??
Jeg sender dit ark retur med mit behov. Det jeg har markeret med gult er min maksimale tabelstørrelse men det skal også være muligt at vælge kun 2 serier og eks 3 årstal uden at man skal ændre grafen.
Jeg kan ikke modtage dit sheet af en eller anden grund - den henviser til en internet side :-S Men forstår godt hvad du mener at den ikke bare skal være dynamisk m.h.t. kolonner men også antal rækker. Mit forslag dækkede umiddelbart kun m.h.t. antal kolonner.
Jeg synes ellers jeg havde beskrevet hvor label og data kom ind i billedet. Jeg tror jeg ville gøre det i følgende rækkefølge: - oprette min graf "normalt" på det givne datasæt - oprette mine dynamiske ranges (names) - menu - insert - name - define; skrive navnet f.eks. label og offset formlen i boksen "refers to" og fortsætte til data. - rightclick på en af søjlerne i grafen og indføre de just oprettede names, som ='spreadsheetnavn.xls'!label de respektive steder.
Du kan jo eventuelt oprette flere names for data1, 2, 3 etc for de enkelte serier ned til row P på samme måde, men disse vil jo så stadig synes i grafen hvis tomme som en tom plads ... og det ser jo ikke så pænt ud.
Jeg har ikke umiddelbart nogen løsning til også at gøre rows dynamiske.
Hej Igen Ok, det tyder på at det desværre ikke rigtigt kan lade sig gøre. Surt :-( Men jeg takker mange gange for jeres indsats. Det er ærgeligt det ikke kan lade sig gøre uden om VBA, det må vi håbe de implementerer i en nyere version af office!
Jeg kan umiddelbart kun komme på en semiautomatisk løsning, hvis det skal være uden VBA. - ovenstående løsning m.h.t. kolonner. - oprette de dynamiske range names for row D til P - en label og tolv data. - lave grupperinger for sidste række, derefter sidste og næstsidste række, de tre sidste rækker o.s.v. - herefter kan man klikke på det antal rækker der skal med og som så vil optræde i grafen.
Har sendt sheet for at illustrere med kun tre rækker dog.
Og nu har jeg lige testet med tolv rækker, som jeg kan forstå er max - E til P ... xl kan max gruppere otte gange følgende på hinanden. :-( Så den gik heller ikke helt - øv.
Hehe, tyder på at det er en ikke helt nem opgave vi her er på :-). Sidder selv roder med det stadig syntes det er underligt at det ikke kan lade sig gøre. Jeg har lavet en celle der hedder A8:A8 der hele tiden ændres afhængigt af hvor mange kolonner og rækker der er. Nu mangler jeg bare at få dette ind under dataområde i grafen og det er her det glipper :-( Ærgeligt
Jeg er ikke nogen ørn til VBA, men hvis operationen at kopiere en range ind i graf definitions boksen kan funke manuelt, må den nødvendigvis kunne kodes også. Christian?
Synes godt om
Ny brugerNybegynder
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.