News for hackers. Stuff that matters.

Show HN: Simple method to create complex Excel formulas

If I have trouble visualizing an excel formula in one cell on the fly, I use a trick to make it easier.

Let's say I have the following cells

| A | B | C |

1|mary| |Jane|

In D1 I want to concatenate the cell values if the cell contains text. First I make a formula to check if the cell contains text somewhere in a cell on the sheet. Let us go with A6.

A6: =ISTEXT(A1)

result=TRUE ; Hooray!

Then, if A6 is true, I want to display the text from A1 because I cannot concatenate "true" as I will be doing later on:

A7: =IF(A6=true,A1,"")

result=mary ; Yippy!

I do the same thing for each cell:

A8: =ISTEXT(B1)

result=FALSE ; Sweet!

A9: =IF(A8=true,B1,"")

result=blank ; Thank goodness!

A10: =ISTEXT(C1)

result=TRUE ; Sweet!

A11: =IF(A10=true,C1,"")

result=jane ; Thank goodness!

I know I am going to ultimately combine them with concatenate like so:

A12: =CONCATENATE(A7," ",A9," ",A11)

result=mary jane

Right now it is a mess, but it is easy to follow and create each formula. Now I just copy the formula from the correct cell into the final concatenation (A12)

To start, I will replace "A7" in the A12 formula with the formula from A7 minus the "=" sign:

A12: =CONCATENATE(IF(A6=true,A1,"")," ",A9," ",A11)

result=No change ; Perfect!

I continue that process with A9 and A11 in cell A12 formula to get this:

A12: =CONCATENATE(IF(A6=1,A1,"")," ",IF(A8=1,B1,"")," ",IF(A10=1,C1,""))

result=No change ; 100% success so far!

Now I keep copying the referred cells with formulas(A6, A8, & A10) until I have only the cells with data left(A1, B1, & C1) in the A12 formula:

A12: =CONCATENATE(IF(ISTEXT(A1)=1,A1,"")," ",IF(ISTEXT(B1)=1,B1,"")," ",IF(ISTEXT(C1)=1,C1,""))

result=No change ; Phew...

Plug that formula from A12 into D1 and it is finished. Using this method, I find it very easy to work out more complex formulas. I wish I had figured this out on day 1.

( 6 comments | 14 points | on HN )
Re:Show HN: Simple method to create complex Excel formulas by brinox on Saturday February 19, 2022 @05:12AM (#30395902)
Congrats, you've just discovered referential transparency :-)

Such a nice feature of functional programming languages, like excel formulae.

Re:Show HN: Simple method to create complex Excel formulas by ghastmaster on Saturday February 19, 2022 @07:33AM (#30396657)
It helps a lot that you gave me the name for the method. In the future, I can use that as a reference to explain what I'm doing or teach others, perhaps without needing to go into the details as I did here.
Re:Show HN: Simple method to create complex Excel formulas by d--b on Saturday February 19, 2022 @03:06AM (#30395274)
You can even write a vba macro to roll up your formulae for you.
Re:Show HN: Simple method to create complex Excel formulas by quesomaster9000 on Saturday February 19, 2022 @10:20AM (#30397738)
And squeezing lemons into your eyes can sharpen your senses to gain enough clarity to take a step back and use Python instead.
Re:Show HN: Simple method to create complex Excel formulas by y42 on Saturday February 19, 2022 @04:58AM (#30395827)
That's exactly how I used to develope complex formulars, until Excel introduced Lambda to write complex functions.
Re:Show HN: Simple method to create complex Excel formulas by jaygray0919 on Saturday February 19, 2022 @05:12AM (#30395900)
How would you do the example using Excel Lambda?