Avatar billede burkal Nybegynder
21. august 2007 - 17:49 Der er 13 kommentarer og
2 løsninger

Tildele en celle en værdi baseret på et antal andre celler

Hej

Jeg har et excel ark der indeholder en masse resultater af fodboldkampe. Hver række indeholder en masse oplysninger om kampen. f.eks. en kollonne med hjemmehold, udehold og mål scoret af hverthold i kampen. Det jeg gerne vil tilføje er en slags formindikator. For hver kamp vil jeg gerne have en kollonne der viser hvor mange mål der blev scoret i de to holds foregående 6 kampe.

Hvordan gør jeg det?
Avatar billede be_nice Juniormester
21. august 2007 - 17:55 #1
Hej burkal,

Hvordan ønsker du din udregning - er det de foregående 6 kampe mellem de 2 hold indbyrdes, eller er det blot det foregående 6 kampe du vil sammenligne på?

Hvis du giver lidt flere info omkring hvordan dit Excel ark er opbygget - hvilke info du har i de forskellige kolonner m.m. - så vil jeg gerne give dig en idé til hvordan du kan løse opgaven.

Det lyder til at være en "nem" og overkommelig opgave der hurtigt kan løses.

Mvh.
Be_Nice
"Hver for sig kan vi alle en smule - men sammen kan vi det hele :o)"
Avatar billede burkal Nybegynder
21. august 2007 - 18:03 #2
Det skal ikke være for de 2 hold indbyrdes men for de sidste 6 kampe de 2 hold har spillet.

Mine data kan findes på flg adresse.
http://www.football-data.co.uk/mmz4281/0607/E0.csv
kollonne beskrivelse er på http://www.football-data.co.uk/notes.txt

På forhold tak.
Avatar billede be_nice Juniormester
21. august 2007 - 18:51 #3
Hej igen,

OK - jeg kigger på det og kommer tilbage.

Jeg har lige et par ærinder ude i byen - men jeg er tilbage om 1½-2 timer - så du får lige en melding der hvis det er ok.

Mvh.
Be_Nice
"Hver for sig kan vi alle en smule - men sammen kan vi det hele :o)"
Avatar billede be_nice Juniormester
21. august 2007 - 21:41 #4
Hej igen,

Så har jeg fået kigget lidt på "opgaven" og mener at have fundet en fornuftig og brugbar løsning, der giver et fornuftigt overblik, når du har valgt kriterier for din visning:

Du opretter 2 pivottabeller (begge tabeller i samme ark!) hvor du vælger visning af flg. data:

Pivottabel 1:
I række indsætter du "Date"
I kolonne indsætter du "Home team"
I data indsætter du "FTHG"

Pivottabel 2:
I række indsætter du "Date"
I kolonne indsætter du "Away team"
I data indsætter du "FTAG"

Når du ønsker at finde din "formindikator" vælger du hjemmeholdet i Pivottabel 1 og udeholdet i pivottabel 2.

Denne løsning giver dig et noget bedre overblik over holdenes spillede kampe, hvor du således kan se hele historikken for de valgte hjemmebanehold og udebanehold. Og da tabellen er sorteret i dato orden, er det også nemt at aflæse de seneste 6, 8 eller 10 kampe, således at du ikke skal ændre forudsætninger hver gang du har nyt behov.

Løsningen kræver kendskab til pivottabeller - hvis du ikke har arbejdet med disse tidligere, vil jeg gerne give yderligere vejledning.

Og som ekstra bonus ved denne løsning, får du mulighed for at se et specifikt resultat ved at dobbeltklikke på et hvilket som helst resultat i dine pivottabeller, hvorefter hjemmebaneholdets eller udebaneholdets komplette resultat for den valgte score åbnes i et nyt regneark - endnu en fantastisk grund til at benytte pivottabeller når det er muligt/nødvendigt.

God fornøjelse.

Mvh.
Be_Nice
"Hver for sig kan vi alle en smule - men sammen kan vi det hele :o)"
Avatar billede burkal Nybegynder
21. august 2007 - 22:30 #5
Tak for dit bud. Har selv arbejdet meget med pivot tabeller og de er rigtigt gode til at skabe et overblik. Men i dette tilfælde er det ikke brugbart. Jeg har ikke beskrevet hvad jeg skal bruge godt nok. Så jeg undskylder at have spildt din tid.

Grunden til at jeg gerne ville have den samlede målscore fra de seneste 6 kamp er følgende:

Det jeg gerne vil undersøge er om der er en sammenhæng mellem hvor mange mål 2 hold har scoret i deres seneste 6 kampe og hvor mange mål de scorer når de mødes. Jeg vil gerne opstille en statistisk sandsynlighed for at der scores x antal mål hvis der i holdenes foregående kampe blev scoret y antal mål.

F.eks. vil der hvis man har et stort datamateriale være en masse kampe hvor holdene der mødes tilsammen har scoret og indkasseret f.eks. 20 mål. Disse kampe vil jeg kigge på og fastslå hvor stor en %-del af de kampe der rent faktisk endte hhv. over og under 2.5 mål (standard betting grænse hvis man vil spille på antal mål scoret i en kamp.)

Ovenstående blev lidt langt men jeg håber at det gav mening. og hvis du har mod på det må du meget gerne kigge mere på det.

Dvs. jeg skal bruge en extra kolonne med den samlede målscore for de 2 holds seneste 6 kampe. (ikke indbyrdes)
Avatar billede burkal Nybegynder
21. august 2007 - 22:37 #6
Jeg har kigget lidt på macroer, men hvis man ikke er VBscripthaj er det jo umuligt :(
Avatar billede be_nice Juniormester
21. august 2007 - 22:55 #7
Hej igen,

Jamen du kan da sagtens få vist det samlede antal mål i de 2 holds seneste x antal kampe.

Du skal blot udvide dine pivottabeller til også at indeholde flg. data:

Pivottabel 1:
I række indsætter du "Date"
I kolonne indsætter du "Home team"
I data indsætter du "FTHG" og "FTAG"

Pivottabel 2:
I række indsætter du "Date"
I kolonne indsætter du "Away team"
I data indsætter du "FTAG" og "FTHG"

Vælg f.eks. Everton i pivottabel 1 - her får du flg. resultater:
        HomeTeam   
Date        Data        Everton
19-08-2006    Sum af FTHG    2
        Sum af FTAG    1
09-09-2006    Sum af FTHG    3
        Sum af FTAG    0
16-09-2006    Sum af FTHG    2
        Sum af FTAG    2
30-09-2006    Sum af FTHG    1
        Sum af FTAG    1
21-10-2006    Sum af FTHG    2
        Sum af FTAG    0
11-11-2006    Sum af FTHG    0
        Sum af FTAG    1
18-11-2006    Sum af FTHG    1
        Sum af FTAG    0
03-12-2006    Sum af FTHG    2
        Sum af FTAG    0
17-12-2006    Sum af FTHG    2
        Sum af FTAG    3
26-12-2006    Sum af FTHG    0
        Sum af FTAG    0
30-12-2006    Sum af FTHG    3
        Sum af FTAG    0
14-01-2007    Sum af FTHG    1
        Sum af FTAG    1
10-02-2007    Sum af FTHG    1   
        Sum af FTAG    0
21-02-2007    Sum af FTHG    1
        Sum af FTAG    2
18-03-2007    Sum af FTHG    1
        Sum af FTAG    0
06-04-2007    Sum af FTHG    4
        Sum af FTAG    1
15-04-2007    Sum af FTHG    2
        Sum af FTAG    1
28-04-2007    Sum af FTHG    2
        Sum af FTAG    4
05-05-2007    Sum af FTHG    3
        Sum af FTAG    0
Total         Sum af FTHG    33
Total         Sum af FTAG    17

Vælg dernæst Charlton i pivottabel 2 - hvor du så får vist flg. resultater:
        AwayTeam   
Date        Data        Charlton
19-08-2006    Sum af FTAG    1   
        Sum af FTHG    3   
09-09-2006    Sum af FTAG    1   
        Sum af FTHG    2   
23-09-2006    Sum af FTAG    0
        Sum af FTHG    2
16-10-2006    Sum af FTAG    1
        Sum af FTHG    2
28-10-2006    Sum af FTAG    0
        Sum af FTHG    0
11-11-2006    Sum af FTAG    2
        Sum af FTHG    3
18-11-2006    Sum af FTAG    0
        Sum af FTHG    2
02-12-2006    Sum af FTAG    1
        Sum af FTHG    2
09-12-2006    Sum af FTAG    1
        Sum af FTHG    5
23-12-2006    Sum af FTAG    0
        Sum af FTHG    2
02-01-2007    Sum af FTAG    0
        Sum af FTHG    4
20-01-2007    Sum af FTAG    1
        Sum af FTHG    0
31-01-2007    Sum af FTAG    1
        Sum af FTHG    1
10-02-2007    Sum af FTAG    0
        Sum af FTHG    2
03-03-2007    Sum af FTAG    2
        Sum af FTHG    2
06-04-2007    Sum af FTAG    0
        Sum af FTHG    0
15-04-2007    Sum af FTAG    1
        Sum af FTHG    2
28-04-2007    Sum af FTAG    1
        Sum af FTHG    4
13-05-2007    Sum af FTAG    2
        Sum af FTHG    2
Total         Sum af FTAG    15
Total         Sum af FTHG    40

Nu har du så data til at bruge til din videre bearbejdning - således kan du f.eks. aflæse flg.:
Everton har i de seneste 6 kampe flg. score: 21 mål(13-8) Hjemmebane
Charlton har i de seneste 6 kampe flg. score: 18 mål(6-12) Udekampe

Og skulle du ønske at udregne en % andel af kampe over/under 2.5 mål, vil jeg foreslå at du i dine rådata tilføjer en ekstra kolonne, hvor du udregner kampens måldata, til videre brug i dine pivottabeller.

Netop når du får samlet en større mængde historiske data, vil det være noget nemmere at skabe et overblik via pivottabeller, da disse opdateres dynamisk hver gang der sker ændringer i dine rådata.

Jeg har ikke umiddelbart et andet oplæg til en evt. løsning - men måske kommer der nogle guldkorn frem når "opgaven" får lov til at køre i loop når hjernecellerne ikke bruges til andre opgaver.

Mvh.
Be_Nice
"Hver for sig kan vi alle en smule - men sammen kan vi det hele :o)"
Avatar billede burkal Nybegynder
21. august 2007 - 23:17 #8
Muligvis har jeg misforstået, men vil du have mig til at lave en manuel aflæsning af pivottabellen? Det er praktisk talt umuligt! Jeg skal have "formindexet" for hver eneste kamp der er spillet. Jeg har data fra år 2000 til nu = ca 300 kampe pr sæson = 2000+ manuelle aflæsninger.

Du skriver følgende:
quote
vil jeg foreslå at du i dine rådata tilføjer en ekstra kolonne, hvor du udregner kampens måldata, til videre brug i dine pivottabeller.
unquote
Mener du med måldata hjemmemål + udemål? eller noget andet?

Hvis jeg kunne udregne "formindexet" og placere det i rækken med den pågældende kamp. Kunne jeg lave en pivottabel med "Formindexet" og den faktiske målscore i kampen. Og det ville blive min procentsats som jeg skal bruge.
Avatar billede burkal Nybegynder
21. august 2007 - 23:18 #9
Måske skal jeg bruge en DB i stedet?
Avatar billede burkal Nybegynder
21. august 2007 - 23:19 #10
altså til at sætte "formindexet" på rækken?
Avatar billede be_nice Juniormester
21. august 2007 - 23:26 #11
Hej igen,

Ja, den ligger måske ikke lige til højrebenet alligevel :o)

Men netop dit ønske om at benytte store mængder rådata til din statisik beregninger, gør at du selvfølgelig må og skal have en brugbar skabelon til dine analyser.

Som du selv er inde på, var det måske ikke noget tosset idé at bevæge sig over i DB i stedet - der må jeg så melde hus forbi, da jeg ikke har arbejdet ret meget med dette. Men DB løser helt oplagt nogle af dine "programmerings" problemer, og giver andre muligheder for krydsreferencer.

Lad os høre hvad du finder frem til.

Mvh.
Be_Nice
"Hver for sig kan vi alle en smule - men sammen kan vi det hele :o)"
Avatar billede gider_ikke_mere Nybegynder
22. august 2007 - 07:20 #12
Sub IndSaetData()
Dim I As Long, Slut As Long, Hold1 As String, Hold2 As String, Hold1Goals As Variant, Hold2Goals As Variant, Goals1 As Long, Goals2 As Long, Kampe1 As Long, Kampe2 As Long
If Range("E1").Value = "FTHG" Then
    Columns("E:E").Select
    Selection.Insert Shift:=xlToRight
End If
Slut = Range("A65536").End(xlUp).Row
DataArray = Range("A1:BQ" & Slut)
For I = 2 To Slut
    Hold1 = DataArray(I, 3)
    Hold2 = DataArray(I, 4)
    Hold1Goals = ""
    Hold2Goals = ""
    For Y = I + 1 To Slut
        If (DataArray(Y, 3) = Hold1 Or DataArray(Y, 4) = Hold1) And Kampe1 < 7 Then
            If DataArray(Y, 3) = Hold1 Then
                Goals1 = Goals1 + DataArray(Y, 6)
            End If
            If DataArray(Y, 4) = Hold1 Then
                Goals1 = Goals1 + DataArray(Y, 7)
            End If
            Kampe1 = Kampe1 + 1
        End If
       
        If (DataArray(Y, 3) = Hold2 Or DataArray(Y, 4) = Hold2) And Kampe2 < 7 Then
            If DataArray(Y, 3) = Hold2 Then
                Goals2 = Goals2 + DataArray(Y, 6)
            End If
            If DataArray(Y, 4) = Hold2 Then
                Goals2 = Goals2 + DataArray(Y, 7)
            End If
            Kampe2 = Kampe2 + 1
        End If
       
        If Kampe1 = 6 Or Y = Slut Then
            Hold1Goals = Goals1
        End If
       
        If Kampe2 = 6 Or Y = Slut Then
            Hold2Goals = Goals2
        End If
        If Hold1Goals <> "" And Hold2Goals <> "" Then
            If Kampe1 < 6 Then
                Hold1Goals = Hold1Goals & "(" & Kampe1 & ")"
            End If
            If Kampe2 < 6 Then
                Hold2Goals = Hold2Goals & "(" & Kampe2 & ")"
            End If

            DataArray(I, 5) = "'" & Hold1Goals & " - " & Hold2Goals
            Goals1 = 0
            Goals2 = 0
            Kampe1 = 0
            Kampe2 = 0
            GoTo NæsteKamp
        End If
    Next
NæsteKamp:
Next
Range("A1:BQ" & Slut) = DataArray
Range("E" & Slut + 1).Value = "Numrene i parates indikerer hvis der ikke er fundet 6 kampe"
Columns("E:E").HorizontalAlignment = xlCenter
End Sub
Avatar billede burkal Nybegynder
24. august 2007 - 11:22 #13
tak for svarene. Akyhne: din kode virker perfekt. den får jeg vist meget glæde af. send et svar for at få point.
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 11:29 #14
Det kommer her :-)
Avatar billede gider_ikke_mere Nybegynder
24. august 2007 - 14:04 #15
Tak for point.
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