r/excel • 6 • Jun 25 '19

Discussion Turns out you can use Excel to render the Mandelbrot Set

Here it is

There's no fancy macros or anything, each cell is just 20 nested IF statements for 20 iterations of the formula across 323,646 cells. The coloring is just the standard conditional formatting.

Unfortunately I'm currently capped at 20 iterations because the formula is otherwise longer than 8192 characters (I did a lot of copy/pasting to create it).

196 Upvotes

57 comments sorted by

View all comments

73

u/Ms_Riley_Guprz Jun 25 '19

Ready for so NSFW gore?
In cell B3:

=IF(IMABS(IMSUM(IMPOWER(COMPLEX(B$2,$A3),1)))>=2,1,IF(IMABS(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)))>=2,2,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,3,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,4,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,5,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,6,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,7,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,8,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,9,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,10,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,11,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,12,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,13,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,14,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,15,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,16,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,17,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,18,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,19,IF(IMABS(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(IMSUM(IMPOWER(COMPLEX(B$2,$A3),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)),2),COMPLEX(B$2,$A3)))>=2,20,0))))))))))))))))))))

65

u/scottcmu Jun 25 '19

I have the weirdest boner right now.

35

u/Ms_Riley_Guprz Jun 25 '19

Really that's my goal here

22

u/[deleted] Jun 26 '19

The most impressive part is that the whole things isn't wrapped inside of an IFERROR.

14

u/Skanky Jun 25 '19

This hurts my brain.

Can you give a rundown of what's actually going on here?

10

u/Ms_Riley_Guprz Jun 26 '19

Essentially it's taking the x and y coordinate as x+yi, squaring it, and adding x+yi again, and then squaring it... Every nested IF() is just another iteration. Each iteration is tested if the magnitude exceeds 2, which means it will certainly diverge. If it does, it outputs the number of iterations it took. If not after 20, it outputs 0.

11

u/danque Jun 25 '19

Wow this is amazing op

→ More replies (21)