You are on page 1of 62

ACL 9.

1 User Guide November 2008


Page 1 of 62
ACL V.9.1 (VISTA) COMMANDS USER GUIDE

This document describes the most commonly used ACL commands. If you need a refresher
on the ACL User Interface, please review the 10 minute demonstration or use the ACL User
Interface Reference Document available on the EDA work center.

Commands included:

QUICK HITS:
Statistics
Classify
Stratify
Age

FILTERING:
Numeric
Character
Date
Find
Match
Sub

OTHER COMMANDS:
Extract
Export

SAMPLING:
CMA
Random

CALCULATIONS

ADVANCED CALCULATIONS
Creating Calculated Fields (formulas)

EXTREME CALCULATIONS
Concatenation
Character Functions

ADVANCED COMMANDS
Summarize (Advanced Applications)
Join

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 2 of 62

“QUICK HITS” - THE BIG PICTURE


The “Quick Hits” can be run in order to obtain an understanding of what the population
contains and can be used in conjunction with the specific testing described in the Model
Audit Procedures. They are big picture commands which run against your population. The
aim of the Quick Hits process is to tie out the population, and to gather insights for further
follow-up using filtering techniques. Individual filtering techniques are covered in the next
session.

While using “Quick Hits” commands you might find items of interest. We encourage you to
understand the risks that these items pose and to prioritize efforts accordingly.

The following are the “Quick Hits” commands:

 Statistics
 Classify
 Stratify
 Age

The “Quick Hits” Process:

1. Run the Statistics Command on numeric and date fields (column) in your file. For
numeric fields, the Statistics Command gives you the total positive, zero, negative
and net amounts; displays the five largest and five smallest items; and provides
averages. In addition to performing Statistics on “Amounts” which should add to
account balances, useful information can be obtained using Statistics on fields like
Unit Costs, Interest rates, etc. When running Statistics on “Dates”, the highest five
represents the five most recent dates encountered in your population, and the lowest
five represents the earliest. This is a great way to determine whether your data file
falls within a particular cutoff period. And unusual or missing dates are exposed.

2. Run the Classify Command on a field which is a “Code”. A Code is usually a small
character field, one to four characters in length, used to describe things like
transaction type, warehouse location, financial class, region, etc. Classify looks down
an entire column and presents a list of every unique item found. In another words, it
provides “Totals by…”, for example, totals by Region.

3. Run the Stratify Command on the “Amount” field which agrees to the account
balance being tested. Stratify lets you define ranges based on size and stratifies your
population into those ranges. You can easily see the distribution based on size, which
may lead you to large or unusual items.

4. For appropriate populations such as Accounts Receivable, run the Aging command to
determine the reasonableness of the aging performed by the entity.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 3 of 62
QUICK HITS - STATISTICS

In the Analyze menu there are four commands which relate to “totaling data”:

The COUNT command simply counts records meeting certain criteria or all records if a filter
has not been set. It is typically used to determine how many items met the criteria of a filter.

The TOTAL command totals a numeric fields(s) meeting certain criteria or all records if a
filter has not been set.

The STATISTICAL / PROFILE command gives a total, absolute value, minimum and
maximum of records meeting certain criteria or all records if a filter has not been set.

The STATISTICAL / STATISTICS command does all of the above and more.
Therefore, for all totaling, counting, etc., STATISTICS is the preferred command to be used.

HOW TO USE

Click on Analyze / Statistical / Statistics.


Click on a numeric or date field on which you want statistics run.
Click OK.

Alternatively, on the toolbar, click this icon:

If you click a Field name (column name) to highlight the column, and click the icon, or use
the menu, STATISTICS will automatically run on that field as long as the field is numeric or
date.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 4 of 62
WHAT THE STATISTICS COMMAND’S OUTPUT LOOKS LIKE

INTERPRETING AND USING THE OUTPUT

Anything underlined blue in the output of any ACL command is something you can click on
(like clicking to surf the web) in order to set a filter. After setting the filter, data which meets
the criteria will be displayed. At the bottom of the screen, “Global Filter:” will display the
filter currently in effect. When you are finished using a filter, click the remove-filter icon ,
and “Global Filter:” will no longer be displayed at the bottom of your screen.

There are three basic columns: Number, Total and Average. Total and Average are self
explanatory. Number represents the number of records (rows) of data. In the above
example, there were 112,969 invoices with positive amounts, 14,718 negative amounts, and a
total of 127,687 rows.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 5 of 62
Along the left side, Positive represents records with positive amounts (Debits); Zeros
represents zero value amounts; Negative represents records with negative amounts (Credits);
and “Totals” represents the grand total1. For an invoice amount in an Open Accounts
Receivable file, “Totals” would represent total Open A/R. Abs value is the sum of the
positive amounts plus the positive sum of the negative amounts.

At the bottom, there are two rows, Highest and Lowest. These are the five highest amounts
and the five lowest amounts. To see the detail of any of these items, click on the blue
underlined amount. A filter will be set for amounts of that size and ACL’s view will only
display those items.

NOTABLE OPTIONS

In the dialog box, you will notice a couple of options as well:

If you check the box for Std Deviation, the standard deviation will appear in the output under
Abs value.

You can put something under "IF", like BRANCH="04" or AMT > 50000 (assuming these
are valid column names and values), and the execution of the Statistics command will only
apply to records meeting these criteria.

On the “More” tab, you can increase or decrease the number of Highest and Lowest. For
example, the highest 10 and lowest 10.

APPLYING THE STATISTICS COMMAND IN AUDIT

1. Use the statistics command to tie out and reconcile your data file (population) to the
account balance being tested. Run Statistics on the “amount” field. It is best practice
to examine the highest five and lowest five for reasonableness. Look for offsetting
large debits and credits.

2. Run statistics after applying a filter. After applying a filter, records meeting the
criteria will only be available. By running statistics, you will essentially see what you
have caught with the filter. Statistics will provide the number of records, positives,
negatives, totals, etc., of the items meeting the filter’s criteria.

3. Run statistics prior to running a CMA sample. Copy & Paste the Statistics command
output from the log into an AS/2 Excel working paper as statistic’s output provides

1
Note: Positive amounts can generally be interpreted as Debits when analyzing assets.
When analyzing liabilities, positive amounts may actually be interpreted as Credits
(depending on how the data is stored within the file). For simplicity, this document is
written based on the assumption that positive amounts are debits and negative amounts are
credits.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 6 of 62
information for the reconciliation of the CMA population (usually all debits) to the
total population which ties to the G/L.

4. Try running the Statistics Command on a date column. The highest five and lowest
five dates will give you a first indication of cutoff issues.

Look at the oldest item. The “average” will be the average date (e.g., Average age of
invoices).

5. Try running the Statistics Command on an interest rate column. For example, in a
loan file. The number of zeros and averages are interesting. You could filter on
branch, agent, etc. to isolate problem areas. Also, the highest and lowest will get you
the five highest and lowest rates. With the filter, you could run Statistics on different
loan types, reporting codes, and loan-to-value ratios.

6. Try running statistics on a unit cost in an inventory. While the totals will not make
sense, Highest, Lowest, Zeros, and Average will be interesting.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 7 of 62
QUICK HITS - CLASSIFY

The Classify command looks down a field (column) and lists every different “item” that it
found. Additionally, you can subtotal and total numeric fields to attain totals by item. For
example, if you were to classify a Journal Entry file on a field called USER_ID, and subtotal
the DEBIT and CREDIT fields, you will get total DEBITS and CREDITS for each USER_ID
found in the file, or in audit terms, “Total debits and credits by User_ID”.

Whenever you are running ACL, use the Classify Command on every “Code”. A code is a
character column which is usually 4-5 (or fewer) characters wide, representing things like
transaction type, source, user id, loan type, warehouse location, period, etc. Understanding
the contents of these codes and their distribution can provide useful insights.

HOW TO USE

Click on Analyze / Classify…


Click on a character field on which you want to classify.
Click on a numeric field or fields you want subtotaled and totaled.
Click OK.

Alternatively, on the toolbar, click this icon:

If you click a fieldname to highlight a column and then click the Classify icon, or use the
menu, CLASSIFY will automatically run as long as the highlighted column is a character
field. However, you do not get the opportunity to select fields to subtotal and total so the
output is only a list and is less useful. You can click a fieldname to highlight the column,
and also hold [Ctrl] and click one or many numeric columns, and then click the Classify icon
to get associated totals with the list.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 8 of 62
WHAT THE OUTPUT LOOKS LIKE

INTERPRETING & USING THE OUTPUT

Anything underlined blue in the output of any ACL command is something you can click on
(like clicking to surf the web) in order to set a filter. After setting the filter, data which meets
the criteria will be displayed. At the bottom of the screen, “Global Filter:” will display the
filter currently in effect. When you are finished using a filter, click the remove-filter icon ,
and “Global Filter:” will no longer be displayed at the bottom of your screen. For example,
to set a filter to include all invoices in region 003, merely click on the blue underlined 003.

In the example above, we have an A/R transaction file. One of the columns is called RGN
which represents a region of the country. It is a character column less than 4 characters wide
(i.e., a code). Classify was run in order to see total invoice amount per region. The
following describes the columns:

RGN is the name of the field being classified.

COUNT represents the number of records (rows) per unique item in the field being
classified; in this case, RGN. There were 36,676 invoices in region 002.

“Percent of count” represents the percentage of records (rows) for each RGN (region) as
compared to the total number of records (rows) in the file. Region 003 has accounted for
14.32% of the open invoices

“Percent of field” represents the percentage of the subtotal column (Amount) for each region
to the total for A/R. That is, region 001 has 40.1% of the dollars.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 9 of 62
NOTABLE OPTIONS

What to do if the field you want to classify on is not character - Use the STRING() function
to turn a numeric field into character. For example, you need to total principal balance by
loan type. The loan type field is numeric and contains values 0 - 20. What to do is as
follows:

1. Click on Analyze / Classify…


2. Click on the button [Classify on…]
3. Click on the button [Expr…]
4. In the box called Expression, type STRING(loan_type,2) and click OK
5. You will then see STRING(loan_type,2) under “selected fields” and click OK
6. Click on a numeric field or fields you want subtotaled and totaled.
7. Click OK.

If you wanted loan type to display 01, 02, 03 … 20 with leading zeros, use the steps above
except use the following instead of step 4 above:

4. In the box called Expression, type REPLACE(STRING(loan_type,2),“ ”,“0”) and


click OK.

SYNTAX OF THE STRING FUNCTION is:


STRING(fieldname of numeric field,width you desire)
In the above example, assume loan_type occupied up to 2 characters in width. If you had run
statistics on loan_type, and looked at the highest and lowest, you would know for sure what
the minimum and maximum was and could specify the width necessary based on that.

SYNTAX OF THE REPLACE FUNCTION is:


REPLACE(fieldname of character field,“old value”,“new value”)
In the above example, we replaced blanks with zeros. The character field, in this case, was
the string function results, which is a right justified number.

APPLYING THE CLASSIFY COMMAND IN AUDIT

Run classify on fields which are codes. A code is a small field representing something with a
larger description. Having codes saves space on reports and in data files. They are usually
1-4 characters wide. Examples are Loan types, warehouse locations, regions, transaction
types, financial class, clerk’s initials, state, etc.

The classify command is like a X-RAY of the client's data/business.


You might find things that are unexpected, e.g.,:

- Sales in a particular state greater than expected


- Sales in states you cannot locate on an atlas
- Loan types you never thought the client had
- Faulty data from poor input validation controls.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 10 of 62

On that last point, data is ultimately entered or input. If valid loan types are 1 through 5, and
the data entry person enters a blank, a 6, a ?, or something else, two things could happen. On
some systems, the screen will give an error message "ERROR, Valid Loan Types are 1 - 5".
On some systems, it will take whatever you type. When using the
Classify command and you get blanks or unexpected values in the classify-on column, you
may want to follow up as the screens with supposed controls may be accepting bad data.
And then, what do the processing systems do with the bad data?

HOT TIP! After using the Find Function (see filtering), use classify on the field you
searched through using Find. You get a concise list of each item found, with respective
record counts and totals.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 11 of 62

QUICK HITS - STRATIFY

The STRATIFY command in ACL is an important tool. It is used to put detail items into
ranges or buckets based on size. The result shows you whether or not a population is
homogeneous and identifies potentially unexpected large or unusual items in a population.
STRATIFY is an important tool in the search for large or unusual journal entries because it
may spotlight unusual looking amounts.

Using STRATIFY, you set up ranges (or buckets) and then stratify a population, such as A/R
invoices, into those ranges. For example, you may have a file containing A/R invoices and
want to know what percentage of A/R invoices are between $0 and $9,999, $10,000 and
$19,999, $20,000 and $29,999, and so on. Stratify accomplishes this task. Not only does it
show the number of invoices falling into each of the ranges, it adds up the A/R amount for
each range.

HOW TO USE

Click on Analyze / Stratify…


Under “Stratify on”, click on a numeric field, usually your “amount” which ties to the
account balance you are testing. Examples would include an invoice amount from an A/R
file or Debit or Credit from a Journal Entry file.
Click on a numeric field or fields you want subtotaled and totaled. Usually the same field as
the one used under “Stratify-on” (See example screen below).
Determine your ranges or “buckets”. Ranges can be determined in two ways:

1. Enter a minimum and maximum, and the number of intervals. ACL will take the
maximum amount, subtract the minimum amount, and divide it by the number of
intervals to make the ranges. ACL creates two buckets for either side of the Min and
Max you select. In the example below, less than 0 and greater than 100000.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 12 of 62

OR

2. Click the dot next to Free, and enter specific ranges you desire. Like 0 250 500 1000
10000 12000, etc. You basically enter a number and hit [Enter] until done. Free
essentially means you are free to enter your own specific ranges. Enter ascending
amounts.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 13 of 62

Click OK.

To bypass the menu when invoking the Stratify command, click this icon: and fill out
the options noted above. If you click a Field name to highlight a column and then click the
icon or use the menu, Stratify will automatically run on that field as long as it is a numeric
field. However, you will not have the opportunity to select the above options so this method
is not useful.

NOTE: If you run Statistics prior to running Stratify, the Minimum and Maximum in Stratify
will automatically be filled out from the top-5 and bottom-5 from Statistics. The intervals
will be 10, and Stratify will use this as ranges. This is not always very helpful as the
minimum and maximum need to be round numbers in order for the buckets to be
understandable. It is recommended to override these values using your judgment in order for
the output to make sense.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 14 of 62

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 15 of 62
WHAT THE OUTPUT LOOKS LIKE

INTERPRETING & USING THE OUTPUT

Anything underlined blue in the output of any ACL command is something you can click on
(like clicking to surf the web) in order to set a filter. After setting the filter, data which meets
the criteria will be displayed. At the bottom of the screen, “Global Filter:” will display the
filter currently in effect. When you are finished using a filter, click the remove-filter icon
, and “Global Filter:” will no longer be displayed at the bottom of your screen.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 16 of 62
On the left side, under the column AMOUNT, is the field stratified on. These are the buckets
or ranges. Under the column AMOUNT on the right, we see the column subtotaled and
totaled.

To read the output, you could say there were 286 invoices with amounts between $20,000
and $29,999. These 286 invoices are 0.22% of the total number of invoices and add up to
$6,973,448.80 which is 5.13% of the total A/R balance. Another observation is there are 27
invoices greater than $100,000 in size, which make up almost 7% of the total A/R. This is
out of 127,687 invoices.

COUNT represents the number of records (rows), in this case, invoices, falling into each of
the ranges (buckets).

Percent of count represents the percentage of records (rows) falling into that particular
bucket. Percent of field represents the percentage of the subtotal column (Amount) for each
bucket to the total for A/R.

APPLYING THE STRATIFY COMMAND IN AUDIT

One of the principal purposes is to look for unusually large items.

The stratify command lets you quickly see the 80-20 principle. In other words, are there a
few items which make up a significant percentage of the total population? When you run
your Stratification, look at the buckets containing the larger items. Notice the count will be
low, and the “Percentage of Amount” will be pretty high. These may be items you can
consider looking into.

The stratify command also lets you see the point of diminishing returns when you are
determining a threshold for reviewing and understanding large items. Simply start from the
bottom and add up the “count” column as you work upwards. At the same time, add the
“Percent of Amount”, again, from the bottom upwards. For each bucket added (each time
smaller amount ranges), you get a cumulative item count and percent coverage. From there,
you can easily say, “I want to see all items greater than XXXXXX”, and apply the
appropriate filter.

You can use Stratify on other fields like interest rate or unit cost. For example, stratify on
interest rate and subtotal principal balance. Use “Free” and enter 0.00, 1.00, 2.00 all the way
to 20.00. You’ll get a spread of principal balance across the rates.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 17 of 62

QUICK HITS – AGE

One of the finest things ACL gives us is the ability to age a population such as Accounts
Receivable and quickly perform the test over 100% of the data.

It is common to find aging reports which contain aging buckets out to 90 days and then have
an “Over 90 days” catch-all. With ACL, we can control the aging buckets and extend them
out as far as we wish, at the intervals we wish. The buckets do not have to be even in size,
you can start with months and switch to years.

HOW TO USE

Click on Analyze / Age…

Click on a date field to age on. Be careful which date to use. Sometimes you have both an
invoice date and a due date. You typically use invoice date but your engagement team may
determine otherwise.

Select the cutoff date. Click the down arrow and you will get a calendar. The default is
today’s date which is never used: ensure you use the date on which your population is “as
of”, typically known as the cut-off date. Scroll to select the cutoff date.

Click on a numeric field or fields you want subtotaled and totaled, usually the invoice
amount when testing Accounts Receivable. Determine your aging periods. ACL’s default is
0, 30, 60, 90, 120, and finally, 10000 as a catch all. As long as the numbers are ascending,
enter as many ranges as you like; for example, 0, 30, 60, 90, 120, 150, 180, 270, 360, 720,
1080, 1440, and 10000.

Click OK.
Alternatively, on the toolbar, click this icon: and fill out the options above.

HOT TIP! If you find yourself continually changing the aging periods, go to Tools /
Options, and the “date” tab. Here, you can permanently change the default aging buckets to
your own. Notice, they are separated by commas. Enter your periods and ACL is set for
good!

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 18 of 62
If you click a Field name to highlight a column, and then click the Aging icon, or use the
menu, Age will automatically run on that field as long as it is numeric. However, you do not
get the opportunity to select the above options so this method is not useful.

WHAT THE OUTPUT LOOKS LIKE

INTERPRETING & USING THE OUTPUT

Anything underlined blue in the output of any ACL command is something you can click on
(like clicking to surf the web) in order to set a filter. After setting the filter, data which meets
the criteria will be displayed. At the bottom of the screen, “Global Filter:” will display the
filter currently in effect. When you are finished using a filter, click the remove-filter icon
, and “Global Filter:” will no longer be displayed at the bottom of your screen. For
example, to set a filter for all invoices greater than 120 days old, merely click on the blue
underlined 120 – 10,000.

On the left side, under the column Days, we see the ranges set based on cutoff. Under the
column AMOUNT on the right, we see the column selected under subtotal fields.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 19 of 62
To read the output, you could say there were 7,187 invoices between 90 and 120 days old,
amounting to almost $9 million or 6.62% of the A/R dollars.

COUNT represents the number of records (rows), in this case, invoices, falling into the date
range or bucket.

Percent of count represents the percentage of records (rows) for that bucket. Percent of field
represents the percentage of the subtotal column (Amount) for each bucket to the total for
A/R.

APPLYING THE AGE COMMAND IN AUDIT

The age command is pretty basic. However, it can provide very helpful information to obtain
an understanding of the population when combined with filtering. (Filtering is covered
below). Here are some examples:

Set a filter for invoices larger than a certain amount, then run an aging.
Set a filter for a particular customer number, then run an aging.
Set a filter for a particular region, then run an aging.
Set a filter for the 5 to 10 largest customers. Age and break on customer number to get 5 –
10 agings at once.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 20 of 62

FILTERING
ACL has many powerful commands, and it also has great ways of filtering (searching for
data). ACL’s big knockout punch is when you combine the power of filtering with the power
of the commands. For example, you can set a filter to show invoices for only one particular
customer. Then, when you run an aging, you will get an aging only for that particular
customer.

WHAT IS FILTERING?

A task assigned to an audit staff might be to look through an eight inch thick A/R open
invoice report for all invoices greater than $100,000. That audit staff was filtering,
unfortunately, manually.

ACL’s filtering capability is the automation of searching through a voluminous computer


reports.

When using filters, always make sure you know whether a filter is in place or not by looking
at the bottom of your screen, when it mentions “global filter = …” each command you
perform will be on the filtered dataset.

THE MANY WAYS OF SETTING A FILTER

1. As we have seen in the Quick Hits, the output of many commands like Age, Statistics,
Stratify, Classify, etc., have blue underlines within many of the results. Clicking on
the blue underline sets a filter for whatever the result represents. For example, if you
Classify on region, and one of the regions is 003, you can click on the blue underlined
003, and a filter is set for RGN=”003”.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 21 of 62
2. ACL has a “Quick Filter”. Left-Click on a cell in the main view to highlight the cell.
Then, right-click:

By clicking “Equal”, you are setting a filter for ST=“MA” or all invoices in
Massachusetts.

3. Create a filter from scratch. ACL has a place for filtering directly above the data in
the main view. The following describes this interface.

Type a criteria (such as AMOUNT > 100000 or one of the neat tips listed below) and click
the green checkmark ( ). After clicking the green checkmark ( ), the data meeting the
criteria is displayed, and all ACL commands (Age, Sample, Classify, Export, etc.) are run
exclusively on the data that meets the filter’s criteria.

To remove a filter, Hit the red X ( ) and the filter is no longer applied.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 22 of 62
If you are uncomfortable with the syntax when typing an expression into the filter interface,
ACL provides an easy to use filtering expression builder by providing a point-and-shoot
interface.

Click the icon to access the point-and-shoot interface which looks as follows:

With this interface, you can double-click available fields (left) and they go into the
“expression” box above. Then, you can use any of the operators (middle) and type criteria,
such as a value, and complete the expression. For example, click the available field,
AMOUNT, then click the >= operator, then type 100000. When you click OK, the filter
AMOUNT >= 100000 is set.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 23 of 62
HOW DO YOU KNOW A FILTER IS IN PLACE?

You can look at the filter bar in your main view and you may see an expression as displayed
below:

However, for the true (100%) answer, look at the very bottom of your screen. At the bottom
of your screen, you see the filter that is in effect whereas in the line where you type filters,
you may be looking at a work in progress which has not been set with the green checkmark.
The following describes the filter information at the bottom of the screen:

Make sure you know what filter is in place when you run commands, because ACL runs
commands on the items meeting the filter criteria only.

HOT TIP! The following setting allows you to more easily see your results. Go to
Tools/Options, and the View (tab), place a checkmark for "Hide filtered records" and change
"redraw seconds" to 100. Then click [OK]. If you do not make this setting, and if you apply
a filter, the data will look "grayed out" and the items which meet the criteria will be white,
and you will have to scroll to see the "hits". By making this change, you will only see the
filtered records, the ones you searched for, which is very convenient.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 24 of 62
FILTERING – NUMERIC, CHARACTER, AND DATE

NUMERIC FIELDS

For numeric filtering, enter the field name, an operator, and criteria. Criteria should be
numeric and should not be formatted, i.e., no dollar signs or commas. Click the green
checkmark to apply the filter.

TYPICAL EXAMPLES

1. Set a filter for AMOUNT > 100000. How many did you get? Remember to run
Statistics after setting a filter.

2. Set a filter for AMOUNT > 100000 or AMOUNT < -100000. Note “or”, not “and”
because AMOUNT cannot be both. Also note AMOUNT is typed twice. You cannot
say AMOUNT > 100000 or < -100000. Run statistics to see what you caught.

CHARACTER FIELDS

For character filtering, there are special rules:

Enclose values in quotes. If you are looking for the value CA in a field called STATE, you
could use STATE=“CA”. STATE=’CA’, with single quotes also works. If you do not use
quotes, ACL thinks you are filtering to compare the contents of two fields. For example, if
you say STATE=CA, without quotes, ACL will say “CA is undefined”. In other words, it is
saying it cannot compare the contents of these two fields because the field, CA, is not in your
table layout (field definitions). If you have quotes in your filter criteria, use the opposite
quotes when enclosing it in the filter. For example, DESC=’30” LOGS’ or NAME=“ST
ALFONZO’S PANCAKES”.

Character filtering is case sensitive. If your data is uppercase, and you use a filter
STATE=“ca”, you will not get an error message. But you will also get no results. If your
data has both uppercase and lowercase values in a column, you would have to use the filter:
STATE=“ca” or STATE=“CA” or STATE=“Ca” or STATE=“cA”. There is an easier way.
Use the UPPER() or LOWER() function. These functions force things into uppercase or
lowercase for the purpose of setting the filter. For example, UPPER(STATE)=“CA” would
catch all gyrations as would LOWER(STATE)=“ca”. To determine if there is mixed case
data in a particular field, CLASSIFY on that field and you will see for yourself.

Character filtering looks from left to right. To get all accounts that start with a “3”, and the
account number is eight characters long XXXXX-XX, you can type ACCT=“3”. This will
get you 3XXXX-XX accounts. Or, STATE=“C” will get you CA, CO, CT. There is a
problem when the data is right justified. Imagine an 8 character field called BATCHNO. In
some cases, it is “ 123” or “ 6667” or “ 8675309” or “33445566”. Setting a filter,
BATCHNO=“123” will get all of the 123XXXXX batches but not batch “ 123”. The best
trick is to use the LTRIM() function. LTRIM forces the field contents to be left justified.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 25 of 62
LTRIM(BATCHNO)=“123” will get your desired batch (as well as others beginning with
any number of spaces preceding “123”).

Also, with character filtering, we have some very convenient functions that are listed below:

1. How to do a word search (similar to ctrl+F in Excel):

FIND

Use the FIND function. The find function performs a word search within a field, and it is not
case sensitive. What you are searching for can be anywhere in the field, not left justified.
Syntax: Find ( "search criteria",fieldname)

Examples (What you would type in the filter, followed by the green check):

Find("honda",name)

Find("LLP",payee)

Find("betamax",desc)

In reverse, you can type: NOT FIND(“betamax”,desc) and your filter will leave you with
everything except the items where “betamax”, in upper and lower cases, were found within
the DESC field.

HOT TIP! After using the Find function, immediately run the Classify command
(Analyze/Classify in the menu) on the field you used in the Find function. Subtotal your
amount. This will give you a short list of everything you found and with dollar totals.

2. Looking for multiple items in a column:

MATCH

Use the MATCH function. Rather than typing STATE=“CA” or STATE=“NY” or


STATE=“IL” or STATE=“MA”, and so on, you can use the match function. The match
function lets you use the name of a field once, and then list the different values that you want
to search for. Syntax: Match(fieldname,"criteria1","criteria2","criteria3","criteriaN")

Examples:

Match(state,"CA","NY","IL","MA")

Match(company,"564365","175555","568360","142344")

In reverse, you can use NOT MATCH(). For example, when expense testing, you may have
a file with expense transactions but you have already tested Payroll and therefore wish to

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 26 of 62
exclude all transactions to payroll accounts. Payroll accounts are 6501, 6502, 6503 and
6598. Your filter would be:

NOT MATCH(ACCT,“6501”,“6502”,“6503”,“6598”)

Then, you could use Data / Extract (See later section) to generate a new file which has all but
Payroll transactions.

HOT TIPS!

 Use quotes if the field is character (ASCII) as shown above. Omit quotes if the field
is numeric. To determine if character vs. numeric, run Analyze/Statistics. If the field
appears as one that can be selected, it is numeric and if it does not appear, it is
character.
 Classify on the field you used in the match function. In the company example
above, classify will result with a list of those 4 companies. If less, you may have
typoed one of the criteria.

3. To filter based on a portion of a field. For example, the first 2 characters of a SKU
number is a product type and you need to see all products with type "18".

SUB

Use the SUB function. Syntax: Sub(fieldname,starting position,length)

Examples:

My SKU# looks like this: TTXXXXXXX where TT is the product type: Sub(sku,1,2)="18"

My SKU# looks like this: XXXXXXXTT where TT is the product type: Sub(sku,8,2)="18"

My SKU# looks like this: XXTTXXXXX where TT is the product type: Sub(sku,3,2)="18"

FILTERING DATES

When importing data into ACL, it is important to specify date fields as dates. When defined
as dates, they behave like dates in Excel. Quite often, you will find yourself using filters that
involve the use of dates. For example, finding all records in a Journal Entry file where there
is a large gap between the posted and effective dates. In a case like this, you could set a
filter: POSTDT-EFFDT > 30 in order to see all entries with a gap larger than 30 days.

If you want to see all invoices greater than a certain amount of days, such as 120 days, your
formula would be:

Cutoff – Invoice Date > 120

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 27 of 62
If the cutoff date is 12/31/07, and you need to specify a particular date in a filter, there is a
specific syntax requirement. To represent a date as criteria in a filter, use backward single
quotes and a year, month, day representation. The exact syntax is `YYYYMMDD`.

The backward single quote is found on the [~] key as pictured below.

As an alternative to typing `YYYYMMDD` (`20071231`) in the filter line, the point-and-


shoot interface has a date calendar which when you select a date, it feeds it into your filter
expression builder.

Click the filter point-and-shoot icon .

Note the date with the appropriate syntax was fed from the calendar into the expression box
where the filter could be completed.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 28 of 62

The filter above looks for invoices greater than or equal to $50,000 that are also older than
120 days, based on a cutoff date of 12/31/2007.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 29 of 62
EXTRACT, EXPORT, SUMMARIZE

EXTRACT

The Extract command creates a new data table in your current ACL project. An Extract is
usually performed when a filter is in place so the new table becomes a subset of the original
data. When you perform the extract, you would normally include all fields in the new table
that were in the old one. It is much easier to ignore fields of no interest than it is to add back
fields you originally excluded in the extract and currently need back.

HOW TO RUN

There are two basic options:

1. Data / Extract data / Record


2. Data / Extract data / Select fields

Data / Extract data / Record

This method takes the existing record and carries it to the new table being created. There is a
subtlety. If some of your fields are calculations, they will continue to be calculations in the
new table.

The screen below describes the steps for running Data / Extract data / Record:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 30 of 62

Data / Extract data / Select fields

This method allows you to select fields: a few of them, many of them, or all of them, and
create a new table comprised of the fields you selected and the records selected by the filter,
which was in place when the command was invoked. You can choose the order in which the
fields appear in the new table. There is a subtlety which is different than the “Record”
method. If some of your fields are calculations, they will be converted into actual data and
added to your file as columns of data. They will not continue to be calculations in the new
table.

The screens below describe the steps for running Data / Extract data / Fields:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 31 of 62

After Step 2, the following pop-up appears:

How to switch back and forth between tables:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 32 of 62
To switch back and forth between tables (files), click “Overview” in the lower left.

The Project Navigator will appear:

Double-click on the table you wish to use.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 33 of 62
EXPORT

The Export command creates a file external to ACL. Most commonly we find ourselves
exporting data from ACL to Excel either to import the file to AS/2 or to share the data with
the client.

When the Export command is used, the data file it creates resides in the same folder as where
the project was created.

HOW TO RUN

Click on Data / Export to other application…

Be careful when selecting fields. It is easier to include everything up-front, and in Excel
delete columns later. As opposed to trying to add a column to an Excel file you wished you
had included in the first place.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 34 of 62
As far as the different types of files you can create, there is an option for “Word merge file”.
This is a nice option if you need to export a CMA selection, and mail-merge confirmation
letters.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 35 of 62
SAMPLING

CMA

Running a CMA in ACL is easy, made easier by the fact that while ACL can sample using a
variety of methods. CMA is the default method when you use the sampling screen. Here are
some general considerations:
1. While there are many Excel macros that can be used to perform CMA sampling, it is
generally preferred to use ACL for selecting CMA samples, because the methodology
used within ACL has been tested and approved by the firm.
2. When requesting data, request data which is at the most detailed level. This way you
do not have to worry about sub-selecting (which ACL does; but is a pain!).
3. CMA Sampling is used to test for overstatements.
4. Prior to selecting your sample, ensure you are selecting from a complete population
by reconciling the total population amount to the amount on the trial balance.
5. Sample through the debits;
a. Set aside credits. Consider what other procedures might be appropriate for the
negatives that were not included in your CMA sample. Confirm with your
manager on the appropriate method to review these.
b. This also means that the approximate number of selections will not be
population divided by J; it will be the total debits divided by J.
c. Note also that you cannot net credits and debits, and then use a CMA sample
to select remaining debits, unless they are reversals and easily identifiable as
such.
6. Be sure to document the sampling statistics from the ACL log.
7. Extrapolate your sample results using the CMA Sampling extrapolation templates
available in AS/2

HOW TO USE
Determine which field (column) is the “amount” to sample on. Usually, this is an invoice
amount, inventory amount, check amount, etc.
Step 1 is to make sure the file contains the correct population and your amount ties out.
Assuming the field is called "AMOUNT", run the Statistics Command on AMOUNT. You
will get a result as follows:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 36 of 62

Note that the positive (total debits) of $169,440,064.96 will be the population. Copy and
paste the above result to the working paper where you are documenting your CMA results.
Show that the total ties and later, you will reference the CMA population to the total positive.
The output from the Statistics command can easily be highlighted and copied/pasted into an
Excel spreadsheet.
Step 2 is to set aside credits. Best bet is to use a filter in ACL. The easiest way is to click on
the blue underlined “Positive” to set the filter. Alternatively, type AMOUNT > 0 and click
the green-checkmark in order to set the filter.
Step 3 is to generate the CMA sample. Click on the Sampling menu and then on
Sample. Follow this diagram to carry out the sample:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 37 of 62

Notes:

 Make sure you are sampling on the right “amount” field.

 Calculate J to the penny and enter it next to “Interval”.

 Enter a start-point as a positive number. If you leave it blank, ACL will generate a
random start point.
 The Cut off is a value above which all amounts are included in the top stratum. You
can leave it blank and every item larger than J is selected.
 Note: if you use a R of .7 and are interested in including all items larger than MP in
your sample selections, then include MP in the cut off

 Next to “To” enter the name of the new table (file), this will contain the CMA
selections. The sample command is like the extract command; it creates an ACL
table for further processing.

 Click OK and ACL will create a file containing the selections.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 38 of 62
DOCUMENT YOUR SAMPLE
To document your sample, obtain the CMA diagnostics from the ACL log.

After double-clicking, “SAMPLE ON…”, the following documentation appears:

The final step is usually to export your selections to an Excel file, which can be the ACL
CMA Sampling working paper that is available within AS/2.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 39 of 62

ADVANCED BUT NOT UNCOMMON SITUATIONS


1. Running a CMA across multiple files, without physically combining them. The
scenarios are many:

 At interim, you obtained a file containing 9 months of data and ran a CMA. At year
end, you obtained the final three months of data and wish to continue the CMA as if
you had run it once across the 12 months, without having to combine the files.

 Due to file-size limitations, you received 12 separate files, one per month, for a
population which should really be in one large combined file. You wish to CMA the
population without having to combine the 12 files.

 Your population consists of data from multiple entities, and file layouts for different
entities are different (they contain different columns) and it is virtually impossible to
combine the files. However, the amount field means the same thing and the sum of
all the entities amounts equals the population total. You wish to CMA the population
as one despite the file incompatibilities.
The solution is very simple. Run a CMA on the first file, and look at the CMA
documentation. Note the “Selection Remainder”. Use the selection remainder from the
previous CMA as the START of the next one. Important Note: Enter the start-point as a
positive number.
For example, after generating a CMA sample on the first of 12 files, you go to the log and
saw the selection remainder of -561169.04. You go to the second file, and when running the
CMA sample, you entered 561169.04 as the start value. You used the same “J” and
proceeded ahead.
Next to "TO", you named the tables CMA1, CMA2…CMA12. After exporting them to
Excel, you combined them easily.
As far as documentation is concerned, run statistics on each of the files. Copy/Paste the
results into Excel and combine the totals into population totals and agree the total to the
account balance being tested. Then, Copy/Paste each of the CMA diagnostics, and tie the
population amounts to the total positives from the Statistics command. Verify the sum of all
of the populations agrees to the total positives (total debits) for the year, and you are done.
2. Your file is not at the lowest level of detail. The amounts represent batches of
transactions, or customer totals; therefore you have to subsample.
In ACL you can subsample. Subsampling does require manual work. Try to get a detail file if
possible. If you cannot, here is what you have to do. Do everything mentioned above. In
addition, while in the Sampling Screen, click on a tab called "More". First, you click to make
a black-dot next to "Fields". Then, select all the fields below (under "Extract Fields"), to
include them in the CMA results. Then, click next to "Subsample", make sure it is checked.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 40 of 62

This is where the manual effort begins. After obtaining the detail which makes up each
selection, you have to add a running total of each detail item. The item which brings the
running total across the amount contained in the “Subsample” field is the detailed item that
you select.
For example, on one of the selections, AMOUNT was $4814.68 and SUBSAMPLE was
$1742.42. You have to manually take the bundle/batch, which you selected and totals
$4814.68, and with a manual calculator, go through and add each item to a running total. The
singular item which crosses the running total over the $1742.42 threshold, is the one you
pick.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 41 of 62
RANDOM SAMPLING

Similar to CMA however:

 Under the Sampling menu, select “Sample on”

 Select “Record” and “Random”.

 Population will fill in with your record count.

 Enter the number of desired selections under “Size”.

 Enter a fictitious number like 123 for Seed.

 Enter a filename (table) to contain the selections.

 Click OK.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 42 of 62

CALCULATIONS
In Excel, you can use the “= sign” and follow it with a calculation. So, if Column “C” is
Unit Cost, and Column “D” is Quantity on Hand, you could go to Column “E”, row 5 and
type =C5*D5 to derive extended inventory in E5. Of course, you can copy the formula down
alongside the block of data in order to extend all inventory items.

In ACL, you can also perform calculations. In the Table Layout, data fields within the
downloaded data file are defined so they appear as columns and can be used for analysis and
testing. This is typically the EDA Specialist’s handy-work.

In addition to the definition of raw data, the Table Layout lets you define fields which are
calculations also known as expressions.

***

This section covers performing calculations otherwise referred to as formulas or expressions.


Calculations may include:

Numeric Expressions – Performing mathematical expressions on fields or values

Concatenation – Assembling two or more character fields or strings into one field

Character or String Manipulation – Manipulating character fields

Date manipulation – Performing calculations using date functions

MECHANICS OF PERFORMING CALCULATIONS IN ACL


To accomplish the task of creating a calculated field, you must perform two steps:

1. Define a calculation (create a new field).


2. Add the new field to your view.

1. DEFINING A CALCULATION

Click on Edit / Table Layout.

Click on the “Add a new expression icon”

The following screen will appear:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 43 of 62

Under “Name”, enter the name of the new field you wish to create. Make the name short
and sweet. Do not begin a name with a number, and do not use spaces. Here are some
examples:

EXT_INV or VALUE – Extended inventory

BAL – Balance

SKU – Inventory SKU or item number

INVDATE – Invoice date

DOCNO – Document number

DESC – Description

PMT – Payment amount

D30 – 30 Day aging bucket

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 44 of 62
In the above examples, did you need the explanation to the right? By keeping the fieldname
short but recognizable, you will make filtering, using your new field, an easier experience
later on.

Under “Default Value” enter the calculation. The f(x) button gives you the same point-and-
shoot interface as when filtering.

Pointers on what to enter under “Default Value”:

 Don’t use the “= sign” to precede a calculation as you would in Excel.


 Use fieldnames in your calculations instead of column numbers that you would use in
Excel.
 Use operators and parentheses as you would in Excel. For example *=multiply,
/=divide, etc.
 If you are unsure of fieldnames, use the [f(x)] – Point-and-shoot interface to build
your expression.
 All of the filtering rules apply. For example, depict a character value in double-
quotes. For example, “NY” for an uppercase representation of a state. When using
an arbitrary date such as a cutoff date, use the backward single quote from the [~] key
and the `YYYYMMDD` format.

Click on the green check when done.

Hit the [X] in the upper right to exit the Edit/ Table layout screen to return to the main view.

2. ADDING THE NEW FIELD TO YOUR VIEW

You will notice that your new field does not seem to exist or appear anywhere. In fact, your
new field will not appear as a column in your view until you add it. You add columns using
the following “add columns” icon:

Click the icon,

Double-click on your new field (it jumps to the right),

Click OK and it becomes your rightmost field.

Later, you can drag the fieldname left or right to move the column in the View to where you
desire.

If you highlight a column by clicking on its name, then click the add columns icon, the added
column will appear just left of the highlighted column.

OOPS! I MADE A MISTAKE IN MY CALCULATION.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 45 of 62
So, you mastered the mechanics, did not get a syntax error, but realized you entered the
wrong value in an expression. To make a change to your calculation:

Click on Edit / Table Layout…

Find the calculated field in the list of fields, and double-click on it. Calculations are typically
at the bottom of the list of fields.

You are taken back to the screen for performing calculations (below).

Make your changes, and hit the green checkmark.

Exit the Edit / Table layout screen using the [X] in the upper-right.

Your changes will appear in the main view.

ADVANCED CALCULATIONS
Default Value is the typical place-holder for calculations you make.

You can tell ACL to use the Default value in all cases except where you specify one or many
conditions. When a condition is true, alternate values are used instead of the default value.
For example, Sales tax could be 8.75% in all cases except in New York where it is 10%.

To perform calculations with conditions:

Click Edit / Table layout,

And, like before, click on the “Add a new expression icon”

The next two screenshots will describe the steps:

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 46 of 62

Putting it into practice, you have been asked to create a “Sales Tax” field. The sales tax is
8.75% however, in the state of New York it is 10%.

Click Edit / Table layout, and then, the icon…

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 47 of 62

After clicking OK, the field SALESTAX will have a default value of 8.75% but will be 10%
where the state is New York.

You can add multiple conditions by repeating this process.

What you type next to “Condition…” is identical to what you would type in a filter. All the
rules apply. For example, quotes around characters (STATE=“NY”), backwards quote and
YYYYMMDD format for dates (HIREDATE=`19850612`), and no formatting of numeric
fields (e.g., AMOUNT > 1000000). Here are examples:

CONDITION… VALUE…

`20051231` - Invdate > 120 “***OVER120 DAYS***”

STATE=”NY” or STATE=”MA” AMOUNT * .0975

BAL > 1000000 AMOUNT * 0.38

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 48 of 62

EXTREME CALCULATIONS
This section expands on calculations and includes:

Functions – Like Excel, ACL has many useful character, date, and mathematical functions.

Concatenation – ACL provides the ability to combine the contents of several fields or strings
into one field.

String Manipulation – Techniques on achieving useful character fields.

Why is this important?

Some of the following examples will highlight the importance:

 You have a Journal Entry file with a date field called POST_DATE. However, you
need to determine if there are volume fluctuations by day of week. You want to
know who is posting entries on weekends and holidays. ACL has a function which
provides the day of week (Sat, Sun, Mon, Tue…Fri) from a date field.

 You have a Trial Balance. The account number has the format 00-100-00-12345-001.
There are 5,000 accounts. Looking at last year’s AS/2 Trial Balance, the account
number was 12345.100. The fourth segment, a period, and the second segment
pieced together. And, it was collapsed down to 665 accounts. ACL has functions
which allow you to grab pieces of a field, and concatenate them together, possibly
with dashes or dots, into a new field such as a new account number.

 You have two files. One is an Employee Master, and the other is a Payment Register.
Your goal is to JOIN the two files together based on Social Security Number in the
Employee Master, and Tax ID# in the Payment Register to see if employees are
receiving fraudulent payments. The JOIN command (featured in a later section) is
not working because SSN is 11 characters with dashes and Tax ID# is 9 characters
with no dashes. Again, with functions and concatenation, you can easily strip dashes,
or add them, plus ensure fields are of equal length.

THE MECHANICS

The good news is the mechanics of using functions and concatenation is the same as for
normal calculations. You perform the same two steps:

1. Define a calculation (create a new field)


2. Add the new field to your view.

Click on Edit / Table Layout.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 49 of 62

Click on the “Add a new expression icon”

The following screen will appear:

Under “Default Value”, however, what goes there is going to get pretty interesting,
challenging, and rewarding. Again, the mechanics are the same.

CONCATENATION
In Webster’s(1913), Concatenation “A series of links united; a series or
order of things depending on each other, as if linked together; a chain, a
succession.”

In ACL, you can concatenate character fields with other character fields and strings.
Concatenation means to piece these elements together to make a new character field.

In practice, you enter the name of the new field under “Name” and perform the concatenation
under “Default Value”.

Concatenation rules:

 The plus sign “+” is used to connect fields with other fields or strings.
 Fields must be character.
 Strings are enclosed in quotes.

Example:

There is a character field called YEAR and it looks like 2007. And, a character field called
QUARTER and it contains the values: Q1, Q2, Q3 or Q4.

We can name a new field PERIOD, and under “Default Value” we’ll enter
QUARTER+YEAR.

An example result will look like Q22007. Not as readable as we would like.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 50 of 62
To place a dash in between the quarter and year to make it more readable, we will
concatenate three things: a field, a string, followed by another field. Specifically under
“Default Value, we’ll enter QUARTER+”-“+YEAR. The dash “-” being a string.

An example result for the new field called PERIOD will look like Q2-2007. If you classify
on PERIOD, you will get totals by quarter within year.

CHARACTER FUNCTIONS

With concatenation in mind, character functions open a whole new world. The following
functions are very useful:

Name: SUB

Used for: Using a portion of an existing character field.

Syntax: SUB(name-of-field,start-position,length)

Example 1:

There is a field called ACCT, and it looks like 00-100-00-12345-001. One could say it has
five segments, separated by dashes. We need to create a new field called NEWACCT,
containing only the 4th segment. Using a ruler:

00-100-00-12345-001
----+----+----+----
0000000001111111111
1234567890123456789
We can easily see that the fourth segment begins at position 11 and has a length of 5.

In ACL, under “Name”, you would enter NEWACCT, and for “Default Value”, you would
enter SUB(ACCT,11,5).

Example 2:

Prior to joining two files based on Social Security Number, we noticed one file has SSNs
with dashes and the other does not. Our goal is to remove the dashes. The field is called
SSN. Using a ruler:

111-22-3333
----+----+----+----
0000000001111111111
1234567890123456789
We see the first segment starts in position 1 for a length of 3. The second segment starts in
position 5 for a length of 2. The third segment starts in position 8 for a length of 4.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 51 of 62
We can create three fields and then concatenate them.

Name Default Value

SS1 SUB(SSN,1,3)

SS2 SUB(SSN,5,2)

SS3 SUB(SSN,8,4)

NEWSSN SS1+SS2+SS3

NEWSSN will have no dashes as we simply sliced the pieces we needed, and reassembled
using concatenation.

Alternatively, we could have done it all at once:

SUB(SSN,1,3)+SUB(SSN,5,2)+SUB(SSN,8,4)

Name: AT

Used for: Finding the position of something within the field’s contents.

Syntax: AT(1,”search criteria”,name-of-field)

The AT function returns a numeric result: The position where the search criteria was found,
or 0 if nothing was found.

Example:

There is a field called ACCT, and it looks like 00-12345. But sometimes, it looks like 000-
12345 or 000-12345-01. Your desire is to create a NEWACCT with only the second
segment; the 12345 which is always five characters long.

First reaction is to use the SUB function but you realize the starting point is not in a fixed
place. Using a ruler:

00-12345
000-12345-01
----+----+----+----
0000000001111111111
1234567890123456789

You can see that sometimes you need to start in position 4, and sometimes in position 5. You
can use the AT function to search for a dash “-“. The AT function will return either a 3 or a

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 52 of 62
4. Look at the ruler. So, the position of the dash+1 is your start point for the SUB function.
Here’s how to do it:

Name Default Value

DASH AT(1,”-“,ACCT)

NEWACCT SUB(ACCT,DASH+1,5)

Result: NEWACCT has 12345 no matter where it happened to be within the old ACCT.

Notice the start-point in the SUB was a calculation. You can imbed fields and calculations,
plus other functions, in the formation of functions. Remember, if we did not add the “1”, the
NEWACCT would have included the dash plus 4 characters.

Name: DATE

Used for: Converting a date into a character field.

Syntax: DATE(name-of-date-field)

The DATE function returns a character result: A field which looks like a date in the
MM/DD/YYYY format.

Example:

You have a Journal Entry file, and the only date field is POST_DATE, which is defined as
date. You need total Debits and Credits by period but there is no “Period” field. The client
has a fiscal year ending May 31st. Period 1 is June, etc.

You can use the DATE function to create a character version of the post date, and use the
SUB function to get the MONTH. If the client had a calendar year end, you would be done.
With the fiscal year end, set up a new field called PERIOD with a default value of “00”.
Then, in the conditions, enter MONTH=”06” Value. “Per 1”; MONTH=”07” Value. “Per 2”;
etc.

Once PERIOD is established, use the Classify command on PERIOD and subtotal Debit and
Credit for totals by period. Here is how to do it:

Name Default Value

CHARDATE DATE(POST_DATE)  CHARDATE looks like 09/27/2004

MO SUB(CHARDATE,1,2)

PERIOD “00”

Condition Value

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 53 of 62
MO=”06” “Per 1”

MO=”07” “Per 2”

MO=”08” “Per 3”

MO=”09” “Per 4”

MO=”10” “Per 5”

MO=”11” “Per 6”

MO=”12” “Per 7”

MO=”01” “Per 8”

MO=”02” “Per 9”

MO=”03” “Per 10”

MO=”04” “Per 11”

MO=”05” “Per 12”

Name: CDOW

Used for: Converting a date into a Day of Week.

Syntax: CDOW(name-of-date-field,width)  Typically use 3 for width.

The CDOW function returns a character result: A field which looks like a day of week in the
Sat, Sun, Mon, etc. format.

Example:

Our desire is to get total Debits and Credits by day of week, and to see who is preparing
entries on weekends and holidays. Our post date field is called POST_DT. Here’s how to do
it:

Name Default Value

DAY CDOW(POST_DT,3)

DAY will contain Sat, Sun, Mon, Tue, Wed, Thu, Fri.

Classify on DAY and subtotal Debit and Credit to get totals.

FUNCTIONS FOR FORMATTING

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 54 of 62
TRIM(field) Removes trailing blank spaces.

LTRIM(field) Removes leftmost spaces.

ALLTRIM(field) Removes trailing and leftmost spaces.

PROPER(Field) Makes a field proper case.

UPPER(field) Makes a field upper case.

LOWER(field) Makes a field lower case.

Examples:

Fname and Lname are firstname and lastname respectively. They are 30 characters wide.
When concatenating: Fname+Lname, the result is JOE BLOE

because of the field’s width.

When concatenating: Trim(Fname)+Trim(Lname), the result is JOEBLOE.

Concatenating for the third try: Trim(Fname)+” “+Trim(Lname), the result is JOE BLOE.
The spacing is perfect but the look is impersonal.

Last try: Proper(Trim(Fname)+” “+Trim(Lname)), the result is Joe Bloe.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 55 of 62
ADVANCED COMMANDS

SUMMARIZE

The Summarize command creates a new file by collapsing an existing one based on the
contents of a field. For example:

 If you have a data file with Accounts Receivable invoices, and one of the fields is the
Customer Number, the Summarize command can collapse (summarize) the file based
on the customer number, and give you a file with customer totals.

 If you have a Journal Entry file with all transactions, and one of the fields is the G/L
Account Number, you can use the Summarize command to collapse the file based on
the Account Number. You will have a file which has total activity (total debits and
credits, or total net amount) by Account Number. This net activity can then be
compared to the Trial Balance in order to perform a reconciliation.

Summarize vs. Classify

By reading the above, you wonder, “Doesn’t Classify do this? Doesn’t it provide totals for
each of the unique items in a column?” Classify provides a short, “quick-and-dirty” result to
the screen. You get a set output with the totals and percentages, and it is interactive in that
you can click on values to set filters. The output is relatively short and in fact has a limit of
1,000 items. The purpose of Classify is for you to do a quick analysis. With Classify, you
can easily copy/paste the result to an Excel document in AS/2.

The result of the Summarize Command is an ACL table, ready for the full onslaught of ACL
commands and filters. The Summarize Command lets you bring forth additional fields to the
new file. For example, when summarizing an Accounts Receivable file on Customer
Number, you can also include the Customer Name and Address in the summarized file. The
Summarize command gives you a bonus field called “COUNT” which contains the number
of records from the original file summarized into each line in the summarized file. For
example, the number of entry lines per account number, or the number of invoices per
customer.

HOW TO RUN

Click on Analyze / Summarize

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 56 of 62

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 57 of 62

JOIN COMMAND
The JOIN command creates a new file by combining the fields in two files. It can be used to
add information to an existing file, compare the information in two files, or “filter out”
records from a file.

Examples of when JOIN is used:

 You have a table with A/R invoice detail which includes a customer number. In a
separate master file, you have customer number, name, address and credit limit; one
row per customer. By joining based on the customer number common to both files,
you can fill-in the name, address, and credit limit information alongside the invoice
detail.

 You can use JOIN to combine last year’s trial balance with this year’s trial balance.
To get ACCT, DESC, PYBAL and CYBAL.

 You can JOIN a vendor payment register with an employee file by social security
number. Any matched records would be your catch; employees potentially being
paid as vendors as well.

 You can JOIN a journal entry file, after being summarized by account, to a trial
balance in order to reconcile the data.

 You can join an expense transaction file, with a file containing accounts to be
excluded, using an “unmatched” option. The result being expense detail for all other
accounts.

JOIN COMMAND VOCABULARY

The JOIN command is fairly easy to use once you understand a few key points:

You JOIN two files. One is a “Primary” file, and the other one is “Secondary”. The
primary file is the table that is open when you invoke the JOIN command. Upon invoking
the JOIN command, you select the secondary file (table).

“Key” fields are the fields you join the two files on. They are common to both files.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 58 of 62
“Common”, with respect to “Key” fields means: they are character, they are the same
case, same length, and have the same appearance. 12345-XX and 123-45XX are the same in
every respect, but they are not the same in appearance. You will not get any matches.

For example, you have two files that you want to join using Social Security number as a key.
One file has dashes (123-45-6789) and the other file does not (123456789). To make these
into workable keys, you need to add dashes to the one; or, remove dashes from the other.
This is one of the reasons for stressing character functions and concatenation throughout this
document.

You need to understand the level of detail in both of your files. There are three scenarios:

One-to-one – There are no duplicate occurrences of content in your key fields for both files.
An example of a one-to-one scenario would be when you are joining last year’s trial balance
with the current year trial balance. In both files, there is one row per unique account number.
It is okay if both files have account numbers not contained in the other file. But to be one-to-
one, there are no repeats of an account number in either file.

Many-to-one – There are multiple occurrences of content in the key field of one file, but
there are no duplicate occurrences of content in the key fields of the other file. For example,
an Accounts Receivable open invoice file contains all invoices for all customers. There is a
field called customer number, which repeats alongside the customer’s respective invoices.
This is the “many” side of the equation. The other file is a demographics file which has one
row per unique customer number. It contains the customer name, address, credit limit, and
other informational fields.. This is the “one” side of the equation. Many-to-one situations
are common and workable.

Many-to-many – Not workable. Your only hope is the possibility that you can summarize
one of the files by a key field and not lose the substance needed for the join. The
summarized file would become the “one” and the other file, the “Many”. For example, you
have two files. One has medical procedures performed, and has admit-date, discharge-date
plus a description of service. The key is the Social Security number and it repeats for every
procedure performed. The second file is a payment file and has multiple occurrences of the
SSN as well. However, it has the patient’s age, which is the needed field for the medical
procedures file. You can summarize on SSN, and include age in “other fields”. Now with
one row per unique SSN, plus the patient’s age, you can perform a “Many-to-one” to add the
age field to the procedures file.

The “Duplicates Command” can confirm if a file is a “one” or a “many”.

Lastly, you need to understand matching options:

MATCHED RECORDS – Using Join as a Search Tool

“Matched records” means your new table will contain all primary records which had a match
in the secondary table. If there is no matching key in the secondary file, the primary record is

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 59 of 62
dropped. For example, when joining a vendor payment file with an employee file using SSN
as the key, the output of the join will only be the records that matched, i.e., the vendor
payments made where the tax id# was the same as an employee’s SSN.

MATCHED RECORDS, ALL PRIMARY – Using Join as a Data Fill – Many-to-one


scenarios

Whether there is a match or not, the output of the join will have all records contained in the
primary file. If there is not a match, fields designated to be included from the secondary file
will be blank (character) and zero (numeric).

MATCHED RECORDS, ALL PRIMARY AND ALL SECONDARY – Using Join as a Data
Fill – One-to-one scenarios

Whether there is a match or not, the output of the join will have all records contained in the
primary and secondary files. If there is not a match, fields designated to be included from the
“other” file will be blank (character) and zero (numeric).

UNMATCHED – Eliminating unwanted data

Unmatched eliminates primary file records where there is a match with the secondary file.
Example, you have voluminous expense detail in your primary file. However, you want to
eliminate all records for 25 accounts.

Theoretically, you could eliminate the 25 accounts from the population without using the
JOIN command. But, you would need to create an unreasonably long filter, something like
NOT match(Account, “500101”, “500106”, … , “500984”)

where you would carefully list all 25 account numbers, each enclosed in a pair of quotes.

Instead, create a small file of the 25 accounts in Excel. Get the file into ACL. Make sure the
keys have the same attributes. Make the expense detail the primary file, and the 25
elimination accounts the secondary file. Join with the UNMATCHED option.

JOIN COMMAND MECHANICS

Before you begin, ensure the key fields in each of the tables being joined are character; they
have the same length and have the same appearance.

In both the primary and secondary files, click Edit / Table layout.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 60 of 62

After double-clicking the field to be used as a key, the following screen will appear.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 61 of 62
If you are lucky, the key fields in both the primary and secondary files will have the same
length, be character, and have the same appearance.

You may be able to make minor adjustments by re-highlighting and/or changing the type
from numeric or print to ASCII.

You may have to perform major cosmetic surgery on the key fields of one or both of the
files, using functions like SUB(), AT(), etc., and concatenation.

RUNNING THE JOIN COMMAND

Invoke JOIN using Data / Join tables… Invoke it when the primary table is open. If you are
in a many-to-one situation, make your “Many file” your primary file.

There are two tabs, “Main” and “More”. You will use both tabs in every situation.

Main Tab

In the upper-right on the main tab, select the secondary table.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning
ACL 9.1 User Guide November 2008
Page 62 of 62
Select the primary and secondary keys.

Under “Primary fields” and “Secondary fields”, select the fields you wish to be carried
forward into the new table which join creates.

Make absolutely sure that BOTH “Presort Primary Table” and “Presort Secondary Table” are
checked.

Next to “To:” enter the name of the ACL table which will contain the join results.

More Tab

Select your matching option under “Join Categories” and Click OK.

Copyright © 2008 Deloitte Development LLC. All rights reserved. Partners in Learning

You might also like