|
| Kommentar Fra : Peder99 |
Dato : 31-01-08 09:23 |
|
Hej
Du laver følgende:
i felt A4 indsættes følgende tekst "Indtast Vægt:"
i felt A5 indsættes følgende tekst "Indtast Højde:"
i felt C4 indsættes følgende tekst "Kg:"
i felt C5 indsættes følgende tekst "meter:"
i felt A7 indsættes følgende tekst "BMI:"
i felt A9 indsættes følgende tekst "Du er:"
felt B4 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
felt B5 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
felt B7 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
i felt B7 indsættes følgende formel "=B4/(B5/100)^2"
i felt B9 indsættes følgende formel "=IF(B7<18;"Undervægtig";IF(B7<25;"Normalvægtig";IF(B7<30;"Moderat overvægtig";"Meget overvægtig")))"
Dette skulle gerne have den ønskede funktion!
mvh
Peder
| |
|
Du var hurtigere Peder:
m h BMI tynd 18 slank 25 kraftig 30 fed
78 175 25,5 X
til højre for kraftig står der 30 og fed
under BMI denne formel:
=A2/(B2/100)^2
undrer for tynd
=IF($C2<F1;"X";" ")
under slank
=IF($C2<H1;"X";" ")
unde kraftig
=IF($C2<J1;"X";" ")
under fed
=IF($C2>I1;"X";" ")
mit forkortede forslag, Svend
| |
|
Ja Peder,
Vi er heldigvis enige om det væsentlige: IF erne...Svend
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 12:34 |
|
Vi er ikke helt enige med IF'erne.
Dine If statements vil placere BMI tallet i alle kategorier hvis man er undervægtig.
( eks. C2 = 16 vil lave X'er ved alle kategorier!)
Min skriver kun den relevante kategori. (eks. hvis man er undervægtig er det ikke relevant om man er slank, det er man jo klart)
Peder
| |
|
Du har ret, jeg skulle have kombineret < betingelserne med > betingelse...
Eller som du gør, overskrive tidligere opfyldte betingelser.
Sorry Svend
| |
|
mine 4 IF virker nu, kun med X ud for den eneste rigtige...
=IF($C2<E1;"X";" ")
=IF($C2<E1;" ";IF($C2<G1;"X";" "))
=IF($C2<G1;" ";IF($C2<I1;"X";" "))
=IF($C2>I1;"X";" ")
>Du skal tabe dig: XX,XX kg
kræver at du angiver ideal BMI, Svend
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 15:04 |
|
Hej svend
Det eneste der nu er galt med IF'erne er hvis C2 = I1. Så vil der ikke forekomme et kryds. Den sidste If statement du har skal være C2>=I1
Jeg kan se at jeg mangler den med hvor meget man skal tabe sig! (skal vist feje for min egen dør! )
mvh
Peder
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 15:27 |
|
Nu er min rettet til!
Da der kun skal regnes med 2 decimaler bør alt afrundes! derfor denne rettelse:
Du laver følgende:
i felt A4 indsættes følgende tekst "Indtast Vægt:"
i felt A5 indsættes følgende tekst "Indtast Højde:"
i felt C4 indsættes følgende tekst "Kg:"
i felt C5 indsættes følgende tekst "meter:"
i felt A7 indsættes følgende tekst "BMI:"
i felt A9 indsættes følgende tekst "Du er:"
i felt C11 indsættes følgende tekst "Kg"
felt B4 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
felt B5 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
felt B7 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
felt B11 markeres og der højreklikkes hvorefter feltet formateres som tal (2 decimaler)
i felt B7 indsættes følgende formel "=ROUND(B4;2)/(ROUND(B5;2)/100)^2"
i felt B9 indsættes følgende formel "=IF(ROUND(B7;2)<18;"Undervægtig";IF(ROUND(B7;2)<25;"Normalvægtig";IF(ROUND(B7;2)<30;"Moderat overvægtig";"Meget overvægtig")))
i felt A11 indsættes følgende formel: "=IF(ROUND(B7;2)>=25;"Du skal tabe dig:";IF(ROUND(B7;2)<18;"Du skal tage på:";"Du er perfekt!"))"
I felt B11 indsættes følgende formel: "=IF(ROUND(B7;2)>=25;ROUND(B4;2)-(24,99*(ROUND(B5;2)/100)^2);IF(ROUND(B7;2)<18;(18*(ROUND(B5;2)/100)^2)-B4;0))"
Dette skulle gerne have den ønskede funktion!
mvh
Peder
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 15:40 |
|
Rettelse
I felt C5 indsættes følgende tekst "cm:"
Dum fejl!!!!!!!!!!!!
| |
| Kommentar Fra : Højris |
Dato : 31-01-08 15:54 |
|
ok det er da ikke en funktions fejl
Men jeg har fulgt lidt med her på tråden og formlerne har jeg kopieret ind på deres respektive pladser, det kommer der det ud af at i B9, A11 og B11 #NAVN? Hvorfor gør det så lige det.
Men ellers er det da meget sjovt.
Højris
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 16:24 |
|
Har du husket at fjerne "" ved alle formler?
Peder
| |
| Kommentar Fra : Højris |
Dato : 31-01-08 16:41 |
|
Ja det har jeg været opmærksom på samt at der ikke mangler en ) eller ))
Jeg skrev først tekstene formaterede cellerne og kopirerede derefter formlerne ind.
Højris
| |
|
Og så tilføjelsen, Svend
m h BMI
78 175 25,5
Ideal vægt Ideal BMI
73,5 kg 24
tab dig
4,5 kg
under Ideal vægt Formlen: =C5*(B2/100)^2
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 17:02 |
|
Hej Højris.
Det er nok fordi du har en dansk version af excel!
I formlerne erstatter du ROUND med AFRUND og IF med HVIS derefter burde den være i vinkel!
Peder
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 17:05 |
|
Til Svend.
Du skal i din formel der beregner hvor meget man skal tabe/tage skelne imellem to senarier:
1) hvis man vejer for meget skal man kun tabe sig til man har BMI = 25
2) hvis man vejer for lidt skal man kun tage på til man har BMI = 18
Derfor vil der være 2 ideal vægte for folk der ikke er normalvægtige!
Mvh
Peder
| |
|
Ikke nødvendigvis,
min svoger har en målsætning et BMI på 22, selv er min kampvægt 74 kg svarende til BMI 24...
Man kan ikke sigte mod et interval, men mod sit eget individuelle, ønskede mål, Svend
(men rigtigt, vejer man mindre kommer der til at stå: tab dig -x kg...).
Derfor også min bemærkning ovenfor: >"kræver at du angiver ideal BMI, Svend"
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 17:29 |
|
Kan ikke forstå argumentet med et ønske BMI!
Så hellere en ønske vægt!
Man har da svært ved at forholde sig til om en BMI på 22 er bedre end en på 23!
Derfor valgte jeg at sige at man er OK bare man er inde for intervallet 18 < BMI < 25
Peder
| |
|
Nok fordi en ideal BMI er individuel, afhænger af køn, kropsbygning alder etc. Svend
| |
| Kommentar Fra : berpox |
Dato : 31-01-08 21:54 |
|
Nu er det jo sådan at jeg æææælsker VBA kode... så derfor får du lige nedenstående løsning.
Du gør det, at du i Excel taster indholdet i cellerne:
1) I celle A1 skriver du: Vægt [kg]
2) I celle A2 skriver du: Højde [cm]
3) I celle A5 skriver du: BMI
4) Du åbner VBA editoren med ALT+F11
5) Du dobbeltklikker på Ark1 ude til venstre i "oversigten"
6) Du indsætter den nedenstående kode
7) Du lukker VBA editoren
8) Du indtaster vægt i kg. og højde i centimeter.....
- resultatet kan du selv aflæse - og så ikke et ord om, at BMI bør tage alder, køn og kropsbygning i betragtning også. Ganske som Svend var inde på
Den resulterende idealvægt beregnes for en BMI lige midt i intervallet mellem 18 og 25. Nemlig 21,5.
Kode Dim f As Double 'vægtændringsfaktor
Dim m As Integer
Dim h As Integer
Dim BMI As Double
Dim besked1, besked2, besked3 As String
Sub BeregnBMI()
m = Round(Range("B1").Value)
h = Round(Range("B2").Value)
If h <= 0 Then
Range("B5").Value = ""
Exit Sub
End If
BMI = Round(m / ((h / 100) ^ 2), 1)
Range("B5").Value = BMI
f = 21.5 / BMI
m = m * f
besked2 = "Du bør ændre din idealvægt til "
besked3 = m & " kg."
Select Case BMI
Case Is < 8
besked1 = "Urealistisk højde eller vægt!"
besked2 = ""
besked3 = ""
Range("B5").Value = ""
Case Is <= 18
besked1 = "Du er undervægtig."
Case Is <= 25
besked1 = "Du har en normal vægt."
besked2 = ""
besked3 = ""
Case Is <= 30
besked1 = "Du er moderat overvægtig."
Case Is <= 150
besked1 = "Du er meget overvægtig."
Case Else
besked1 = "Urealistisk højde eller vægt!"
besked2 = ""
besked3 = ""
Range("B5").Value = ""
End Select
Range("A6").Value = besked1
Range("A7").Value = besked2 & besked3
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B1") = 0 Or Range("B2") = 0 Then
Range("B5").Value = ""
Exit Sub
End If
If Target = Range("B2") Or Target = Range("B1") Then
BeregnBMI
End If
End Sub |
| |
| Kommentar Fra : Peder99 |
Dato : 31-01-08 22:55 |
|
Hvis man skal snakke om en ideel BMI bør man vel drage til undersøgelser der giver en statistisk ideel BMI!
se evt. http://www.nomedica.dk/bmitest.htm
Her er den ideelle BMI 21,5 men:
22 - 23,4 Kvinder
23,5 - 24,9 Mænd
berbox.
Når du er så glad for VBA, så vil du vel gerne lave en form der gør det brugervenligt at indtaste Vægt, Højde og køn. Bruge undersøgelsens intervaller som ideal BMI og der fra beregne hvor meget man skal tabe sig? -Mon ikke jjhj vil blive glad for sådan en!
Mvh
Peder
| |
| Kommentar Fra : berpox |
Dato : 01-02-08 00:07 |
|
Jo.... det kan jeg da sagtens. Men jeg vil i første omgang lade tallene stå i Excel cellerne....
Vi skal også tænke på, at hvis vi siger der er to ideal-intervaller, så må grænsen mellem "overvægtig" og "meget overvægtig" jo også flytte sig.....
vent lidt....
| |
| Kommentar Fra : berpox |
Dato : 01-02-08 01:07 |
|
Kode Dim f1, f2 As Double 'vægtændringsfaktorer
Dim m, m1, m2 As Double 'masse (vægt)
Dim h As Double 'højde
Dim s As String 'køn
Dim BMI As Double 'BMI
Dim besked1, besked2, besked3, besked4 As String
Sub BeregnBMI()
m = Round(Range("B1").Value, 1)
h = Round(Range("B2").Value, 0)
s = LCase(Range("B3").Value)
If h <= 0 Then
Range("B5").Value = ""
Exit Sub
End If
BMI = Round(m / ((h / 100) ^ 2), 1)
Range("B5").Value = BMI
besked2 = "Du bør ændre din idealvægt til omkring "
Select Case s
Case "k"
BMIk
Case "m"
BMIm
Case Else
Range("B3").Value = LCase(InputBox("Indtast køn m/k", "", ""))
'Exit Sub
End Select
Range("A6").Value = besked1
Range("A7").Value = besked2 & besked3
Range("A8").Value = besked4
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B1") = 0 Or Range("B2") = 0 Then
Range("B5").Value = ""
Exit Sub
End If
If Range("B1") = "" Or Range("B2") = "" Then
Range("B5").Value = ""
Exit Sub
End If
If Target = Range("B1") Or Target = Range("B2") Or Target = Range("B3") Then
BeregnBMI
End If
End Sub
Function BMIm() 'mænd
f1 = 23.5 / BMI
f2 = 24.9 / BMI
m1 = Round(m * f1, 1)
m2 = Round(m * f2, 1)
Select Case BMI
Case Is < 8
besked1 = "Urealistisk højde eller vægt!"
besked2 = ""
besked3 = ""
Range("B5").Value = ""
Case Is < 23.5
besked1 = "Du er undervægtig."
besked3 = m1 & "-" & m2 & " kg."
besked4 = "Du bør tage " & m1 - m & "-" & m2 - m & "kg. på."
Case Is <= 24.9
besked1 = "Du har en normal vægt."
besked2 = ""
besked3 = ""
Case Is <= 30
besked1 = "Du er moderat overvægtig."
besked3 = m1 & "-" & m2 & " kg."
besked4 = "Du bør tabe dig " & m - m2 & "-" & m - m1 & "kg."
Case Is <= 150
besked1 = "Du er meget overvægtig."
besked3 = m1 & "-" & m2 & " kg."
besked4 = "Du bør tabe dig " & m - m2 & "-" & m - m1 & "kg."
Case Else
besked1 = "Urealistisk højde eller vægt!"
besked2 = ""
besked3 = ""
Range("B5").Value = ""
End Select
End Function
Function BMIk() 'kvinder
f1 = 22 / BMI
f2 = 23.4 / BMI
m1 = Round(m * f1, 1)
m2 = Round(m * f2, 1)
besked4 = ""
Select Case BMI
Case Is < 8
besked1 = "Urealistisk højde eller vægt!"
besked2 = ""
besked3 = ""
Range("B5").Value = ""
Case Is < 22
besked1 = "Du er undervægtig."
besked3 = m1 & "-" & m2 & " kg."
besked4 = "Du bør tage " & m1 - m & "-" & m2 - m & "kg. på."
Case Is <= 23.4
besked1 = "Du har en normal vægt."
besked2 = ""
besked3 = ""
Case Is <= 28.5
besked1 = "Du er moderat overvægtig."
besked3 = m1 & "-" & m2 & " kg."
besked4 = "Du bør tabe dig " & m - m2 & "-" & m - m1 & "kg."
Case Is <= 150
besked1 = "Du er meget overvægtig."
besked3 = m1 & "-" & m2 & " kg."
besked4 = "Du bør tabe dig " & m - m2 & "-" & m - m1 & "kg."
Case Else
besked1 = "Urealistisk højde eller vægt!"
besked2 = ""
besked3 = ""
Range("B5").Value = ""
End Select
End Function |
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|