Avatar billede dj-sejler Praktikant
25. juni 2009 - 09:19 Der er 7 kommentarer og
1 løsning

Vælg flere cellers værdier i en funktionsvariabel

Hej
Jeg er ved at lave en funktion til excel 2007

i den funktion skal jeg kunne vælge to "grupper" af celler som skal være lige store det kunne for eksempel være:

J4,J6:J9,J11:J13 og
K4,K6:K9,K11:K13

mit problem er bare at jeg ikke ved hvordan jeg praktisk skal gøre det - regnede med at jeg på en eller anden måde skulle have dem i et array?

følgende er hvad jeg har indtil nu:

Function average_error(percentage() As Long, error() As Long, accuracy As Double) As Double
    Dim sum As Double
   
    average_error = accuracy
End Function

bruger jeg fx knappen og vælger mine celler får jeg fejlen: #VÆRDI!
og i cellen står der nu:
=average_error(J4,J6:J9,J11:J13,K4,K6:K11,K13,R4)

hvor det jo tydeligt ses at der nu er 7 variable istedet for mine 3?

Nogen der kan hjælpe med dette?
Avatar billede mrgumble Nybegynder
25. juni 2009 - 09:46 #1
Hvilken knap ("bruger jeg fx knappen...") taler du om?

Hvad er sammenhængen mellem dine celler? Alle cellerne for i række J regnes sammen som én masse, og der er en arbitrær antal celler, eller skal der gøres noget specielt ved den ene celle, noget andet ved J6:J9 og noget helt tredje ved cellerne J11:J13, før det sammenlignes med det i K?

Hvis det er det første, kan du lave en funktion der kan tage imod de to grupper (min VBA er ikke så god længere):
Function group(ParamArray Args())
'Do something with the cells
group = xxx
End Function

Function compare(group1, group2)
If group1 > group2 Then
  compare = 1
Elseif group2 > group1 Then
  compare = 2
Else
  compare = 0
End if
End Function

Så kan du i en celle skrive:
=compare(group(J4;J6:J9;J11:J13), group(K4;K6:K9;K11:K13))


Hvis det derimod er det sidste, ville jeg lave min group-function som:
Function group(percentage() As Long, error() As Long, accuracy As Double) As Double
group = accuracy*percentage() - error() 'Whatever
End Function

Du vil dog skrive formlen på samme måde.
Avatar billede dj-sejler Praktikant
25. juni 2009 - 09:57 #2
værdierne i cellerne er x og y værdier...
så jeg skal bruge mindst 2 værdier i hver gruppe...

og så skal jeg beregne arealet under hvert af de liniestykker punkterne giver og til sidst gange med nøjagtigheden...

giver det mening? selve beregningerne i funktionen volder ingen problemer - det er kun at få værdierne ind i funktionen
Avatar billede dj-sejler Praktikant
25. juni 2009 - 10:00 #3
og fx-knappen er funktionsknappen i excel :)

og så tror jeg at der kan være problemer med opremsnings tegn?

i mit excel bruger jeg komma mellem variablerne og du har brugt semikolon?
Avatar billede mrgumble Nybegynder
25. juni 2009 - 10:06 #4
Er det (x,y)-koordinater i hver kolonne, så J4 og K4 er hhv. x- og y-værdien for et punkt? Hvis du lige ridser det op, kan vi nok hjælpe meget mere. :)

Komma og semikolon er vist lidt afhængigt af programmet og sproget. Mit semikolon er til adskillelse af parametrene, hvor du ser ud til at bruge komma.
Avatar billede dj-sejler Praktikant
25. juni 2009 - 10:28 #5
Nåe ja

J4 og K4 er et sæt kordinater
J6 og K6
J7 og K7

det vil sige at alle J-værdierne er x koordinater
og alle K-værdierne er y koordinater...

mht (,) og (;)
Når jeg første gang fylder værdier i min funktion ser det således ud:
http://galleri.lyttilmig.dk/?g=78&b=742
Når jeg så igen vha. fx-knappen ser værdier ser det således ud:
http://galleri.lyttilmig.dk/?g=78&b=743
Avatar billede dj-sejler Praktikant
25. juni 2009 - 10:29 #6
Når jeg første gang fylder værdier i min funktion ser det således ud:
http://galleri.lyttilmig.dk/images/gallery_78_images_742.jpg
Når jeg så igen vha. fx-knappen ser værdier ser det således ud:
http://galleri.lyttilmig.dk/images/gallery_78_images_743.jpg
Avatar billede mrgumble Nybegynder
25. juni 2009 - 10:34 #7
Grunden til den skriver "#VÆRDI" i den første boks er nok, at du har angivet en række af celler og ikke blot en range.
Avatar billede dj-sejler Praktikant
03. juli 2009 - 13:26 #8
Jeg har ikke kunne få det til at virke og har løst problemet på anden og mere slave-agtig måde.

Lukker tråden her - da det var til en opgave der er overstået og derfor ikke vil bruge mere tid på at få det til at virker, men takker for opmærksomheden!
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
Kurser inden for grundlæggende programmering

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