Show HN: Frockly – A visual editor for understanding complex Excel formulas
47 points by jack_ruru 7 days ago
47 points by jack_ruru 7 days ago
I built a visual editor that represents Excel formulas as blocks,
making it easier to inspect, refactor, and reason about complex formulas structurally.
Frockly is not an Excel replacement.
It focuses on understanding and refactoring formulas before bringing them back to Excel.
Demo: https://ryuu12358.github.io/Frockly/
GitHub: https://github.com/ryuu12358/Frockly
Write-up: https://note.com/ryuu12358/n/naa65d9d5facd (Japanese)
I use Excel a lot, and run a team that use it more. One of biggest tips I give is to not write complex formulae if you can help it. Split it into more cells, so it goes step by step. It looks less cool, but when you have to edit it in 6 months you will thank me. It is not always possible, of course. But it normally is. For the edge cases a helper like this must be nice. Maybe some fields have lots of edge cases, mine has few. Excel is often an exercise in the equivalent of writing Perl one-liners, except without the charm of wondering to yourself if you could win an IOCC contest. Thanks for sharing. I often have this problem in Google Sheets. So far, i’ve resorted to copying the formula into Sublime Text and then splitting it into multiple lines. Your editor looks much more intuitive. As demo, it would be nice if one could press a button to load some real data abd formulas. I’m reading HN on my phone. I guess many people do. Coming up with a formula and example data is an extra hurdle, and doing it using just a thumb and dumb autocorrect doubly so. I did see the screenshots on GitHub. Thumbs up for those! In case this is helpful, you can get newlines within the Excel cell itself by doing the following. > 1. You can drag down the bottom of the formula bar/field and make it multi-line. > 2. You can insert arbitrary newlines in an Excel formula. > For example: The "let" function may be of interest to those wanting to excel more programmatically. There's also lambda that is interesting for the more modern excel use cases. =Let(table,$C$17:$S$24, rowName,A6, colName,C6, headerRow,$C$15:$S$15, headerCol,$A$17:$A$24, rowIndex,MATCH(rowName,headerCol,0), colIndex,MATCH(colName,headerRow,0), index(table,rowIndex,colIndex) ) or even =LAMBDA(table,rowNames,colNames,rowToFind,colToFind, (Also alt+enter to input the newlines) You can also put the lambda function inside the let function, which is handy. Also, almost everyone should be using tables instead of ranges. The references are missing a few features, but it makes formulas a brazillion times more readable. you might enjoy "You Suck at Excel, by Joel Spolsky" https://www.youtube.com/watch?v=JxBg4sMusIg One of the best videos ever. This set me on the path to having respectable Excel kung fu that was the envy of all my colleagues. I haven't been able to try out the OP's link yet (I'm also on mobile right now), but for your current usage of splitting formulas across lines, I've used this tool a bunch to do that for me: https://www.excelformulabeautifier.com The animated gifs on your readme are completely useless. They change way too fast to read and there's no way to pause it. Either make it a video so you can pause it or just have static screenshots without animation. I'm one of those sick, sad puppies that enjoys Excel shenanigans. Haven't been able to trst it out since I'm on my phone, but screenshots look promising, I look forward to trying it out.
jimnotgym - 7 hours ago
trollbridge - 6 hours ago
leobg - 7 hours ago
tcho - 6 hours ago
I learned this from this comment from last week: https://news.ycombinator.com/item?id=46341227 =INDEX(
$C$17:$S$24,
MATCH(A6,$A$17:$A$24,0),
MATCH(C6,$C$15:$S$15,0)
)
knollimar - 6 hours ago
)($C$17:$S$24,$A$17:$A$24,$C$15:$S$15,A6,C6) LET(
rowIndex,MATCH(rowToFind,rowNames,0),
colIndex,MATCH(colToFind,colNames,0),
INDEX(table,rowIndex,colIndex)
)
Cordiali - 16 minutes ago
croisillon - 4 hours ago
paulmooreparks - 24 minutes ago
bthallplz - 7 hours ago
gabrielsroka - 6 hours ago
SuperNinKenDo - 4 hours ago