Never fear. This page gives a brief explanation and examples of typical data products.
Your needs may vary from these typical products. When we discuss your problem, we'll work together to identify the kind of data product or solution that is right for you. These examples show ways data may be used to simplify life, not the only ways.
Many of the documents that we produce are repeated. They are intended to communicate a particular thing that we have communicated before, and we will likely communicate again. Usually, there are parts of these documents that stay the same over time or over project/client/etc. Adopting reproducible reports changes the level of interaction we have with these kinds of reports. Here's a story of two processes:
The process is one that you are all too familiar with.
A reproducible process starts by planning the document ahead of filling it in. Imagine a template document where you set up all of the key ideas and then just let the data fill it in. If you've never dealt with mail merge, it is operating on this kind of principle (but it is not the same).
Data crunching is not destroying data. Rather, it is getting the meat out. Sometimes you don't have the time, resources, or experience to analyze data effectively.
Some examples of when data crunching might be useful:
Dashboards are very similar in operation to reprodicible reports. However, dashboards are expected to communicate a snapshot of critical items without all of the text and detail that make up reports. The most critical step in developing dashboards is identifying the key items on which to focus. They can easily become cluttered or focused on things that do not enable users. We can sense this when we look at a dashboard and do not have a single key takeaway. Business leaders use dashboards to identify things like: How much money are we making this month? Do our staff have free hours to devote to other tasks? Which resources are available? Are we on track to meet the target? Regular folks use dashboards to answer questions like: How many steps am I taking? Do I have money in my bank account?
The right dashboard for your purposes may live in the cloud or on your local machine. The key is for it to contain and communicate the metrics that move you forward. Most useful dashboards use simple graphics and little text.
Excel, the very common spreadsheet application, is extendable with VBA. You may have encountered spreadsheets that gave you a warning and asked if you wanted to "enable macros" - they are asking you if you want to be able to use the code that is written in VBA and attached to that spreadsheet. The warning is because there could be malicious code in VBA. Most VBA is written for good...to make life with Excel a little easier. VBA might be used to create tools or calculators in Excel, to automate complex functions, or simply to prevent errors possible from copying and pasting formulas across cells. Microsoft wrote some detailed documentation for how VBA can work within their documentation for developers using VBA on GitHub.
VBA can be used for other applications, like PowerPoint and Outlook, but their use is far less common for data handling.
Sub Bones()
If Worksheets(1).Range("A1").Value = "Yes!" Then
Dim i As Integer
For i = 2 To 4
Worksheets(1).Range("A" & i).Value = "wags tail!" & i
Next i
Else
MsgBox "Give me bones, and say you did in cell A1"
End If
End Sub
A | B | C | |
1 | Yes! | ||
2 | |||
3 | |||
4 |
A | B | C | |
1 | Yes! | ||
2 | wags tail! | ||
3 | wags tail! | ||
4 | wags tail! |
Packaged Code is code in a packaged and documented form. Depending on the language, this may be called a framework, a module, a library, or a package. The common factor is that the functions can be re-used -- not only re-used, but re-used by people who did not create them. This extends the fantastic work that Mike in accounting developed for creating a beautiful trend plot over to Sally in finance (names are made up). Now, Sally can use Mike's function to keep the output consistent.
addSeven = function(x) {
out = x + 7
}
findPercent = function(x, y) {
out = round((x/y)*100,1)
}
a = addSeven(mynumber)
print(a)
b = findPercent(a/mybigger)
print(b)
addTwenty= function(x) {
out = x + 20
}
findPercent = function(x, y) {
out = round((x/y)*100,1)
}
a = addTwenty(myothernumber)
print(a)
b = findPercent(a/mybigger)
print(b)
# declare my functions
addSome = function(x, z) {
# this function adds z to x and outputs the total
# x and z must be real numbers
out = x + z
}
findPercent = function(x, y) {
# this function gets the percent of y represented by x, rounded to 1 tenth (0.0)
# y should not be 0
out = round((x/y)*100,1)
}
# file 1
load(mypackage)
a = addSome(mynumber, 7)
print(a)
b = findPercent(a/mybigger)
print(b)
# file 2
load(mypackage)
a = addSome(myothernumber, 20)
print(a)
b = findPercent(a/mybigger)
print(b)