(e-mail address removed) wrote...
it's not complex. the relational model is the simplest thing in the
world.
....
If one thinks in terms of table-based relations, perhaps. Most people
don't think that way, so wrong in general.
The value of peoplesoft and sap is that it is DATABASE DRIVEN.
These apps dont run on spreadsheets.
It's not that they're essentially database applications, their main
value comes from the relations and tables they provide out-of-the-box.
Now, the things most companies do with them are best done using
databases, so no prizes for PeopleSoft (or Oracle) or SAP that they're
implemented using dbms's.
Why would you use crayons to draw on pretty reports?
You're doing the same thing by bringing data into Excel and then you
sit there-- and you have a copy of the same formula in 100 different
places.
I have thousands of archived e-mails with a lot of common text, too.
Some redundancy isn't worth the effort to eliminate.
One big advantage of that redundancy is that a given workbook can be
opened and used on any PC or Mac or Linux or BSD box running Excel or
OpenOffice Calc (OK, OOo Calc chokes on some XL functions and many XL
array formulas). I don't need to haul around terabytes of dbms store,
and I don't need a connection to the dbms. And I can write more
formulas if needed, so XLS files are much more useful than static SNP
or PDF files.
Since all you do is create reports, I guess you can't even imagine
needing different perspectives on the same data.
It is impossible to check all of these formulas and have any confidence
in your numbers.
Maybe it's impossible for you.
It's a matter of scale. Database queries have formulas, especially ones
using multidimensional analysis and OLAP facilities. Are those formulas
impossible to verify?
A single spreadsheet formula is also easy to verify, and (I may lose
you here because this will take some wit to understand) if one uses
standard software engineering techniques, it's possible to print
formula listings from spreadsheets (R1C1 addressing much better than A1
for this) to text files then use textual pattern matching to locate
anomalies. I've been doing this for almost 2 decades.
Now most spreadsheet users wouldn't recognize a regular expression if
it danced naked in front of them (stealing shamelessly from J K
Rowlings), but that doesn't imply it's not possible for ANY spreadsheet
user (or developer) to verify their models. Your argument is a vacuous
as saying that since it's difficult to fully verify source code in
large software systems (e.g., dbms's), you can't have any confidence in
the results generated by such systems. Untrue. There's empirical
confidence. Has it worked well in the past? Does it handle test cases
correctly? But you wouldn't understand that unless some dbms spit it
out at you in a report simple enough for you to understand.
I can do anything with SQL Server that you can do with Excel. And I
can do it faster, against more than 65k records.
OK, let's see whether (i.e., prove) you're talking out your backside.
Use a nice outside data source like the U.S. Bureau of Labor
Statistics.
http://data.bls.gov/cgi-bin/surveymost?ce
Pull 'Total Private Average Weekly Earnings, 1982 Dollars - Seasonally
Adjusted - CES0500000051' by checking its check box and clicking on the
'Retrieve Data' button at the bottom of the web form.
On the next web form, click the 'More Formatting Options' link. In the
next form, choose 'Column Format' from the list under 'Select view of
the data' and 'Text' under 'Output type' (choose whatever plain text
format you'd prefer - I use comma delimited). Under 'Select the time
frame for your data', specify years 1985 to 2005. Then click the
'Retrieve Data' button. This should give you a table with field names
and 245 records.
Pull that data into your dbms, but let us know in detail all the steps
you need to do that. The following steps are all that's needed to pull
it into Excel.
1. Select the entire table (field names to bottommost row excluding the
'(p)' at the end of the last field in the bottommost row) and copy it
to the clipboard.
2. Switch to Excel and run the menu command Edit > Paste Special, Text.
3. Immediately after pasting, run the menu command Data > Text to
Columns, choose Delimited and click the Next button, then check 'Comma'
as a delimiter character and click the 'Finish' button.
The data is now ready to use.
Let's do something moderately tricky - pull the largest and average
relative (percentage) increases and decreases in rolling 3 month
average weekly wages. (Yes, you could pull the rolling 3-month figures
from the BLS database, but let's compare Excel vs your database.)
I imported the data into a new worksheet beginning in cell A1, so after
parsing A1 contains 'Series ID'. One approach in Excel.
1. Enter the formula =AVERAGE(D2
4) in cell E4, then double click on
the Fill Handle to fill it down into E5:E246.
2. Enter the formula =(E5-E4)/E4 in cell F5, then double click on the
Fill Handle to fill it down into F6:F246.
3. Enter the array formula =MAX(IF(F5:F246>0,F5:F246)) in cell H1 to
get the largest rolling 3 month percentage increase.
4. Enter the array formula =MIN(IF(F5:F246<0,F5:F246)) in cell H2 to
get the largest rolling 3 month percentage decrease.
5. Enter the array formula =AVERAGE(IF(F5:F246>0,F5:F246)) in cell H3
to get the average rolling 3 month percentage increase.
6. Enter the array formula =AVERAGE(IF(F5:F246<0,F5:F246)) in cell H3
to get the average rolling 3 month percentage decrease.
For extra points, enter the formula =COUNTIF($F$5:$F$246,H1) in cell I1
and fill it down into cell I2 to get the number of rolling 3 month %
changes matching the largest increase and decrease, respectively, and
enter =INDEX($B$2:$B$246&" "&$C$2:$C$246,MATCH(H1,$F$2:$F$246,0)) in
cell J1 and fill it down into cell J2 to get the year and month
corresponding to the topmost (earliest) periods experiencing the
largest % increase or decrease, respectively.
Now let's make it trickier. Enter 3 in cell G1. Clear columns E and F.
Enter the following formula in E2.
=IF(ROWS(E$2:E2)<$G$1,"",AVERAGE(OFFSET(D2,0,0,-$G$1,1)))
Double click the Fill Handle to fill it down into E3:E246. Enter the
following formula in cell F2.
=IF(COUNT(E1:E2)=2,(E2-E1)/E1,"")
Double click the Fill Handle to fill it down into F3:F246. The cells in
H1:J4 should give the same results as they had before. Now change G1 to
6. The formulas in J1:J4 now return rolling 6 month results.
Try making the number of periods over which to average a simple query
parameter.
AND YES, I DO MAKE PURCHASING DECISIONS.
What kind of TP, what to have for lunch, . . .
You're the idiots that are ignorant.
APPS are:
a) data entry
b) report generation
Yup. You've confirmed the narrowness of your worldview. I'd suspected
it all along, but it's good to have proof (that is, if someone of your,
er, intellect is competent to make accurate self-assessments).
Excel can't do either.. so take your spreadsheet and screw yourself
Difference of opinion on (a). What's easiest for manually keying data
is purely subjective. If there would be several users updating the same
file at the same time, then obviously databases would be better.
However, that's not the sort of data entry I do.
As for anything other than data entry or report generation, since your
wee tiny brain seems incapable of imagining any such thing, no point
sayng anything more than YOU'RE TOO STUPID TO UNDERSTAND THEM.