Avatar billede hkarlsen Nybegynder
15. august 2002 - 10:17 Der er 29 kommentarer

Logisk funktion?

Er der mulighed for en lang if sætning og hvis send gerne et eksempel.
Eks.:
hvis(A1<10;D1=b2;"")
hvis(A1>9<20;D2=b2;"")
hvis(A1>19<30;D3=b2;"")
hvis(A1>29<40;D4=b2;"") osv.
jeg ønsker et check på tal mellem 00-99
Tusind tak!
15. august 2002 - 10:21 #1
Der kan kun være 8 HVIS'er i en sætning, men vi kan lave din egen funktion via VBA.
Avatar billede b_hansen Novice
15. august 2002 - 10:22 #2
det er ikke muligt, for du vil jo placere resultatet i forskellige celler... Så skal du i hvert fald kigge på noget makro-programmering
Avatar billede bak Forsker
15. august 2002 - 10:31 #3
Hvad er det lige du ønsker at lave, hkarlsen?
Prøv at forklare det lidt nærmere..
Avatar billede sjap Praktikant
15. august 2002 - 11:49 #4
Der er en lille syntax-fejl i dit eget forslag, men nedenstående skulle virke:

=HVIS(A1<10;D1=B2;"") & HVIS(OG(A1>9;A1<20);D2=B2;"") & HVIS(OG(A1>19;A1<30);D3=B2;"") & HVIS(OG(A1>29;A1<40);D4=B2;"")

og så tilføje de manglende hvis sætninger.
Avatar billede sjap Praktikant
15. august 2002 - 11:54 #5
Dvs. de manglende hvis sætninger op til 99.
15. august 2002 - 12:06 #6
superjap>> det er vist noget japværk.... :-) 
0-99 opdelt i ti intervaller giver flere HVIS-sætninger end Excel kan håndtere - prøv selv.
Avatar billede b_hansen Novice
15. august 2002 - 12:11 #7
jeg er enig med flemmingdahl... og formlen returnerer sådan set heller ikke nogen værdi i de ønskede celler
Avatar billede janvogt Praktikant
15. august 2002 - 12:11 #8
Sætningerne giver heller ikke nogen mening.
Excel kan ikke finde ud af syntaxen "D1=B2.

Umiddelbart tror jeg man i stedet kunne anvende en opslagsformel.
Skal formlen stå i celle B2?
15. august 2002 - 12:32 #9
I et almindeligt kodemodul kopierer du følgende linier ind:

Public Function MyInterval(ByRef EvaluateValue As Double, ByRef MyIndex As Integer) As Double
    Dim dRetVal As Double
   
    Select Case MyIndex
        Case 1 To 9
            dRetVal = MyEvaluate(EvaluateValue, 9)
        Case 10 To 19
            dRetVal = MyEvaluate(EvaluateValue, 19)
        Case 20 To 29
            dRetVal = MyEvaluate(EvaluateValue, 29)
        Case 30 To 39
            dRetVal = MyEvaluate(EvaluateValue, 39)
        Case 40 To 49
            dRetVal = MyEvaluate(EvaluateValue, 49)
        Case 50 To 59
            dRetVal = MyEvaluate(EvaluateValue, 59)
        Case 60 To 69
            dRetVal = MyEvaluate(EvaluateValue, 69)
        Case 70 To 79
            dRetVal = MyEvaluate(EvaluateValue, 79)
        Case 80 To 89
            dRetVal = MyEvaluate(EvaluateValue, 89)
        Case 90 To 99
            dRetVal = MyEvaluate(EvaluateValue, 99)
        Case Else
            dRetVal = 0
    End Select
   
    MyInterval = dRetVal
End Function

Private Function MyEvaluate(ByRef dValue As Double, ByRef dInterval As Double) As Double
    Dim dRetVal As Double
   
    If dValue <= dInterval And dValue > dInterval - 10 Then
        dRetVal = dValue
    Else
        dRetVal = 0
    End If

    MyEvaluate = dRetVal
End Function


I cellerne har du formlerne:
D1  =MyInterval(B2;9)          for 0-9
D2  =MyInterval(B2;19)        for 10-19
D3  =MyInterval(B2;29)        for 20-29
osv.

Det kan måske laves smartere, men det er en hurtig løsning.
Avatar billede sjap Praktikant
15. august 2002 - 16:16 #10
flemmingdahl (15/08-2002 12:06:59) >> Det er jo ikke rigtigt! Det er korrekt at Excel kun kan håndtere 8 nestede niveauer i en hvis, men som du kan se, så er de jo netop IKKE nestede men fungerer som 10 enkelt sætninger. Tror du ikke på det så prøv nedenstående, som er den fulde syntax:

=HVIS(A1<10;D1=B2;"") & HVIS(OG(A1>9;A1<20);D2=B2;"") & HVIS(OG(A1>19;A1<30);D3=B2;"") & HVIS(OG(A1>29;A1<40);D4=B2;"") & HVIS(OG(A1>39;A1<50);D5=B2;"") & HVIS(OG(A1>49;A1<60);D6=B2;"") & HVIS(OG(A1>59;A1<70);D7=B2;"") & HVIS(OG(A1>69;A1<80);D8=B2;"") & HVIS(OG(A1>79;A1<90);D9=B2;"") & HVIS(A1>89;D10=B2;"")

Jeg vil absolut ikke påstå, at det er den mest elegante løsning - men den er hurtig og den virker.
Avatar billede b_hansen Novice
15. august 2002 - 16:19 #11
Superjap> det ændrer bare ikke ved det faktum, at din formel stadig ikke virker! For du får jo ikke lagt en værdi i de respektive celler.
Avatar billede sjap Praktikant
15. august 2002 - 16:19 #12
Jo, formlen returner værdien sand eller falsk. Når du skriver D2=B2 er resultatet SAND hvis de to er ens, og FALSK hvis de ikke er. Om det så var hkarlsens hensigt ved jeg ikke.
Avatar billede sjap Praktikant
15. august 2002 - 16:27 #13
b hansen >> Jeg tror blot vi har opfattet problemet forskelligt og nu tror jeg godt, jeg ved hvad du mener. Det er korrekt, at hvis opgaven består i at placere en værdi i de angivne celler, så dur mit forslag IKKE. :o(
Avatar billede b_hansen Novice
15. august 2002 - 16:29 #14
*SS* Supoerjap. Det tog osse mig en del tankevirksomhed at gennemskue opgaven, men for mig at se, er det den eneste logiske konklusion jeg kan komme til, når jeg ser på opgavebeskrivelsen.
Avatar billede sjap Praktikant
15. august 2002 - 16:34 #15
Hmm kan man så ikke blot placere hvis sætningerne i de respektive celler? F.eks.:

D1:  HVIS(A1<10;B2;"")
D2:  HVIS(OG(A1>9;A1<20);B2;"")
D3:  HVIS(OG(A1>19;A1<30);B2;"")
osv.
Avatar billede jkrons Professor
22. august 2002 - 22:53 #16
En meget spændende diskussion at følge, men på en eller anden måde ville den være endnu mere spændende hvis spørgeren vendte tilbage med en forklaring på, hvad han faktisk ønskede :-)
Avatar billede b_hansen Novice
23. august 2002 - 07:54 #17
*GG* Fuldstændig enig jkrons
Avatar billede sjap Praktikant
01. oktober 2002 - 11:10 #18
hkarlsen

Har du givet helt op?
Avatar billede b_hansen Novice
11. november 2002 - 11:38 #19
hallooooo......
29. november 2002 - 13:19 #20
hehe - rigtigt b_hansen - Halloooo
Avatar billede sjap Praktikant
28. april 2003 - 14:22 #21
hkarlsen
Synes du ikke du skulle få gjort noget ved det her spørgsmål - få det kommenteret eller få det lukket?
Avatar billede jkrons Professor
28. april 2003 - 21:25 #22
Hvis I ser på hkarlsens pointregnskab, kan I se at han blev oprettet de, 15. august 2003. Samme dag stillede han to spørgsmål, som han ikke har accepteret, og siden er der ikke sket noget - så mon ikke han er en af dem, der aldrig vender tilbage!!
Avatar billede sjap Praktikant
28. april 2003 - 21:37 #23
jkrons
Det har du nok ret i. Jeg fik bare lige "et flip" i eftermiddags og tog fat i de spørgsmål jeg deltager i fra en ende af. Det kan ind imellem være lidt frustrerende at man bruger tid på at hjælpe, og så får man ikke nogen tilbagemelding. Nå men det er vel en af de ting, man er nødt til at leve med her på stedet. Trods alt er hovedparten af deltagerne jo fornuftigt indstillet :-)
Avatar billede jkrons Professor
28. april 2003 - 21:38 #24
Nemlig og jeg kender godt fornemmelsen - jeg har selv et par "udeståender" :-)
Avatar billede sjap Praktikant
28. april 2003 - 21:40 #25
Iøvrigt står der i hkarlsens andet spørgsmål (http://www.eksperten.dk/spm/246423) at han er "termineret" så kunne jeg jo have sparet mit krudt - hvis jeg altså have checket det (UPS).
Avatar billede jkrons Professor
28. april 2003 - 21:42 #26
Det gjorde jeg så heller ikke :-(  Måske skulle man indføre en funktion, der såfremt et spørgsmål ikke blewv lukket enden for fx tre måneder automatisk fordelte point ligeligt mellem de, der har afgivet svar.
Avatar billede sjap Praktikant
28. april 2003 - 21:47 #27
Tja, det kunne der være noget om. I det her tilfælde kan spørgsmålet jo aldrig lukkes - for brugeren findes ikke. Det kan jo ske at folk giver op, men min erfaring viser nu at folk i højere grad bare "forsvinder" eller "glemmer", når de har fået løst problemet.

Så jeg mener dit forslag sådan set er rimeligt nok - send det til nogen, der kan gøre noget ved det :-)
Avatar billede jkrons Professor
28. april 2003 - 23:53 #28
Jeg tror problemet er, at nogen opretter en profil  - stiller et spørgsmål, og kommer så aldrig tilbage igen, hvis de får et svar, men opretter måske en ny profil til det næste spørgsmål.

Hvem skulle et forslag i givet fald stiles til?
Avatar billede b_hansen Novice
29. april 2003 - 07:44 #29
Forslaget skulle vel stiles til admin. Han må vide, hvor det så skal hen. Jeg synes det lyder som et rigtig godt forslag jkrons.
Måske skulle man også tilføje en udvælgelsesprocedure, når en bruger oprettes. Det må være muligt at kontrollere, om der allerede findes en eksisterende bruger på en ip-adresse (tror jeg nok, det hedder). Hvis dette er tilfældet, burde den nye bruger afvises.

Iøvrigt er Hkarlsen blevet gjort "ikke-aktiv" på min foranledning. Jeg blev på et tidspunkt så tilpas sur over den manglende respons, at jeg indberettede ham. Heldigvis var der en admin/coadmin, der tog affære.
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