MightyMath is on the way! Email: firstname.lastname@example.org
The Spreadsheet with Calculation Trails instead of Algebraic Formulas
What can two trails do? The work of 100 formulas in a spreadsheet. The example lower down.
program is a personal passion with roots that date back to a product
named T/Maker that I wrote in 1979.
Thanks for the visit.
Inspiring Theme Song
And The Other One
Videos (in progress)
is written in java and runs on Mac / Apple Computers, Windows,
and a number of other platforms.
Working Version: There is an "in progress" version available for download. Feel free to try it at this page link.
MightyMath can can solve a wide range of
problems. You can do simple arithmetic on rows and columns that will
back memories of elementary school. You can do more complicated
calculations in the sequence order style of a hand calculator. You can
even do simulations with logical branches and iterations. In all cases,
you will never write a formula that requires a knowledge of
precendence or relies on parentheses (aka, algebra).
has different screens to do different tasks. The first five buttons on
the toolbar shift between them--data only, calculation trails, formats,
lines, and graphs. With a dedicated screen, tasks are
For everyday math problems, it feels more like a paint program. Take this two minute look
to get the idea. I misspoke about a "number format without any digits!" I hope to get better at this with some practice.
MightyMath can be used by most anyone to keep their books, forecast
their future, prepare invoices, or compare alternatives that translate
into numbers. The overhead of doing calculations is so minimal, it's
worth firing up for a problem with just a few numbers.
It is not a replacement for use in the business world. But in your own
world, you might find it more handy, quicker, and relaxing to use. With nothing hidden, it's less likely to produce a mistake.
probably learned math by starting with addition in elementary school.
From there you progressed to subtraction, multiplication, and, much
harder, division. Along the way you solved problems expressed in this
2 8 6 12 3 7
+2 +9 -3 -8 x 8 x 9
The first pocket-sized calculators in the seventies, picked up where this approach left off.
A little window showed a current value in the calculator. To
add 20, you
could type 20 and push the plus button. You could continue with more
values and more operators and more intermediate results to your heart's
content. There was never a formula. This is a close model to the way
MightyMath works. If you look at the "Simple Arithmetic" example
you will see that putting a plus sign next to data cells adds the
adjacent value to MightyMath's calculator.
All spreadsheets give cells a name based on their column/row
intersection and (all but MightyMath) require a formula using those
names. Parentheses are used in the standard approach to control the order of operations. That formula is put in the
cell where you want the result to be. A
formula of B1 + B2 would be put in B3 for the simple example, and the screen would show the
value 7 instead of the formula.
The truth be told, you could have put "B1+B2=" in
cell B3 in
MightyMath. You could also have put "B1+B2=B3" in cell Q45 and got the
job done. MightyMath tries to accomplish calculations in the most
simple, obvious way without rejecting possibilities. It's not ashamed to admit there is never a single best
way to do everything.
The use of cell names and hidden formulae does, however, seem like overkill for this sort of problem. In MightyMath, the
calculation requested is written in elementary school, visual
style. As well as little windows for the values (like everybody
else), MightyMath has little windows for the calculations as well.
Now suppose you wanted to do this same arithmetic across three
columns to include neighboring fruit stands. A typical spreadsheet can
the initial formula with a shortcut, so it can generate more hidden
formulae to do a similar calculation in other locations. Thus cell C3
the formula C1 + C2 and cell D3 would get the formula D1 + D2.
To MightyMath that seems like a deviation from common sense. What I
personally like about MightyMath is that it represents my problem in
the way I conceive it. It doesn't translate it into some other
representation to suit itself.
Some quick terminology: The above calculation is called a trail. A
trail is composed of a series of ordered steps. Each step can
have one or many operations to perform. They are numbered as you enter
them, but you can change the order as needed. Some trails are entirely
vertical or horizontal, but the steps in a trail can wander all over the place. A
single trail can produce many results in different cells. It is not a formula which has a life span of only one equals sign.
In MightyMath, you can repeat a trail by designating other
positions where step 1 is
to be restarted shifting all the steps accordingly. This is done with a
block cursor of the darker color shown that can be clicked or dragged
over other green cells. So the MightyMath screen remains one trail
only. The other green cells are empty. If some of you are ready to
abandon ship, I would urge you to look further down the page. A common
spreadsheet that would result in nearly 100 hidden formulas is reduced
to 2 simple trails specified in the first 2 columns with numbers.
One of the nice things that came along with hand calculators was a
button with an "M" on it. That stood for "memory." In essence, it gave
you a sort of second little window that you could not see. You could
put a value into that window and fetch it back as needed. It was great
for at least one intermediate result. Well, you can do the same thing
in MightyMath, but you can pick your own name (with a few limitations),
and you can have as many as you want.
Some syntax notes: A step in a trail, for the most part, contains a
series of operators followed by an associated value (or NOT). For example. "/6"
is in an instruction to divide the value in the calculator by 6, that's the value associated with the division sign. When
an operator has no associated value, it is interpreted
to reference the value to its right in the white data cell. Consider this
"+/5*9+32". The plus sign has no associated value, so that is an
instruction to pluck the value from the cell, add it to the calculator
(assume zero for now), divide by 5, multiply by 9, and add 32. If the
value in the cell was a temperature in centigrade, the value in
calculator would now be the Fahrenheit equivalent.
Memories (in terms of syntax) are just associated values
constants in the previous paragraph except they can also be used after
an equal sign to store a value in them. You cannot put a constant number
after an equals sign or it wouldn't be very constant. Here's the
example used on
the green board above:
say I wanted to calculate the cost per square inch of something
circular. And let's assume I am not interested in dedicating a cell in
the table to hold the area. Here's
this solution: row 1 holds the diameter and step 1 calculates the area
from it. Put the diameter in the calculator with the + (no associated value here), /2 to get the radius, ^2 to square it,
*pi to multiply by pi (a built-in memory), and =area to put the result in the memory
named "area." Step 2 puts the cost in the calculator, and step 3
divides it by the area and outputs the value to the cell (no associated value).
help keep things simple and straightforward. And a memory name you choose is
more intuitive than a raw cell name. This trail uses no cell names which makes it an excellent template that can be
reused with a click of the mouse starting from other locations.
Along with constants and memories, you will sometimes find a single
letter used as the associated valued for an operator.. Most
spreadsheets have rows that derive values for a row from data on that
row. The single letter refers to the column on the row the step
is being used on. Here's our Per Inch example
turned in another direction. I purposely put all the activity on a row
that has no numbers and did the whole calculation in one step. It's not
the way I would usually do this, but it highlights the utility of this
The associated values that represent the values in the columns are
single, capitalized here, letters which are the column names. I did put
the area in a memory
"sq". Notice the step is defined on the row of headings, but only
used on rows 2, 3, and 4. All this looks like it ought to be illegal,
but it isn't. MightyMath doesn't eliminate options for its own
convenience. Let's summarize, the bread and butter associated values that
you should know. Remember, no associated value means the adjacent cell.
1) J83 refers to column J, row 83 (BTW, if you delete or insert rows or columns ahead of J83 it will be adjusted.)
2) C refers to column C on the row the step is being used on (also adjusted under the above circumstances).
3) sq is a memory (as was "area" in the previous example).
Again, this is an excellent template to reuse without any
ambiguity, because it makes no specific reference to an individual cell.
If you did not take the two minute look please do it now or do it again if you forgot it.
Some screens and explanations:
you saw in the quick look, MightyMath
has different screens to do different tasks that you can move through quickly. The
calculating trails screen has
two cells for each column as do the formats and graph screens. One holds the symbols. The other holds
the data which can
be edited on this screen as well. The top of the first screen below
Lite Assistor for trails from which symbols can be fetched as a cursor and clicked
into place or more complicated commands can be built. You can also edit
the green cells directly. There is a demo video on using this Assistor
and another, more complete one on the videos page. (Link at top of
spreadsheet presumably belongs to a new car owner who wants to track his
MPG. There are three trails shown below. Maybe a minute of work. You
probably wouldn't have to write them all, but the typical spreadsheet would
have 9 hidden formulae at this point.
it came to adding a new row, you could select the last row above the
total, choose Insert Cloned Row(s) from the Row/Col menu, and enter
data. These trails would all be updated correctly as would formats,
lines, and even any graphs you might have specified. There is
also a video of Cloning that uses the example of calculating means,
standard deviations, and a correlation coefficient between two variables.
Below is the more weighty version of this Assistor. You
can calculate a mortgage payment with six clicks. One on "mpy" to start
the cycle, one on a cell with the amount, one on a cell with the
interest rate, one on a cell with the years, and one on the cell where
you want the result. Then one on the Compute button. A similar approach is used to calculate present value and growth rates. You
will not, however, find the full variety of built-in functions of a
long established spreadsheet. It's not that you cannot calculate anything, it's just
that you have to solve it yourself (at least for now).
can have multiple steps in a trail associated with the same cell. When you click to edit a
green cell that already has one or more steps,
you will get a choice for what to do. When editing a green cell, you
can edit the step's symbols and/or
its number if you want to change the order of steps.
can also work from a list of all steps in a trail which is an easy way
to review your trail in sequential order or modify a step with no questions asked. Just
select the step and push the button of interest. The screen will be
adjusted to show the correct step if you want to edit it assuming it is
not already on the screen.
After a quick look at the other dedicated screens, there is a section
at the end showing solutions to more challenging problems and a great
tool that helps you find mistakes--the Debugger. I am hesitant to
overwhelm anyone with solutions to problems that are beyond those they
expect to encounter.
Setting formats is easy. There is an Assistor to create new ones, but most of
the time you can get one directly from the formats toolbar. Get the
cursor for it and paint it into the secondary cells (blue for formats). You can even
select an area of cells and fill the whole area with a single click. The Assistor is shown in the screen below.
Decorative lines can make a table more understandable and attractive
when you print it. You probably already have an idea how that might
look. Again, you can paint with a cursor and/or fill areas. The screen
is below. There are no symbol cells because you can see what's in place
without them. You
can also show these lines on the data screen if you have developed some sort of app for others to use.
And then there are graphs which I probably should have called charts.
What do you do? As expected! You get a cursor or fill an area with
symbols that represent the content of those cells. Here L's are for
labels and V's are for values. About 30 seconds of work. And there
are always defaults for text elements, so you can just mark values to
start with. Some charts allow up to three series of values so there are
V1, V2, and V3 cursors. Actually
there are bunch more cursors. It all depends on the type of chart you
are making. When you click on the graph type, the parameter box will
fill with the appropriate ones. If you change the chart and have
already specified values, Mighty Math will try to adapt the values of
one chart to a different type. It's pretty good at that, but some
situations are impossible--what to do with an X-axis on pie chart for
Here's the pie chart for the above effort. The graphs, like built-in functions, are more limited than in a long established spreadsheet. But
they can provide insight or help make a point like any others. And you
can call them up from the data screen where you might be discussing
some numbers that support your conclusion.
is the print box for tables (not graphs) which tells you how many pages
wide and pages long the output will be. You can reset the parameters
that affect the size and recalculate. If you are just interested in
keeping historical paper records, you can save paper and ink this way. You
can make some nice forms too--not that I want to contribute to the
number of forms in the world! Here's a (scanned) invoice
printed with some lines. New rows could be added by cloning so work
could be done on the data screen only with additional rows cloned.
As you have seen, much is shared in the toolbars across all the
techniques are used in the performance of most tasks. That makes
learning and remembering how things work so much easier. The simple
calculation stuff is a knack you can learn quickly. It's just left
right arithmetic as you would do with a hand calculator. As mentioned
before, MightyMath will rise to most any level you wish to take it.
Most tasks in life are procedural in an obvious way. Crime scene
investigations start with gathering evidence. Assembly instructions
start with step one at the top of a list. A formula is actually an
exception to the rule, as nested parentheses often force you to think
from the inside out. While a forumla is great for expressing a
discovery--E = MC^2, it's not always the best way to express a series
of calculations you may be experimenting with. My point: arithmetic has
advantages and can calculate anything a formula can. And, a trail can
do so much more than a formula.
If you think this could be fun, I can say I always enjoy
using it. There is a "work in progress" you can download. The link is
to the right of the green board examples at the top of this page.
More Complicated Features And Problems
something is likely to lead to a typo or requires you to
remember a keyword or a special syntax, there is typically assistance
available. Here is the Assistor for a "when clause" which allows you to
perform calculations or take various actions based on a logical
test. It's not hard to make one, but why not get
it right the first time while seeing what the options are? The number of possible combinations is in the hundreds.
As one example, you could put a
category in a column and use certain trails only on certain
All trails, nonetheless, could be marked to apply to every row but
would only do their thing on rows which are the correct category. Thus rows of any
category could be inserted anywhere and would be correctly calculated
without requiring any modifications to any trail. In the
below EXTRAIL is short for "exit trail." All the following steps in the
would be skipped for, say, an "adult." "<>" stands for not
equal. Think of it as less than or greater than, so therefore not equal. Other comparisons are self-explanatory.
when text <> "child" extrail
I thought we
should take a look at something that might seem to be a bit more
business oriented. Below is such a thing with various derived rows from
two rows of data. Almost 100 numbers are derived which would be almost
one hundred cells with formulae regardless of who wrote them or how.
Well, there are two trails in MightyMath for the almost 100 derivations.
Let's take a look at the first one which calculates the cumulative and
monthly average to date for both years. The exclamation point ( ! ) enters a
value into the calculator. A plus sign (+) actually adds the value. If you
ended last step with an equal sign (=), the calculator would already be
zero, but if you really are starting from scratch, the ! is the
preferred choice. The hash sign (#) outputs the value in the calculator
but does not set the calculator back to zero. Of course, it could still be
overwritten by anything else that loads the calculator directly. All
memories in MightyMath are zeroed when it starts the first (and generally only) pass.
The first step below enters the value in column B (no associated
value), adds the value in memory csum (initially zero), and puts that
total in the csum memory. This trail is reused first across the twelve
columns of 2018 before it is used across the 12 columns of 2019. As we
go though the columns, we have csum up to date for the column we are
on. The order in which the trails are reapplied is always left to
right within top to bottom. For the average to date, I will need
know what to divide csum by. In the second step, I have put the
cumulative in the correct spot first (= has no associated value). Then I have used another
"count + 1 = count" to count columns for the divisor needed to
get the average to date. The third step does the division and outputs
When I first computed this spreadsheet the second set of numbers were
off. The problem was easy enough to find. The memories
csum and count started off with the values left over from the first block
of rows. Thus I added a fourth step to set csum and count back to
zero after the 12th month was calculated. The second trail is below.
The second trail calculated the monthly increase and percent
increase. That was a snap. I did have to visit cell B2 twice. Once to
subtract it from cell C2 to get the raw increase and once to divide the increase by B2 to get
the proportional increase. A multiplication by 100 got me the percent. The bright green square, BTW, is an indicator
that the cell has multiple steps. You can also see that in the helpful
list of all the steps discussed earlier. MightyMath tries to keep all related information in your face and not hidden.
When there is a problem, like the one I had, it's typically in a confined
area and takes a tweak to fix. You will soon see a debugging tool that
is a great feature in MightyMath.
In summary the above two screens in conjunction with the darkened green
cells do the work of nearly 100 formulas in a traditional spreadsheet.
And if you plan to do 2020 and 2021 it will be closer to 200 formulas.
take a look at a spreadsheet which simulates the optimal strategy for
roulette, and demonstrates that MightyMath is ready to rise to most any
level you want to go to. In this example, you enter what you want to risk, how much you want to make, and a
maximum number of spins. MightyMath will bet on your lucky number every
time with a dollar amount that achieves your goal on the first win. The
more you risk and the less you want, you can win much more often than
not. Of course, when you do lose, it's a bummer. Note below that
direct references are made to individual cells like B7 or B4. The
trails here are for one task only and not needed as templates. Also,
you can see the cells involved are all on the same screen, so a mistake is much less likely. The particular
trail below sizes the bet which is put in a memory as there is no cell
for it. "Cel" in step 4 stands for "ceiling" which is the
first integer bigger than the number in the calculator. You can't bet
a half chip. Nor can you bet more than you have left--step 5.
wonder if many spreadsheets could even do this sort of thing? This
spreadsheet is not child's play, but I believe most everyone could look
through the trails and understand how it works. Others can solve
similar problems or even more complicated ones. It
does restart itself after each spin until you're broke, won the desired
amount, or played the maximum number of spins specified. A variety of
such options were shown on the weighty Assistor under the heading "Flow
you put various restarts in a spreadsheet and it goes on for more than
15 seconds, Mighty Math will give you the opportunity to abort with
some restart statistics shown. This can happen if you forgot to EXIT!
And when you do most anything, it's nice to have a way to find
mistakes. MightyMath has a debugger that can walk through calculations,
trail by trail, step by step, even operator by operator. It shows
pretty much everything about this moment in this table including
recent references made to other cells and memories. At this point in the above example, 13
bets have been lost. We're down $136 and betting $12 a spin. That would
get us to our target profit of $300, but the bet will go up if we
continue to lose. It's fun to take a spreadsheet and walk through it even if it is working correctly.
am going to mention one more "expert" feature that shines in some rare
situations. If you end a memory name with a question mark (qfactor?),
question mark is replaced by the column in which it is used. This means
you can have a single trail used down all columns with a "= qfactor?"
and have a "! qfactor?" to fetch the correct value for that
way down the spreadsheet in a completely different trail.
Words and Phrases: Mighty Math, simple easy spreadsheet, amazing,
inexpensive, cheap, son of T/Maker, table maker, two dimensional
calculator, arithmetic based,
no algebra, straightforward, iterations, goal
seeking, applications, programmable, fewer mistakes, not error prone,
pleasant look and feel, consistent, efficient, common problems,
mortgage payment, growth rate, present value, blackboard, green board,
white board, elementary school, multiplication tables, division tables,
middle school, high school, kids, children, adults, home schooling,
math skills, add, subtract,
divide, multiply, subtraction, division, multiplication, learning,
fun, unconventional, wonderful syntax options, power and ease,
your own templates, home budgeting, home finance, cash flow, invoices,
project estimates, household templates spreadsheet for the whole
family, unique, the unspreadsheet spreadsheet.