Avatar billede archangel Nybegynder
21. juni 2010 - 12:17 Der 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!":

=IF(AND(F12="ABC";K12>0);((G12-H12)/K12/$B$3);(G12-H12)/L12/$B$3);IF(AND(F12="XYZ";K12>0);((G12-H12)/K12/$B$4);(G12-H12)/L12/$B$4);IF(AND(F12="CBA";K12>0);((G12-H12)/K12/$B$5);(G12-H12)/L12/$B$5);IF(AND(F12="ZYX";K12>0);((G12-H12)/K12/$B$6);(G12-H12)/L12/$B$6)

Kan/skal dette løses på andre måder i Excel, bruger jeg funktionerne forkert eller har jeg blot overset et tegn i min formel?
Avatar billede ggxdg Nybegynder
21. juni 2010 - 12:55 #1
En celle kan kun have 1 værdi, derfor kan du ikke lave mere end 1 IF i en celle, medmindre du "nester" dem.

Smid f.eks. dine IF's ind i FALSE delen af den forrige IF.
Avatar billede supertekst Ekspert
21. juni 2010 - 12:57 #2
via vba - hvis dette er ønskeligt
Avatar billede Slettet bruger
21. juni 2010 - 13:36 #3
Her er én måde at gøre det på.
Indtast følgende formel i C3 og kopier til og med C6:

=IF(OR($F$12=myText)*($K$12>0);Formula1/B3;Formula2/B3)

hvor myText, Formula1 og Formula2 er navngivne formler som følger:

myText: ={"ABC";"XYZ";"CBA";"ZYX"}
Formula1: =($G$12-$H$12)/$K$12
Formula2: =($G$12-$H$12)/$L$12
Avatar billede Slettet bruger
21. juni 2010 - 13:53 #4
Ovennstående formel virker, men OR-funktionen er overflødig. Brug i stedet for:

=IF(($F$12=myText)*($K$12>0);Formula1/B3;Formula2/B3)
Avatar billede archangel Nybegynder
21. juni 2010 - 14:13 #5
Fungerer præcis som jeg ønsker - 1000 tak for alle svar, men naturligvis specielt til dig, dkhanknu, som modtager 200 point for den fine løsning.
Avatar billede archangel Nybegynder
21. juni 2010 - 15:04 #6
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.
Avatar billede archangel Nybegynder
21. juni 2010 - 15:05 #7
VBA er helt fint - så længe det virker :-)
Avatar billede ggxdg Nybegynder
21. juni 2010 - 15:15 #8
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

som han sagde i sin første løsning
Avatar billede ggxdg Nybegynder
21. juni 2010 - 15:16 #9
hov... fik ikke lige ændret B3 til deres respektive celler i TRUE-delen af IF
Avatar billede archangel Nybegynder
21. juni 2010 - 15:53 #10
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 :-(
Avatar billede 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;;))
Avatar billede Slettet bruger
21. juni 2010 - 16:20 #12
Rettelse
=IF(($K$12>0);Formula1/OFFSET($B$3;MATCH(F12;myText;0)-1;;);Formula2/OFFSET($B$3;MATCH(F12;myText;0)-1;;))

F12 relativ reference i stedet for absolut.
Avatar billede Slettet bruger
21. juni 2010 - 18:23 #13
Hverken #11 eller #12 kan bruges.
Forsøger igen senere på aftenen.
Avatar billede 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
Avatar billede 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.
Avatar billede archangel Nybegynder
22. juni 2010 - 11:36 #16
Jeg har testet #12 - den lader til at virke!

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? :-)
Avatar billede 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"


#12
=IF(($K$12>0);Formula1/OFFSET($B$3;MATCH(F12;myText;0)-1;;);Formula2/OFFSET($B$3;MATCH(F12;myText;0)-1;;))

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.
Avatar billede archangel Nybegynder
22. juni 2010 - 15:37 #18
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 :-)
Avatar billede Slettet bruger
22. juni 2010 - 16:12 #19
OK
Hans
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