21. juni 2010 - 12:17Der er
18 kommentarer og 1 løsning
Logisk test af tekst
Jeg har brug for en formel i Excel, som tester om teksten i en celle er = ABC, XYZ, CBA eller ZYX (tekst) og samtidig, om værdien af en anden celle er > 0 (numerisk). Hvis teksten er = hhv. ABC, XYZ, CBA eller ZYX og værdien er > 0 skal formlen benytte værdien i én af de fire celler, som specificerer (i min konkrete tilfælde) antal timer.
Jeg har prøvet med AND-funktionen integreret i en IF-funktion, men får output "#VALUE!":
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
Jeg mangler én vigtig funktion i det aktuelle løsningsforslag:
Formlen skal kontrollere, om der står ABC, XYZ, CBA eller ZYX i celle F12 (for at fortsætte med overnstående eksempel). Hvis der står ABC i celle F12 skal hhv. Formula1 og Formula2 divideres med B3, hvis der står XYZ i celle F12 skal hhv. Formula1 og Formula2 divideres med B4, hvis der står CBA i celle F12 skal hhv. Formula1 og Formula2 divideres med B5 og hvis der står ZYX i celle F12 skal hhv. Formula1 og Formula2 divideres med B5.
Bemærk, at jeg med vilje ikke har låst celle F12, da formlen skal gælde i alle rækker indenfor kolonne F.
Jeg går ud fra det er det der er meningen med dkhanknu's løsning, hvor du skal skrive
=IF(($F$12=myText)*($K$12>0);Formula1/B3;Formula2/B3) i C3 =IF(($F$12=myText)*($K$12>0);Formula1/B3;Formula2/B4) i C4 =IF(($F$12=myText)*($K$12>0);Formula1/B3;Formula2/B5) i C5 =IF(($F$12=myText)*($K$12>0);Formula1/B3;Formula2/B6) i C6
Problemet er, at der skal være et eksakt match mellem tekst og celle, hvor værdien skal hentes:
Hvis teksten i F12 er ABC så skal hhv. Formula1 og Formula2 divideres med celle B3. Hvis teksten i celle F37 (bare som eksempel) også er ABC, så skal hhv. Formula1 og Formula2 også divideres med celle B3, men hvis f.eks. teksten i celle F45 er ZYX er skal hhv. Formula1 og Formula2 divideres med celle B6.
Som jeg forstår resultatet i mit regneark, så tjekker formlen, som den er nu, bare, om der står ABC, XYZ, CBA eller ZYX i F12. Hvis bare én af disse tekster er opfyldt i F12, så divideres med celle B3. Hvis jeg låser cellen i formlen med $ divideres naturligvis kun med denne celle og hvis jeg ikke låser cellen, så divideres med cellerne i kolonne B fortløbende. Det dur' desværre ikke :-(
Synes godt om
Slettet bruger
21. juni 2010 - 16:18#11
Du skriver:
Som jeg forstår resultatet i mit regneark, så tjekker formlen, som den er nu, bare, om der står ABC, XYZ, CBA eller ZYX i F12. Hvis bare én af disse tekster er opfyldt i F12 -----
Det har du ret i.
Er det her bedre? =IF(($K$12>0);Formula1/OFFSET($B$3;MATCH($F$12;myText;0)-1;;);Formula2/OFFSET($B$3;MATCH($F$12;myText;0)-1;;))
Hverken #11 eller #12 kan bruges. Forsøger igen senere på aftenen.
Synes godt om
Slettet bruger
21. juni 2010 - 20:31#14
Send mig en kopi af filen, hvis du ønsker, at jeg skal arbejde videre med sagen. Giv eksempler på de resultater du forventer. Send eventuel fil til (i udtale): hanspunktumknudsensnabelamailpunktumtelepunktumdk
Synes godt om
Slettet bruger
22. juni 2010 - 06:33#15
Vi prøver igen:
=IF((F12="ABC")*($K$12>0);Formula1/$B$3;IF((F12="XYZ")*($K$12>0);Formula1/$B$4;IF((F12="CBA")*($K$12>0);Formula1/$B$5;IF((F12="ZYX")*($K$12>0);Formula1/$B$6;"Not equal to any of ABC, XYZ, CBA or ZYX"))))
(Formula1 som tidligere defineret)
Eller, for at blive i dit eget oprindelige spor:
=IF(AND(F12="ABC";$K$12>0);(($G$12-$H$12)/$K$12/$B$3);IF(AND(F12="XYZ";$K$12>0);(($G$12-$H$12)/$K$12/$B$4);IF(AND(F12="CBA";$K$12>0);(($G$12-$H$12)/$K$12/$B$5);IF(AND(F12="ZYX";$K$12>0);(($G$12-$H$12)/$K$12/$B$6);"Not equal to any of ABC, XYZ, CBA or ZYX"))))
Hvis ovenstående ikke løser dit problem henviser jeg til min bemærkning i #14.
Til gengæld virker #15 ikke, den returnerer altid Not equal to any of ABC, XYZ, CBA or ZYX.
Kan du forklare #12 for mig, så jeg ikke vender tilbage på eksperten.dk om ½ år med nye spørgsmål om denne formel? :-)
Synes godt om
Slettet bruger
22. juni 2010 - 13:31#17
#15 returnerer:
=Formula1/B3 hvis betingelse1 er TRUE =Formula1/B4 hvis betingelse2 er TRUE =Formula1/B5 hvis betingelse3 er TRUE =Formula1/B6 hvis betingelse4 er TRUE "Not equal to any of ABC, XYZ, CBA or ZYX" hvis hverken betingelse1, 2, 3 eller 4 er opfyldt.
hvor betingelse1 =(F12="ABC")*($K$12>0) hvor betingelse2 =(F12="XYZ")*($K$12>0) osv.
Jeg har altså forudsat, at F12, F13 osv. kan indeholde andet end enten ABC, XYZ, CBA eller ZYX (for eksempel PQR). Måske er det en irrelevant forudsætning - det ved kun du.
Det er, jf. ovenstående, altså ikke rigtigt, når du skriver: #15 returnerer altid "Not equal to any of ABC, XYZ, CBA or ZYX"
MATCH(F12;myText;0) leder efter indholdet af F12 (eksakt match) i matriksen myText og returnerer positionen. Altså, hvis der i F12 står ABC vil denne del af formlen returnere 1 fordi ABC i myText står på den første postion. Hvis der i F12 står XYZ vil denne del af formlen returnere 2 fordi XYZ i myText står på anden position osv. Med ABC i F12 er OFFSET formlen herefter reduceret til: =OFFSET($B$3;1-1;;). Her står: Tag udgangspunkt i celle B3, bevæg dig nedad så mange rækker som specificeret ved argument nummer 2, som er 1-1 =0. 0 rækker nedad fra B3. Det vil sige B3. Håber det er forklaring nok, ellers nærlæs Excels hjælp til MATCH og OFFSET og brug F9 til at analysere enkeltbestanddele af en formel. Den øvrige del af formlen skulle være indlysende.
Bemærk, at hvis F12, F13, ... indeholder andet end en af ABC, XYZ, CBA eller ZYX, så vil formlen #12 returnere en fejlværdi.
Sådan - nu kom alt på plads. Dette var en STOR hjælp, som jeg er meget taknemmelig for. 200 velfortjente point, ikke mindst for din tålmodighed med mig :-)
Synes godt om
Slettet bruger
22. juni 2010 - 16:12#19
OK Hans
Synes godt om
Ny brugerNybegynder
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.