In Part 1 of this series, I looked at Time Value of Money (TVM) and exponentiation in MindManager (MM) formulas. While the potential of exponentiation in MM formulas is easy to overlook, at least this featire is referenced in the help guide. However, formulas have two other categories of operator which are entirely undocumented.
These are comparison and logical operators. Codeacademy describes comparison operators as “operators that compare values and return true or false”, while logical operators “combine multiple Boolean expressions or values and provide a single Boolean output”. I “discovered” the comparison operators while exploring MM’s formula capabilities, and subsequently MM’s Jan Heger confirmed the existence of the logical operators. Until now I had always assumed that MM’s SmartRules feature was the only way to access these types of operators in MM.
In Excel comparison operators work as described and return a “True” or “False” response. MM formulas work a little differently; an equation involving a comparison operator will return a “1” if the result is true, and “0” if it is false. So, if we have the following formula:
– and [Score] is 51 or more, the answer would be “1”, while if [Score] is 49 or less the result would be “0”.
You can use comparison operators in this way in SmartRules to test a topic property value against a number, but unlike SmartRules MM formulas also allow direct comparison of topic properties themselves. So, if we have:
– and [Score A] is 50 or less and [Score B] is 50, the result is “1”
Another way in which formulas offer greater flexibility than SmartRules is in the ability to use bracketing. For example, you can evaluate if the following is true or false:
The full suite of comparison operators is listed in the table below.
There are two logical operators – “&&” is AND, and “||” which is OR. These can be used to combine multiple statements created by comparison operators to provide a single true/false test.
The first, &&, is the equivalent of the AND option in SmartRules when you set multiple triggers, while || is the same as ANY. However, as with comparison operators, the formulas versions provide much greater flexibility through bracketing. These allow you to combine multiple AND and OR options in a way that simply isn’t possible with SmartRules.
A simple example of the use of a comparison operator in a MM formula is:
– which will obviously return a “1” if [Score1] is greater than or equal to 10 AND less than 20. This example is easy to construct with a SmartRule but the following is definitely not:
The following table summarises MindManager formula operators:
Applications of comparison and logical operators
The availability of these operators greatly extends the capabilities of MM formulas, especially when combined with bracketing, exponentiation and the ability of formulas to reference the properties of other topics, and then integrated with SmartRules. Some of the applications include:
- Allowing the direct comparison of variables, including the properties of other topics. As noted earlier, the direct comparison of variables is a trick SmartRules can’t do. Not only that, but formulas can also compare variables on different topics. So, for example, you can use a combination of formulas to indicate on a parent topic whether Subtopic A is performing better than Subtopic B, or vice versa.
- Comparing variables to ranges. It is comparatively simple to use a combination of comparison and logical operators to compare variables to a scale using a set of formulas such as:
[Test1]=[Score]>0&&[Score]<=20, [Test2]=[Score]>20&&[Score]<=40 (and so on).
- Setting up and comparing complex criteria as a basis for a map-wide true/false test. For example, you might be managing a project which needs to meet a range of targets before it is signed off. If these targets are represented by specific subtopics in a map, formulas with comparison operators can be tailored to show the status of each of these topics. A formula using a combination of comparison and logical operators can then be added to the main topic to indicate if all targets have been met.
- Simplifying the use of SmartRules. SmartRules can undertake multiple true/false tests which are set up as triggers and then produce topic effects based on the results, but these can be tricky to set up. With comparison and logical operators being available in formulas as well as SmartRules, the former can do the heavy lifting while the latter provide the topic effects.
- Allowing the same SmartRules to disparate data sets. For example, you can tailor a range to compare variables to a scale as described earlier that is unique to each topic but using the same common topic property names, for example, [High], [Medium] and [Low]. Then you could construct a simple set of SmartRules which use these common topic property names as triggers, this producing effects across very different topics.
- Facilitating the construction of tailored dashboards. Formulas with comparison operators can be applied to specific topics or sets of topics in larger maps. Formulas with logical operators can then be used to bring the results to higher levels of the map where they can be integrated with SmartRules, thus simplifying the process of building dashboards for complex projects.
The following example shows how comparison operators can be used to perform logic tests at the subtopic level, based on a number of variables, both built-in ones like Task Progress and Costs as well as numeric topic properties (the properties are shown only in the first subtopic under each project). These tests are used to rank the relevant variable based on a standard scale. A simple set of common SmartRules sets the subtopic fill colour based on this rank.
In turn, the number of topics in each rank is totalled at the Main Topic level, where another formula using comparison and logic operators compares the combine totals of Excellent and Good performance against that of Poor and Unacceptable. A final set of two SmartRules then adds a PROCEED or NOT PROCEED flag depending on whether the total of the former is greater than that of the latter.