Avatar billede lunddata Nybegynder
09. november 2006 - 07:58 Der er 24 kommentarer og
2 løsninger

Separere heltal

Tillægsspørgsmål til
http://www.eksperten.dk/spm/743587
Separere heltal
Avatar billede x-lars Novice
09. november 2006 - 09:27 #1
=HVIS(C1-HELTAL(C1)=0;hvad du nu vil foretage dig med heltallene;formlen fra det andet spm.)
Avatar billede lunddata Nybegynder
09. november 2006 - 10:24 #2
Jeg er ikke helt med
Avatar billede x-lars Novice
09. november 2006 - 10:53 #3
Heltal(C1) fjerner decimaler. Hvis tallet med decimaler minus heltallet bliver 0, er det fordi, at det allerede er et heltal. Så hvis-sætningen tester, om det er et heltal, i hvilken situation, du kunne vælge, at den istedet for dit tal skulle skrive ingenting, altså "", eller et 0. Hvis betingelsen ikke er opfyld, altså hvis det ikke er et heltal, skal den bare køre videre med den formel, som du fik i det andet spm.
Avatar billede lunddata Nybegynder
09. november 2006 - 11:03 #4
.. og hvordan skal ovenstående f.eks stå i forbindelse med:
1    =HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-1;1));"";MIDT($C$1;FIND(",";$C$1;1)-1;1))
10    =HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-2;1));"";MIDT($C$1;FIND(",";$C$1;1)-2;1))
Avatar billede x-lars Novice
09. november 2006 - 13:12 #5
Hvis vi bruger 0-løsningen:

=HVIS(C1-HELTAL(C1)=0;0;HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-1;1));"";MIDT($C$1;FIND(",";$C$1;1)-1;1)))

=HVIS(C1-HELTAL(C1)=0;0;HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-2;1));"";MIDT($C$1;FIND(",";$C$1;1)-2;1))
Avatar billede x-lars Novice
09. november 2006 - 13:14 #6
Hov, mangler lige en slutparantes i den sidste linie!
Avatar billede lunddata Nybegynder
09. november 2006 - 15:03 #7
Hvis jeg bruger ovenstående på C1 med f.eks værdien 23 får jeg resultatet 0
Jeg ville jo gerne have enere ud for sig i en célle, tiere for sig i en anden célle osv.
Betyder at jeg med eksemplet 23 i celle C1 gerne vil have enerne 3 i celle b1, tierne 2 i celle b2
Avatar billede x-lars Novice
09. november 2006 - 17:01 #8
Ok, havde ikke indset, at det var dét, du efterspurgte. Det kan jeg ikke klare som en generel formel, beklager. Lad os håbe, at der kommer én forbi, der lige sidder med en forkromet løsning!
Avatar billede excelent Ekspert
09. november 2006 - 18:33 #9
indsæt i B1 og kopier ned

=MIDT($A$1;RÆKKE();1)

ved ikke om det er nok
Avatar billede lunddata Nybegynder
09. november 2006 - 19:24 #10
Excelent: Synes heller ikke lige at den virker.
Lad os tage tallet 234,56 i celle A1

Hvis jeg kopierer nedefter startende i B1 får jeg:
i B1 tallet 2
i B2 tallet 3
i B3 tallet 4
osv
Hvis jeg ændrer tallet i A1 til 5234,56 får jeg:
i B1 tallet 5
i B2 tallet 2
i B3 tallet 3
osv.
Ideen var at jeg til enhver tid med et vilkårligt tal nøjagtigt ville kunne få f.eks
i B1 titusinder
i B2 tusinder
i B3 hundreder
i B4 tiere
i B5 enere
i B6 tiendedele
osv....
Avatar billede excelent Ekspert
09. november 2006 - 19:39 #11
B1=HVIS(HELTAL($A$1/10000)>0;HØJRE(HELTAL($A$1/10000);1);"")
B2=HVIS(HELTAL($A$1/1000)>0;HØJRE(HELTAL($A$1/1000);1);"")
B3=HVIS(HELTAL($A$1/100)>0;HØJRE(HELTAL($A$1/100);1);"")
B4=HVIS(HELTAL($A$1/10)>0;HØJRE(HELTAL($A$1/10);1);"")
B5=HVIS(HELTAL($A$1/1)>0;HØJRE(HELTAL($A$1/1);1);"")

kikker lige på decimalerne, er vist lidt kompliceret
Avatar billede excelent Ekspert
09. november 2006 - 19:59 #12
B6=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+1;1));"";MIDT($A$1;FIND(",";$A$1)+1;1))
B7=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+2;1));"";MIDT($A$1;FIND(",";$A$1)+2;1))
B8=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+3;1));"";MIDT($A$1;FIND(",";$A$1)+3;1))
B9=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+4;1));"";MIDT($A$1;FIND(",";$A$1)+4;1))

prøv om det dur
Avatar billede excelent Ekspert
09. november 2006 - 20:04 #13
hvis de skal konverteres til tal (er tekst nu)
så tilføj 2 bindestreger -- lige før HØJRE i B1:B5
og -- lige før sidste MIDT i B6:B9
Avatar billede excelent Ekspert
09. november 2006 - 20:23 #14
ja der er en del at tage højde for så måtte revidere decimaldelen:

B6=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+1;1));"";HVIS(ER.FEJL(--MIDT($A$1;FIND(",";$A$1)+1;1));"";--MIDT($A$1;FIND(",";$A$1)+1;1)))
B7=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+2;1));"";HVIS(ER.FEJL(--MIDT($A$1;FIND(",";$A$1)+2;1));"";--MIDT($A$1;FIND(",";$A$1)+2;1)))
B8=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+3;1));"";HVIS(ER.FEJL(--MIDT($A$1;FIND(",";$A$1)+3;1));"";--MIDT($A$1;FIND(",";$A$1)+3;1)))
B9=HVIS(ER.FEJL(MIDT($A$1;FIND(",";$A$1)+4;1));"";HVIS(ER.FEJL(--MIDT($A$1;FIND(",";$A$1)+4;1));"";--MIDT($A$1;FIND(",";$A$1)+4;1)))
Avatar billede bak Forsker
09. november 2006 - 20:30 #15
Det kan også føres med to array-formler

Formelen i B1 skal være
=MIDT( TEKST(A1;"00000"); RÆKKE(1:5); 1)
Marker så B1:B5, tryk F2 og så CTRL-SHIFT-ENTER

Formlen i B6 skal være
=MIDT(TEKST(A1-HELTAL(A1);",0000");RÆKKE(2:5);1)

marker så B6:B9, tryk F2 og så CTRL-SHIFT-ENTER

Begge formler får krøllede paranteser omkring automatisk {}
Avatar billede bak Forsker
09. november 2006 - 20:38 #16
første formel kan med fordel ændres til
=MIDT(TEKST(HELTAL(A1);"00000");RÆKKE(1:5);1)
Avatar billede bak Forsker
09. november 2006 - 20:45 #17
Avatar billede gibber Nybegynder
09. november 2006 - 21:21 #18
og en lidt klundtet løsning: (Tal står i C1)

Tegn     Formel
0,0001     =HVIS(AFRUND($C$1;0)=$C$1;0;HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)+4;1));"";MIDT($C$1;FIND(",";$C$1;1)+4;1)))
0,001     =HVIS(AFRUND($C$1;0)=$C$1;0;HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)+3;1));"";MIDT($C$1;FIND(",";$C$1;1)+3;1)))
0,01     =HVIS(AFRUND($C$1;0)=$C$1;0;HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)+2;1));"";MIDT($C$1;FIND(",";$C$1;1)+2;1)))
0,1     =HVIS(AFRUND($C$1;0)=$C$1;0;HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)+1;1));"";MIDT($C$1;FIND(",";$C$1;1)+1;1)))
1     =HVIS(AFRUND($C$1;0)=$C$1;HVIS(ER.FEJL(MIDT($C$1;LÆNGDE($C$1);1));"";MIDT($C$1;LÆNGDE($C$1);1));HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-1;1));"";MIDT($C$1;FIND(",";$C$1;1)-1;1)))
10     =HVIS(AFRUND($C$1;0)=$C$1;HVIS(ER.FEJL(MIDT($C$1;LÆNGDE($C$1)-1;1));"";MIDT($C$1;LÆNGDE($C$1)-1;1));HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-2;1));"";MIDT($C$1;FIND(",";$C$1;1)-2;1)))
100     =HVIS(AFRUND($C$1;0)=$C$1;HVIS(ER.FEJL(MIDT($C$1;LÆNGDE($C$1)-2;1));"";MIDT($C$1;LÆNGDE($C$1)-2;1));HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-3;1));"";MIDT($C$1;FIND(",";$C$1;1)-3;1)))
1000     =HVIS(AFRUND($C$1;0)=$C$1;HVIS(ER.FEJL(MIDT($C$1;LÆNGDE($C$1)-3;1));"";MIDT($C$1;LÆNGDE($C$1)-3;1));HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-4;1));"";MIDT($C$1;FIND(",";$C$1;1)-4;1)))
10000     =HVIS(AFRUND($C$1;0)=$C$1;HVIS(ER.FEJL(MIDT($C$1;LÆNGDE($C$1)-4;1));"";MIDT($C$1;LÆNGDE($C$1)-4;1));HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-5;1));"";MIDT($C$1;FIND(",";$C$1;1)-5;1)))
100000     =HVIS(AFRUND($C$1;0)=$C$1;HVIS(ER.FEJL(MIDT($C$1;LÆNGDE($C$1)-5;1));"";MIDT($C$1;LÆNGDE($C$1)-5;1));HVIS(ER.FEJL(MIDT($C$1;FIND(",";$C$1;1)-5;1));"";MIDT($C$1;FIND(",";$C$1;1)-5;1)))
Avatar billede gibber Nybegynder
09. november 2006 - 21:22 #19
...Smart løsning bak - den havde jeg ikke tænkt på.
Avatar billede excelent Ekspert
09. november 2006 - 21:24 #20
ja bak kan godt være lidt fedtet med program linier :-)
Avatar billede bak Forsker
09. november 2006 - 21:26 #21
det må skyldes sønderjysk nærighed :-)
Avatar billede excelent Ekspert
09. november 2006 - 21:28 #22
he he
Avatar billede lunddata Nybegynder
10. november 2006 - 07:58 #23
Hvad gør jeg nu?
Jeg vil nødig blive stemplet som lidende af sønderjysk nærighed, selvom jeg er sønderjyde.
Alle har jo bidraget rigtig flot.
Egentlig burde der være sat flere point på højkant. Skal jeg bidrage med flere gør jeg det gerne.
Jeg synes at løsningen fra bak er kort og godt.
Avatar billede excelent Ekspert
10. november 2006 - 11:26 #24
den ville jeg også vælge, så fint med mig :-)
Avatar billede bak Forsker
10. november 2006 - 15:24 #25
del dem bare i tre....
Avatar billede excelent Ekspert
10. november 2006 - 15:26 #26
ok
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