Assuming that there are tables defineing the Categories and AreaCodes, you can do this:
CREATE TABLE #teammap (Category char(1) NOT NULL,
AreaCode varchar(10) NOT NULL,
Team varchar(20) NOT NULL,
PRIMARY KEY (Category, AreaCode))
INSERT #teammap (Category, AreaCode, Team)
SELECT C.Category, A.AreaCode,
case when [Category]='A' then 'Team A'
when [Category]='B' then 'Team B'
when [Category]='C' then 'Team C'
when [Category]='K' and [AreaCode] in ('Acct','Desp','Analysis') then 'Team D'
when [Category]='L' and [AreaCode] not in ('Lark') then 'Team E'
end as [Team Line]
FROM Categories C
CROSS JOIN AreaCodes A
Then you can use this temp table throughout your stored procedure and join to it.
If there are no tables for any of the items, you can replace the table with (SELECT DISTINCT AreaCode FROM tbl) AS A for the table where they appear.
There is quite an overhead for scalar functions, and a table-driven lookup is a more natural way in a relational database.
Erland Sommarskog, SQL Server MVP, www.sommarskog.se