Avatar billede xep Nybegynder
02. april 2005 - 17:28 Der er 26 kommentarer

Reference til beregning udlæses fra celle

Jeg har lavet et regneark i Excel hvori jeg importerer en tabel fra en web-kilde med konstant antal kolonner (3) men variende antal rækker (1-99).

Antal rækker i tabellen varierer som sagt og da jeg gerne vil udføre en beregning af middelværdien for hver af de tre kolonner har jeg brug for en måde hvor på jeg kan angive omfanget af middel-funktionen. Antallet af rækker har jeg udlæst i en anden celle. Fx hvis tabellen er XX rækker høj skal formlen lyde =MIDDEL(A1:AXX) hvor XX læses fra en celle i regnearket. Can it be done?
Avatar billede jkrons Professor
02. april 2005 - 17:35 #1
Her er en mulighed:

Hvis antager at du har rækkeantallet i B1 kan du skrive kolonnebogstavet (A) i B2 og i B3 have denne formel: =B2&B1

I din middelberegning kan du så bruge =MIDDEL(A1:INDIREKTE(B3))
Avatar billede jkrons Professor
02. april 2005 - 17:36 #2
Men hvorfor ikke bare sige MIDDEL(A1:A99). Tomme celler indgår ikke i din gennemsnitsberegning.  Så selv om du af og til kun har 80 rækker ,regner formlen rigtigt alligevel.
Avatar billede jkrons Professor
02. april 2005 - 17:38 #3
Denne kan også gøre det. Så behøver du ikke hjælpeceller:

=MIDDEL(A1:INDIREKTE("a"&B1)) hvor B1 stadig er cellen med rækkeantallet.
Avatar billede xep Nybegynder
02. april 2005 - 17:44 #4
God ide, men jeg droppede celle B2 og B3 fra dit eksempel og skrev simpelthen bare =MIDDEL(A1:INDIREKTE("A"&B1). Så slipper jeg for at have celler rundt omkring med data i som jeg egentlig ikke skal bruge men jeg bruge stadig din pointe.
Avatar billede xep Nybegynder
02. april 2005 - 17:45 #5
Jeg kan se jkrons er kommet med samme bud som jeg selv er kommet frem til... A1:A99 dur ikke for cellerne forsøger at foretage en beregning hele tiden men det er ikke altid de får et input så der står DIVISION/0 i mange af dem men det gør ikke noget så længe MIDDEL-funktionen undgår dem.
Avatar billede jkrons Professor
02. april 2005 - 17:47 #6
Bare det virker :-)
Avatar billede xep Nybegynder
02. april 2005 - 17:54 #7
Det gør det når bare antal rækker er over 10. Jeg får tallet fra en celle i de importerede data hvor der står "Antal: X" og "Antal: XX" ved hhv. et og to cifrede tal. Jeg bruger følgende formel til at udlæse tallet: "=HØJRE(A1;2)" men når tallet er et cifret kommer der i den nye celle til at stå 0X og så brokker Middel/Indirekte-funktionen sig. Har i et bud på en løsning?
Avatar billede jkrons Professor
02. april 2005 - 17:56 #8
I stedet før Højre kan du bruge

=MIDT(A1;7;LÆNGDE(A1)
Avatar billede jkrons Professor
02. april 2005 - 17:56 #9
Undskyld, 8 ikke 7.
Avatar billede xep Nybegynder
02. april 2005 - 18:00 #10
Vil du ikke forklare hvad den formel gør for jeg skal justere den til mit regneark..
Avatar billede xep Nybegynder
02. april 2005 - 18:08 #11
Jeg har fundet ud af syntaksen og det virker fint nu, takker..
Avatar billede jkrons Professor
02. april 2005 - 18:09 #12
Den tager det/de tegn, der starter på 8. position, altså lige efter mellemrummet efter ANTAL: og så retsten af cellen(s længde). Står derfor Antal: 8 tager den 8, står der antal 81 tager den 81.
Avatar billede xep Nybegynder
02. april 2005 - 18:11 #13
Ja ok, og så angiver du bare antal cifre til længden af hele cellen for en sikkerhedsskyld..
Avatar billede jkrons Professor
02. april 2005 - 18:13 #14
Ja, hvis der en dag skulle komme længder med tre cifre.
Avatar billede xep Nybegynder
02. april 2005 - 18:26 #15
Ja ok jkrons, altid godt at være fremtidssikret...

Jeg har lige et lille side spg nu jeg har fat i jer:

Jeg henter altså en tabel ind fra en web-kilde og når jeg skal hente en ny tabel skal jeg højreklikke, vælge Rediger forespørgsel, indsætte ny URL, vælge tabel og trykke importer - men er det ikke muligt at gøre det lidt nemmere?

Hvis kilden (URL'en) til tabellen kunne være repræsenteret i en celle og den var sat til at opdatere jævnligt så kunne jeg bare overskrive den gamle URL og så opdaterede tabellen automatisk. Siden jeg henter tabellen fra er altid opbygget ens, altså placeringerne af tabeller osv men URL'en ændres altså.
Avatar billede jkrons Professor
02. april 2005 - 18:44 #16
Her må jeg blive dig svar skyldig. Jeg ved ikke om du kan gøre det på den måde.
Avatar billede xep Nybegynder
02. april 2005 - 18:47 #17
sjap foreslag at indspille en makro hvor jeg gjorde det nødvendige og det fungerer men delen hvor jeg paster den nye URL ind fra udklipsholder misser den uheldigvis. Eller dvs den henter tabellen fra samme side hver gang - altså samme URL som jeg brugte ved indspilningen..
Avatar billede sjap Praktikant
02. april 2005 - 18:47 #18
Har ikke helt gennemsnuet, hvad du forsøger, men du kan evt. optage en makro, hvor du gør som du har beskrevet, og så tilknytte makroen til en kommandoknap.
Avatar billede jkrons Professor
02. april 2005 - 18:51 #19
sjap-> Jeg tror at der ønskes en slags Indirekte, hvor der, i importen, peges på en celle, der indeholder en URL i stedet for man i importen angiver selve URL'en, sådan at når URL ændres i cellen, vil kæden automatisk peget på den nye URL og opdatere fra den.
Avatar billede xep Nybegynder
02. april 2005 - 18:52 #20
Hvilken del kan du ikke gennemskue?

Ellers kan i se koden til min makro her nedenfor. Den fungerer som sagt fint men URL skal altså ikke være fast som her men helst hentes fra udklipsholder eller evt bare fra en celle i mit regneark.

----------------------------------------------------------------------------------
Sub Makro6()
'
' Makro6 Makro
' Makro indspillet 02-04-2005 af E
'

'
    Range("A1").Select
    With Selection.QueryTable
        .Connection = _
        "URL;http://www.betexplorer.com/hockey/usa/AHL-2004-2005/nextmatch.php?matchid=5917121"
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "13"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
----------------------------------------------------------------------------------
Avatar billede xep Nybegynder
02. april 2005 - 18:53 #21
Ja det var egentlig min intention jkrons men jeg troede ikke det kunne lade sig gøre og kunne godt overleve at gøre det via en kommandoknap der peger på en makro som sjap har foreslået..
Avatar billede sjap Praktikant
02. april 2005 - 18:59 #22
Jeg er godt nok på glatis, når vi skal lege med URL'er, men kan du ikke blot håndtere det som en streng? Dvs. i ovenstående erstatter du linien

"URL;http://www.betexplorer.com/hockey/usa/AHL-2004-2005/nextmatch.php?matchid=5917121"

"URL;" & RANGE("G1").Value

Hvor du så har URL'en stående i celle G1 - som en tekststreng (men jeg ved ikke om det er et krav i denne funktion).
Avatar billede xep Nybegynder
02. april 2005 - 19:05 #23
Det var sku et meget godt bud hvis du ikke vidste det for det virkede sku.. :)

Jeg ville dog gerne undgå de to trin med at kopiere URL'en og indsætte den i regnearket så jeg har lige oprettet et spørgsmål i Visual Basic sektionen af Eksperten.dk...
Avatar billede sjap Praktikant
02. april 2005 - 19:08 #24
OK. Så husk at lukke det her spørgsmål, og giv blot jkrons pointene - han svarede jo rent faktisk på dit oprindelige spørgsmål.
Avatar billede xep Nybegynder
02. april 2005 - 19:11 #25
Jeps det er vist mest fair. Tak for hjælpen begge to..
Avatar billede xep Nybegynder
02. april 2005 - 19:13 #26
jkrons du har vist kun lagt kommentarer her så smider du ikke lige et svar så jeg kan give dig pointene..
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