21. august 2007 - 17:49Der 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.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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)"
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)"
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)
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)"
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.
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)"
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
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.