Villkorsstyrda funktioner i Excel
Jag försöker hålla reda på diverse transaktioner i både $ och € i ett dokument. Dessa finns i en lista, blandade lite hur som helst. För att kunna göra sammanställningar vill jag räkna om €-fälten till $ i en extra kolumn.
Cellerna har idag "allmänt" som cellformat, och den enda upplysning om vilken valutan är, är ett namn på samma cellrad.
Hur skulle ni utforma en lösning som räknar om €-raderna till $, men som inte påverkar de som redan är i $. Dvs, kan man göra en funktion som kollar om det står exempelvis "dollar" eller "euro" i cell A1, och sedan baserat på detta multiplicerar värdet i A2 med 1 om det stod "dollar" och med en växelkurs om det stod "euro", för att sedan skriva detta värde i A3.
Om detta är möjligt, går det då även att ha fler valmöjligheter än två? Idag står det nämligen inte uttryckligen dollar eller euro i en cell, utan istället ett namn. Ett visst namn hänger alltid ihop med en specifik valuta. Tex att Anders och Bertil alltid blir dollar, medan Ceasar och David blir euro.
Visst kan man det. Principen är ungefär:
=if(A1="Anders";C1=B1*8,5;if(A1="Bertil";C1=B1*8,5;C1=B1/8,5))
Du får göra nästla så många if-satser du behöver för de namn du har. Det går säkert att optimera formeln mycket mer om man ser Excelarket.
Vänliga hälsningar
Niklas
Jag skulle hellre göra så här:
=OM(ELLER(A1="Anders"; A1="Bertil"; A1="Euro"); B1*8,5; B1)
Mvh // Johan
Jag får tacka för hjälpen. Johans svar verkar mest effektivt, så jag kör på det just nu. Börjar förstå lite mer om hur sådana här formler fungerar nu, men det är nog inte omöjligt att det kommer lite fler frågor inom en snar framtid. :)
Jag skulle också använda Johans lösning. :-)
Vänliga hälsningar
Niklas
Du får fråga precis hur mycket du vill!
Mvh // Johan
Dags för fortsättningsfrågan. :)
Går det att kopiera in innehållet i en cell, så att den biten förekommer som en del av en funktion?
Jag försöker med:
=OM(CELL("innehåll"; M30); I30*Formler!$E$5; I30)
Där innehållet i M30 är:
ELLER(D30="Anders"; D30="Bertil")
CELL-funktion fungerar när den ligger i en separat cell, men inte om den förekommer som del i den första funktionen.
Detta försöker jag göra för att en viss kodbit förekommer på ett antal ställen, och det skulle bli lite omständigt att uppdatera samtliga dessa om det tillkommer ytterligare ett namn (för att ta exemplet ovan). Iofs har jag nog redan lagt ner tillräckligt med tid på detta för att uppdatera dem manuellt ett antal gånger, men det vore ju skönt om det gick automatiskt. :)
#6: Jag tycker att det låter som om du har kommit till den nivån där du skulle använda VBA. Det går förmodligen att göra det du vill på det sätt du vill också.
Vänliga hälsningar
Niklas
Du kan utnyttja att du kan definiera namn, som i sin tur refererar till formler. Det inte så många vet är att refernserna beter sig exakt på samma sätt som när man lägger in dom i formler manuellt.
A
B
1
Namn
Svar
2
Bertil
Ja
3
Arne
Nej
4
Johan
Nej
5
Anders
Ja
6
Bertil
Ja
Tänk dig tabellen ovan. I B2 ligger en formel som skriver Ja om namnet är antingen "Bertil" eller "Anders". Formeln kommer att ligga på många ställen och därför vill du ha så få ställen som möjligt att uppdatera.
Genom att skapa ett definierat namn som innehåller din ELLER-formel, kan sedan alla dina OM-formler referera till detta namn istället för formeln. Du har därför endast ett namn att uppdatera.
För att definiera namnet går man in i Infoga, Namn, Definiera. Döp namnet till något, exempelvis "RättNamn" och låt det Referera till denna formel:
=ELLER(Blad1!$A1="Bertil"; Blad1!$A1="Anders")
Tryck sedan på Lägg till och sedan Ok.
Tack vare att kolumnen är absolut ($A), så kommer funktionen alltid leta i A-kolumnen. Formeln kommer vidare att alltid ta värdet från samma rad som där du har din OM-formel. Detta tack vare att raden är relativ.
I OM-formeln i B2 ligger följande formel:
=OM(RättNamn; "Ja"; "Nej")
Denna kan du kopiera för hela din lista.
När du nu vill lägga till nya namn i din ELLER-formel, går du in i Infoga, Namn, Definiera och väljer ditt skapade namn och lägger sedan till fler namn i ELLER-formeln. Tryck därefter Lägg till och Ok. Alla ställen som refererar till namnet kommer automatiskt att uppdateras.
EN ALTERNATIV LÖSNING
Ett alternativ till denna lösning tycker jag vore att använda ANTAL.OM för att kontrollera om aktuellt namn finns i en lista med tillåtna namn.
Då skulle jag ha ett blad där jag alla tillåtna namn. För att sedan kontrollera om ett visst namn finns, kan jag använda formeln:
=OM(ANTAL.OM(Blad2!$A$1:$A$4; A1)>0; "Ja"; "Nej")
Med detta sätt är det ännu enklare att bara lägga till nya namn på blad2. Tänk dock på att för att slippa ändra cellreferensen i formeln ovan, så bör du infoga en ny rad mitt i referensen, t ex mellan rad 1 och 2.
Man kan med fördel skapa ett definierat namn som refererar till området med tillåtna namn.
I bifogad fil har jag gjort exempel på båda lösningarna så kan du välja själv vilken du tycker passar dig bäst.
Lycka till!
Mvh // Johan
#8 Otroligt! Tack igen Johan! Utan dig hade jag aldrig lyckats komma så långt som jag gjort.
#7 Tack för tipset Niklas. Jag ska kika lite på VBA också, och se hur lätt/svårt det verkar vara att sätta sig in i.