Top Banner
1 Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing
18

Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

Apr 10, 2018

Download

Documents

TrầnKiên
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

1

Building a Marketing

Dashboard using

Excel and SAS

Tim Walters

InfoTech Marketing

Page 2: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

Desired Outcome – Dashboard

Sheet and 6 Results Sheets

2

Page 3: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

Client Environmental

Considerations Client company has software to facilitate transfer of

images between mobile phones and the Internet

3

Environmental Factor Resulting Decision

Needed results in workbook for email

distribution among key executives

Workbook must include all data. No

external references allowed

Needed flexibility in certain reporting

parameters

User selects parameters

Adding capable handsets and sites over

time

Stop system when new information

encountered

Unknown technical skills of people running

system

Make interface simple and from familiar

source (Excel)

Expected large influx of customers Use SAS for processing

May not have SAS PC Files module Write output files using ODS

Page 4: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

System Overview

User Opens Excel Workbook

User Completes Workbook Form

User Runs –Launches SAS & Excel Monitors

SAS ProcessingResults

Workbook Populated

User Distributes

4

Page 5: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

1. User Opens Excel Workbook

5

Folder

Location of

SAS

Page 6: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

2. User Completes Workbook Form

6

Page 7: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

3. User Runs – Launches SASPrivate Sub Run_Click()

access_type = &H400

still_active = &H103

'this will be used to delete files and check for existence

Set fsofile = CreateObject("scripting.filesystemobject")

a = ThisWorkbook.path

On Error Resume Next

fsofile.deletefile (a & "\phone_errors.xls") 'Deletes existing file

fsofile.deletefile (a & "\site_errors.xls") 'Deletes existing file

sas_location = Workbooks("company Reports.xls").Worksheets("Sheet1").Range("B1").Value

sas_program = a & "\ReadWeeklyFiles.sas"

datec = "'" & Application.WorksheetFunction.Text(Calendar1, "ddmmmyy") & "'" & "d"

runparm = a & "\$" & datec & "$" & WeeklyFile & "$" & Weeks & "$" & CountryCutoff & "$" & HeavyUsers & _

"$" & PreviouslyActive & "$" & AccountsUsingBackup & "$" & UploadActivity & "$" & SitesConfigured _

& "$" & UploadSites & "$" & NumDaysUploads & "$" & NumDaysActiveUploads & "$" & _OTA_Downloads

completeline = sas_location & " -sysin " & sas_program & " -log " & a & " -noprint -sysparm " & runparm

'uses shell execute

taskid = Shell(completeline, 1)

hproc = OpenProcess(access_type, False, taskid)

7

Page 8: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

3. User Runs – Excel MonitorsDo 'loop continuously

'check on the process

GetExitCodeProcess hproc, lexitcode

'allow event processing

DoEvents

Loop While lexitcode = still_active

currpath = ActiveWorkbook.path

If fsofile.fileexists(currpath & "\phone_errors.xls") Then

MsgBox ("New phones exists. Please update handsets.csv and re-submit")

Workbooks.Open (currpath & "\phone_errors.xls")

Workbooks.Open (currpath & "\handsets.csv")

stopper = "Yes"

End If

If fsofile.fileexists(currpath & "\site_errors.xls") Then

MsgBox ("New sites exists. Please update parameters.csv and re-submit")

Workbooks.Open (currpath & "\site_errors.xls")

Workbooks.Open (currpath & "\parameters.csv")

stopper = "Yes"

End If

If stopper <> "Yes" Then Workbooks.Open (currpath & "\Weekly Dashboard.xls")

Me.Hide

Unload Me

End Sub

8

Page 9: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

4. SAS Processing – ReadWeeklyFiles.sas

Read 14 Parameters Passed%macro createmacvars;

%global week_date folder filedate ;

%let folder=%scan(%quote(&sysparm),1,$);

%let week_date=%scan(%quote(&sysparm),2,$);

%let filedate=%scan(%quote(&sysparm),3,$);

%let weeks=%scan(%quote(&sysparm),4,$);

%let country_cutoff=%scan(%quote(&sysparm),5,$);

%let heavy_users=%scan(%quote(&sysparm),6,$);

%let previous_active=%scan(%quote(&sysparm),7,$);

%let accounts_using_backup=%scan(%quote(&sysparm),8,$);

%let upload_activity=%scan(%quote(&sysparm),9,$);

%let sites_configured=%scan(%quote(&sysparm),10,$);

%let upload_sites=%scan(%quote(&sysparm),11,$);

%let num_days_uploads=%scan(%quote(&sysparm),12,$);

%let num_days_active_uploads=%scan(%quote(&sysparm),13,$);

%let ota_downloads=%scan(%quote(&sysparm),14,$);

%mend;

%createmacvars;

9

Page 10: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

4. SAS Processing – ReadWeeklyFiles.sas

Program Aspects

All files must be in the same folder. Folder name used for input/output files

Input%let userfile=&folder&filedate Users & Accounts.csv;

%let parafile=&folder.Parameters.csv;

%let handfile=&folder.Handsets.csv;

Output%let out_errors=&&folder.phone_errors.xls;

%let out_weekly=&&folder.weekly.xls;

10

Page 11: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

4. SAS Processing – ReadWeeklyFiles.sas

Stop Program for New Data%macro stopp;

%if &obs_errors > 0 %then %do;

ods html file="&&out_errors" style = printer headtext="<STYLE> TD

{MSO-NUMBER-FORMAT:\#\#\,\#\#\#\,\#\#0;}</STYLE>";

title;

proc print data=phone_errors(keep=phone_text_1_20) &printstyle;

run;

ods html close;

%abort;

%end;

%if &site_o_errors > 0 %then %do;

ods html file="&&out_site_errors" style = printer headtext="<STYLE> TD

{MSO-NUMBER-FORMAT:\#\#\,\#\#\#\,\#\#0;}</STYLE>";

title;

proc print data=site_errors(keep=site_code) &printstyle;

run;

ods html close;

%abort;

%end;

%mend;

11

/* data file of new types not in

table */

data phone_errors;

set company.userphone;

if phone_type=" ";

run;

%obsnvars(phone_errors);

data site_errors;

set company.usersite;

if site_type=" ";

run;

%obsnvars(site_errors);

/* invoke stopp macro -- if phone

or site errors, stops awaiting user

correction */

%stopp;

/* this macros gets the number of observations and number of columns for certain datasets */%macro obsnvars(ds);

%global dset vars_phonesvars_sites obs_errors sites_obssite_o_errors;

%let dset=&ds;%let dsid =

%sysfunc(open(&dset));%if &dsid %then

%do;%if &ds=phone_errors %then

%let obs_errors=%sysfunc(attrn(&dsid,Nobs));

%if &ds=site_errors%then %let site_o_errors=%sysfunc(attrn(&dsid,Nobs));%let rc = %sysfunc(close(&dsid));

%end;%else

%put Open for data set &dsetfailed - %sysfunc(sysmsg());%mend obsnvars;

Page 12: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

4. SAS Processing – ReadWeeklyFiles.sas

Output Files Using ODSMain File

ods html file="&&out_weekly"

style = printer

headtext="<STYLE> TD

{MSO-NUMBER-

FORMAT:\#\#\,\#\#\#\,\#\#0;}</

STYLE>";

title;

proc print

data=weekly_report_out(wher

e=(week_activated ne -10))

&printstyle;

var _numeric_ ;

run;

ods html close;

12

Parameters File Fed Back to Excel

data uploads_28_final;

weeks=symget('weeks');

heavy_users=symget('heavy_users');

previous_active=symget('previous_active');

country_cutoff=symget('country_cutoff');

run;

ods html file="&&out_within_28" style = printer

headtext="<STYLE> TD

{MSO-NUMBER-

FORMAT:\#\#\,\#\#\#\,\#\#0;}</STYLE>";

title;

proc print data=uploads_28_final &printstyle;

run;

ods html close;

Page 13: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

5. Results Workbook Populated –

Weekly Dashboard.xls

VBA Code in Microsoft Excel Objects This

Workbook

13

Page 14: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

5. Results Workbook Populated –

Weekly Dashboard.xlsSub Chart_Update()

Application.ScreenUpdating = False

Application.DisplayAlerts = False

Application.EnableEvents = False

a = ThisWorkbook.Path

pp = "Weekly Dashboard.xls"

With Workbooks(pp)

' Clear existing worksheets

.Worksheets("within28").Cells.ClearContents

.Worksheets("weekly").Cells.ClearContents

.Worksheets("countries active").Cells.ClearContents

End With

' start by processing within 28 file

Workbooks.Open (a & "\within28.xls")

Workbooks("within28.xls").Worksheets("within28").Cells.Select ‘selects all cells from workbook

Selection.Copy ‘copy

Workbooks(pp).Worksheets("within28").Activate ‘activate worksheet you want

Range("A1").Select

ActiveSheet.Paste14

Page 15: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

5. Results Workbook Populated –

Weekly Dashboard.xls

More Chart_Update Macro Statements

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Application.EnableEvents = True

End Sub

15

Page 16: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

6. User Distributes – Checks Data,

Manually Saves, and Manually Emails

16

Page 17: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

Advantages/Disadvantages of

Excel-SAS-Excel System

17

Advantages Disadvantages

•Use Excel

charts/formatting

•Utilize powerful SAS

processing

•User can run from familiar

interface

•Ubiquity of Excel

•Limit SAS licensing

•Must know some VBA and

its peculiarities

•May hit Excel row/column

limits – 64,000 in Excel

2003, 1 million in Excel

2007

Page 18: Building a Marketing Dashboard using Excel and SAS a Marketing Dashboard.pdf · Building a Marketing Dashboard using Excel and SAS Tim Walters InfoTech Marketing. Desired Outcome

For More Information

Tim Walters

InfoTech Marketing

720-732-4588

[email protected]

18