Cassette builder spreadsheet
I made this spreadsheet to calculate the cog sequence for a cassette. It uses the (speeds-1)th root of the ratio from the top to bottom cog and finds integer cog steps to each next gear. The equations are in a BBCode table below and you should be able to paste it straight into the upper left corner of an Excel worksheet.
Feel free to bug check, play, find objections, make improvements. I originally had this starting with the small cog but it sometimes missed by a tooth the final cog.
[table="width: 500, class: grid"]
[TR]
[TD]Cassette builder[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]# cogs[/TD]
[TD][/TD]
[TD]Top[/TD]
[TD][/TD]
[TD]Bottom[/TD]
[/TR]
[TR]
[TD]8[/TD]
[TD]x[/TD]
[TD]11[/TD]
[TD]to[/TD]
[TD]28[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]ideal ratio[/TD]
[TD]=(E3/C3)^(1/(A3-1))[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]gear[/TD]
[TD]ideal[/TD]
[TD]step[/TD]
[TD]cog[/TD]
[TD][/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]=IF(A8<=$A$3,$C$3*$B$5^($A$3-A8),FALSE)[/TD]
[TD][/TD]
[TD]=B8[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]=A8+1[/TD]
[TD]=IF(A9<=$A$3,$C$3*$B$5^($A$3-A9),FALSE)[/TD]
[TD]=IF(B9,ROUND(B9-B8,0))[/TD]
[TD]=IF(B9,C9+D8)[/TD]
[TD]=IF(B9,D8/D9)[/TD]
[/TR]
[TR]
[TD]=A9+1[/TD]
[TD]=IF(A10<=$A$3,$C$3*$B$5^($A$3-A10),FALSE)[/TD]
[TD]=IF(B10,ROUND(B10-B9,0))[/TD]
[TD]=IF(B10,C10+D9)[/TD]
[TD]=IF(B10,D9/D10)[/TD]
[/TR]
[TR]
[TD]=A10+1[/TD]
[TD]=IF(A11<=$A$3,$C$3*$B$5^($A$3-A11),FALSE)[/TD]
[TD]=IF(B11,ROUND(B11-B10,0))[/TD]
[TD]=IF(B11,C11+D10)[/TD]
[TD]=IF(B11,D10/D11)[/TD]
[/TR]
[TR]
[TD]=A11+1[/TD]
[TD]=IF(A12<=$A$3,$C$3*$B$5^($A$3-A12),FALSE)[/TD]
[TD]=IF(B12,ROUND(B12-B11,0))[/TD]
[TD]=IF(B12,C12+D11)[/TD]
[TD]=IF(B12,D11/D12)[/TD]
[/TR]
[TR]
[TD]=A12+1[/TD]
[TD]=IF(A13<=$A$3,$C$3*$B$5^($A$3-A13),FALSE)[/TD]
[TD]=IF(B13,ROUND(B13-B12,0))[/TD]
[TD]=IF(B13,C13+D12)[/TD]
[TD]=IF(B13,D12/D13)[/TD]
[/TR]
[TR]
[TD]=A13+1[/TD]
[TD]=IF(A14<=$A$3,$C$3*$B$5^($A$3-A14),FALSE)[/TD]
[TD]=IF(B14,ROUND(B14-B13,0))[/TD]
[TD]=IF(B14,C14+D13)[/TD]
[TD]=IF(B14,D13/D14)[/TD]
[/TR]
[TR]
[TD]=A14+1[/TD]
[TD]=IF(A15<=$A$3,$C$3*$B$5^($A$3-A15),FALSE)[/TD]
[TD]=IF(B15,ROUND(B15-B14,0))[/TD]
[TD]=IF(B15,C15+D14)[/TD]
[TD]=IF(B15,D14/D15)[/TD]
[/TR]
[TR]
[TD]=A15+1[/TD]
[TD]=IF(A16<=$A$3,$C$3*$B$5^($A$3-A16),FALSE)[/TD]
[TD]=IF(B16,ROUND(B16-B15,0))[/TD]
[TD]=IF(B16,C16+D15)[/TD]
[TD]=IF(B16,D15/D16)[/TD]
[/TR]
[TR]
[TD]=A16+1[/TD]
[TD]=IF(A17<=$A$3,$C$3*$B$5^($A$3-A17),FALSE)[/TD]
[TD]=IF(B17,ROUND(B17-B16,0))[/TD]
[TD]=IF(B17,C17+D16)[/TD]
[TD]=IF(B17,D16/D17)[/TD]
[/TR]
[TR]
[TD]=A17+1[/TD]
[TD]=IF(A18<=$A$3,$C$3*$B$5^($A$3-A18),FALSE)[/TD]
[TD]=IF(B18,ROUND(B18-B17,0))[/TD]
[TD]=IF(B18,C18+D17)[/TD]
[TD]=IF(B18,D17/D18)[/TD]
[/TR]
[/TABLE]
Last edited by Darth Lefty; 08-19-14 at 12:13 AM.