Avatar billede jhavn Nybegynder
28. september 2011 - 14:13 Der er 7 kommentarer

Udregning af hvad et tal består af

Hej
Jeg har en sjov opgave som jeg bare ikke finde løsningen på

eks. jeg har et tal på 120 (dette tal skal kunne skiftes)

så skal jeg finde ud af hvad dette tal kunne bestå af

Eks tal a120, b50, c30, d20, e70 osv. disse tal skulle også skiftes ud

Det jeg så skal have er et svar der i eks ville være 50, 30, 20
Avatar billede natkatten Mester
28. september 2011 - 14:17 #1
Jeg tror ikke lige, at jeg forstår, hvordan du når frem til, at tallet 120 består af tallene 50, 30 og 20. Vil du ikke prøve at forklare dette?
Avatar billede Søren Bech Morsing Praktikant
28. september 2011 - 15:06 #2
vil du have alle mulige kombinationer som fx giver summen 120, eller blot et tilfældigt?

Alle kombinationer
fra 0+120 til 1+1+...1 120 gange, giver alle 120
Hvis det blot er nogle tilfældige tal så kan du skrive følgende i Excel

Celle A1 (det er dette tal du vil finde summen på): 120
Celle A2: =AFRUND(SLUMP()*A1;0)
Celle B2: =HVIS(A2<=A1;A2;0)
Celle A3: =AFRUND(SLUMP()*A2;0)
Celle B3: =HVIS(A3<=A1-B2;A3;0)
// cellerne A3 og B3, kan du så fortsætte med hvis du ønsker mere end 3 tal som mulighed
Celle B4: =A1-(B2+B3)

Nu får du 3 tilfældige tal, hver gang du åbner excel arket
Avatar billede Søren Bech Morsing Praktikant
28. september 2011 - 15:07 #3
skriv din mail adresse, så skal jeg sende dig eksemplet
Avatar billede iver_mo Nybegynder
28. september 2011 - 16:25 #4
Jeg tror, han mener, at han får en række tal op lyst som tekststrenge fx "q120", "n10", "g50". Derfor vil han gerne have en funktion (eller makro) som kan parse en streng og returnere tallet i strengen.

Sub get_num()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Ark1") 'Indæst navnet på fanen med tallene i stedet for Ark1
   
    Dim my_cell As Range
    Dim str_count As Integer
    Dim my_num As String
    Dim temp_str As String
   
    my_col = 5
    my_row = 1
   
    For Each my_cell In ws.UsedRange
        str_count = 0
        my_num = ""
        temp_str = my_cell.Value
        If temp_str <> "" Then
            str_count = Len(temp_str)
            For i = 1 To str_count
                If IsNumeric(Mid(temp_str, i, 1)) Then
                    my_num = my_num & Mid(temp_str, i, 1)
                End If
            Next
        End If
        If my_num <> "" Then
            ws.Cells(my_row, my_col) = my_num
            my_row = my_row + 1
        End If
    Next
   

End Sub



Håber det kan bruges
Avatar billede iver_mo Nybegynder
28. september 2011 - 16:33 #5
Indsæt koden i et modul

indtast "a120" i celle A1 i Ark1

gå i modulet og kør koden.

Det skulle gerne resultere i "120" i celle E1

Prøve evt. med flere tekster i kolonne A

/Iver
Avatar billede Slettet bruger
29. september 2011 - 07:40 #6
Hvis opgaven er som iver_mo skriver i #4, så kunne en formelløsning være:

=SLÅ.OP(9^9;1*HØJRE(A1;KOLONNE(1:1)))

Hans
Avatar billede jhavn Nybegynder
03. januar 2012 - 14:03 #7
sbk du er tæt på har også lige opdaget at jeg ikke kan regne det er sådan at jeg har brug for at søtte nogle faste tal ind i et regneark og derefter sætte et andet tal ind i samme regne ark og af disse faste tal skal der så ses om man kan ramme det ene indsatte tal, jeg håber det give en mening
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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