/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Formelhjælp i excel 2003
Fra : boro23
Vist : 888 gange
500 point
Dato : 04-11-08 09:34

Jeg har brug for en formel der kan beregne hvor mange grupper der er af et bestemt tal f.eks. 10 i en række.

:22:10:41:66:27:10:10:10:66:22:41:10:10:66:66:10: = formelresultat 4

Håber I forstår mit lille eksempel, har virkelig for noget prof. hjælp, da jeg er ved at blive vanvittig over det ikke kan lykkedes.


 
 
Kommentar
Fra : Højris


Dato : 04-11-08 09:55


Hej boro23

Citat
:22:10:41:66:27:10:10:10:66:22:41:10:10:66:66:10: = formelresultat 4


Det der fåstår excel ikke noget af. Prøv at dele grupperne op med ;
så kan jeg i det mindste se hvor mange grupper der er.
Nu har jeg ikke så meget tid men der kommer nok en excelsnedker på et tids .
Højris

Kommentar
Fra : svendgiversen


Dato : 04-11-08 09:59

Den er svær...

En mulighed:
A: Prøv med en IF der checker om tallet og det efterfølgende er forskellige.
B: Summer disse hændelser...

Men det skal jo gennemføres for alle mulige tal.
Har du ikke en maks værdi?

Kommentar
Fra : svendgiversen


Dato : 04-11-08 10:12

>A: Prøv med en IF der checker om tallet og det efterfølgende er forskellige.
Kan f.eks. se sådan ud:
=HVIS(C4=D4;0;1) osv.

>B: Summer disse hændelser.
Kan f.eks. se sådan ud:
=SUM(D5:F5)-1

Du skal vist trække 1 fra? Afhængig af hvordan du begynder og slutter...

Kommentar
Fra : boro23


Dato : 04-11-08 10:16

Hej Højris


: : skal bare illustrerer celler i en række.

Hej Svendgiversen

Har ingen maks værdi. Har prøvet med HVIS, TÆL.HVIS, TÆLV, TÆL you name it

Kommentar
Fra : svendgiversen


Dato : 04-11-08 10:20

Min metode er god nok, men der skal suppleres med en betingelse mere:
En kombineret If med & ..., der udvælger kun bestemte tal, i dit eksempel 10.

Har ikke mere tid lige nu, kommer tilbage i eftermiddag, hvis andre ikke har suppleret...



Kommentar
Fra : boro23


Dato : 04-11-08 10:46

Hej Svendgiversen

Glæder mig til se om du kan løse mit store problem.

Kommentar
Fra : sion


Dato : 04-11-08 11:11

Denne VBA-kode klarer vist opgaven:
Kode
Sub Opdel_i_grupper()

Dim arrTal As Variant
Dim intArraySize As Integer
Dim intGrupper As Integer
Dim InputCelle As Range
Dim TestCelle As Range
Dim OutputCelle As Range

Set InputCelle = Range("E8") 'Skriv her celle med tekststreng
Set TestCelle = Range("E9") 'Skriv her celle med værdi, som skal grupperes
Set OutputCelle = Range("E10") 'Skriv her celle til angivelse af resulat (antal grupper)

arrTal = Split(InputCelle.Value, ":")
intArraySize = UBound(arrTal) - LBound(arrTal) - 1

For x = 1 To intArraySize

If Val(arrTal(x)) = TestCelle.Value Then
If Val(arrTal(x + 1)) = TestCelle.Value Then
intGrupper = intGrupper
Else
intGrupper = intGrupper + 1
End If
Else
intGrupper = intGrupper
End If
Next

OutputCelle.Value = intGrupper

End Sub


Mvh. Simon

Kommentar
Fra : svendgiversen


Dato : 04-11-08 12:26

Her er en halvautomatisk løsning i ren Excel:
"
10                                                   
22   10   41   66   27   10   10   10   66   22   41   10   10   66   66   10   0
   
   1   1   1   1   1   0   0   1   1   1   1   0   1   0   1   1
   
   0   1   0   0   0   1   1   1   0   0   0   1   1   0   0   1
   
   0   1   0   0   0   0   0   1   0   0   0   0   1   0   0   1   

Grupper 4
"
Det tal du ønsker at se grupperinger for angives i A1, her 10
Din talrække er angivet fra A2 til P2 og et ekstra 0 i Q2
(fylder 2 linier her)

Så følger kriteriet for gruppe skift:
=HVIS(A2=B2;0;1)
(fylder 2 linier her)

Og kriteriet for valgt tal:
=HVIS(A2=$A1;1;0)
(fylder 2 linier her)

Det kombinerede kriterie er produktet:
=B3*B4
(fylder 2 linier her)

De 2 kriterier kan sikkert kombineres i én IF??

Og så summeres den sidste række:
=SUM(B5:Q5)
med resultat for 10: Grupper 4

Prøv at skifte til eksempelvis 66 og du får: Grupper 3

Skal grupperingen udføres automatisk for alle mulige talværdier må du nok programmere,
eksempelvis som Simon i Visual Basic...

Her foretrækker jeg MathLab.

                                                   
   

Kommentar
Fra : svendgiversen


Dato : 04-11-08 12:28

Fylder alligevel ikke 2 linier efter det er sendt, men søjlestrukturen er væk...

Kommentar
Fra : boro23


Dato : 04-11-08 16:41

Hej Svendgiversen

Det er ikke godt at skulle indsætte ekstra rækker for at lave beregningen, da det vil ødelægge referencer i andre filer.

Hej Simon

Jeg forstår ikke helt din vba kode, kunne du ikke uddybe det lidt mere.

Kommentar
Fra : svendgiversen


Dato : 04-11-08 17:04

>Det er ikke godt at skulle indsætte ekstra rækker...

Du kan jo bare hide dem eller, endnu bedre, placere dem på et underliggende sheet.



Kommentar
Fra : pedroso


Dato : 04-11-08 17:06

Det er da simpelt:

Skriv det tal du ønsker at finde gruppeantallet af i A1
Skriv din talrække i B1:B100 (nu antager jeg 100 tal, dette kan du jo ændre)
Skriv følgende i C1: =countif(10;B1:B100)
C1 angiver nu antallet af 10-taller i B-rækken. Skal du bruge antallet af et andet tal så ændrer du bare A1.

Nu har jeg ikke en dansk excel, men nogen kan måske hjælpe her. Det hedder vist noget med tæl.hvis() som du har prøvet, men måske ikke på den rigtige måde?

Jeg synes ikke du har beskrevet opgaven helt, f.eks. fremgår det ikke om du skal kende grupperingen af alle tal. I så fald har du jo uendelig mange grupper at checke - du siger der ikke er noget max tal ! Eller skal du bruge gruppen med flest ens tal???

Hvad skal du iøvrigt bruge dette til, måske er der en anden indgang på problemstillingen. Eller er det bare for at udfordre os her i kandu

Kommentar
Fra : pedroso


Dato : 04-11-08 17:26

Øv, glem hvad jeg lige skrev, jeg misforstod vist opgaven....

Kommentar
Fra : boro23


Dato : 04-11-08 19:08

Hej alle

Jeg har måske ikke forklaret problemet godt nok, vil forsøge at beskrive mit problem noget bedre.

Jeg har lavet en slags arbejdsplan over godt 100 medarbejdere på et kvartal (rækker=medarbejder og kolonner=dage), hvor der er tastet en arbejdskode for hver dag pr. medarbejder. For enden af hver række/ medarbejder har jeg brug for en formel der kan finde éen bestemt kode (f.eks. 10) så jeg kan se hvor mange gange/perioder en medarbejder har haft over et kvartal. Hvis f.eks. en medarbejder har kode 10 mandag, tirsdag i en uge, torsdag i en anden uge og onsdag, torsdag, fredag i en tredie uge, så har han brugt 3 perioder og det er hans max kvote over et kvartal.

Jeg har prøvet en lignene udgave af svendgiversen version, men det giver problemer når jeg bruger sortering i autofilter.

Håber jeg har fået det formuleret rigtig ellers må jeg maile Jer en mini version af filen.

Kommentar
Fra : sion


Dato : 04-11-08 19:54



Jeg troede, at du havde alle tallene adskilt af kolon'er i én celle. Det er dét, min VBA-kode kan løse.

Nu forstår jeg, at tallene står i hver sin kolonne. Jeg mener derfor, at svendgiversen's svar fra 12:26 er noget nær det smarteste, man kan lave i Excel. Som svendgiversen også selv skriver, kan formlerne dog slås sammen, så de ikke fylder så meget i regnearket. Du bør naturligvis heller ikke lave plads mellem rækkerne til formlerne, men blot placere dem i kolonnerne til højre for dine data.

Antag at dine tal/data stå i cellerne A1:P1, og at du indtaster din kode-værdi i R1. Du kan nu skrive følgende kode i T1 og trække den ud til alle cellerne i T1:AI1:

=HVIS(A1=$R$1;HVIS(A1=B1;0;1);0)

Summen af T1:AI1 er din ønske værdi - altså antallet af perioder med den angivne kode.

Hvis du er interesseret, kræver det vist ikke meget at lave min VBA-kode om, så den kan bruges, når tallene står i flere kolonner.

Mvh. Simon

Kommentar
Fra : boro23


Dato : 04-11-08 20:42

Hej Simon

Det virker fint, men der er ikke er nok kolonner, ærgeligt.
Kunne du lave en vba kode, så den beregner på samme måde som ovenstående, vil jeg være dig evig taknemmelig.

Kommentar
Fra : pedroso


Dato : 04-11-08 21:37

Du kunne vel også bruge et nyt faneblad til beregningerne, så er der da kolonner nok.

Jeg vil foreslå at du sender arket til sion, så er det langt nemmere for ham at se hvad du skal bruge. Har selv prøvet at lave VBA kode til folk uden at det liiiiige var det de skulle bruge.

Og sion, hvis jeg var dig ville jeg lave et array med 2 integer i hver. En med koden, og en med antal grupper, og så bare tælle op.

Kommentar
Fra : pedroso


Dato : 04-11-08 21:42

svendgiversens løsning burde vel egentlig kunne fylde lidt mindre som han også selv siger, og så kan den måske være der. Bruger du et nyt faneblad skal du jo passe lidt på når du sorterer. Selv om det nok kan løses.

Kommentar
Fra : boro23


Dato : 06-11-08 11:25

Hej Alle

Har prøvet at lave beregningerne i et nyt, men det giver problemer når jeg sortere data i arbejdsplanen, samt at filens størrelse bliver på ca 25MB en ganske tung fil at arbejde med.
Håber at Simon kan hjælpe med en vba kode.


Kommentar
Fra : sion


Dato : 06-11-08 13:01

Hej boro23

Jeg vil se på det, når jeg får tid. Formentlig først i weekenden.

Simon

Kommentar
Fra : pedroso


Dato : 13-11-08 09:36

Fik du løst problemet?

Kommentar
Fra : boro23


Dato : 13-11-08 13:49

Nej, ikke endnu. Jeg håber Simon kommer på banen igen, han plejer at komme med en god løsning.

Kommentar
Fra : sion


Dato : 13-11-08 17:16

Jeg har nu lavet en kode:

Kode
Sub Tæl_grupper()

Dim intGrupper As Integer
Dim InputCelle As Range
Dim TestCelle As Range
Dim OutputCelle As Range

Set InputCelle = Range("A1") 'Skriv her første celle med inputværdier
Set TestCelle = Range("A2") 'Skriv her celle med værdi, som skal grupperes
Set OutputCelle = Range("A3") 'Skriv her celle til angivelse af resulat (antal grupper)

i = 0

Do While InputCelle.Offset(0, i).Value <> ""
If InputCelle.Offset(0, i).Value = TestCelle.Value Then
If InputCelle.Offset(0, i + 1).Value = TestCelle.Value Then
intGrupper = intGrupper
Else
intGrupper = intGrupper + 1
End If
Else
intGrupper = intGrupper
End If
i = i + 1
Loop

OutputCelle.Value = intGrupper

End Sub

Dine arbejdskoder skriver du i celle A1, B1, C1 osv. Programmet finder selv ud af hvor mange koder, du har skrevet (når der er en tom celle, stopper beregningen).
I celle A2 skriver du den arbejdskode, du vil søge efter.
Antallet af grupper (outputtet) kommer i celle A3.

Håber det giver mening. Du kan jo selv prøve at tilpasse koden til dine behov.

Hvis beregningen skal laves for flere rækker, skal der i hvert fald lidt mere kodning til.

Simon

Kommentar
Fra : boro23


Dato : 01-12-08 10:36

Hej Simon

Undskyld den lange reaktionstid, har lagt underdrejet i 2 uger.

Jeg har prøvet at ligge din kode ind, men kan ikke få det til at fungere. Kunne du ikke prøve at maile et regneark med dit eksempel på "mit brugernavn"@ofir.dk, som jeg kan bruge på et senere tidspunkt. Er kørt lidt træt i arbejdet med filen, ligger den på hylden et stykke tid.

Du får pointene hvis du kan hjælpe mig med noget helt andet? Jeg har et par medarbejdere der laver et kørselsregnskab hvor de taster dato, navn, sted, formål og km ind. Jeg ville gerne kunne lave en formel (i et andet ark) der kan beregne hvormange km. de til sammen har kørt i 1.kvartal, 2 kvartal osv.

Hilsen boro23

Du har følgende muligheder
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
Søg
Reklame
Statistik
Spørgsmål : 177429
Tips : 31962
Nyheder : 719565
Indlæg : 6407948
Brugere : 218878

Månedens bedste
Årets bedste
Sidste års bedste