Debt Snowball Spreadsheet - free, no signup, no email
Example numbers below are the balances, minimum payments and APRs published on Calculator.net's debt payoff calculator page. Example only - overwrite them.

STEP 1 - List your debts (up to 15)
Creditor	Balance	APR %	Min payment	Payoff order
Credit card 2	3000	16.99	60	=IF(N(B6)<=0,"",SUMPRODUCT((($B$6:$B$20<B6)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B6,B6))
Credit card 1	6000	18.99	150	=IF(N(B7)<=0,"",SUMPRODUCT((($B$6:$B$20<B7)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B7,B7))
Auto loan	25000	4.9	519	=IF(N(B8)<=0,"",SUMPRODUCT((($B$6:$B$20<B8)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B8,B8))
Home mortgage	250000	4.0	1800	=IF(N(B9)<=0,"",SUMPRODUCT((($B$6:$B$20<B9)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B9,B9))
				=IF(N(B10)<=0,"",SUMPRODUCT((($B$6:$B$20<B10)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B10,B10))
				=IF(N(B11)<=0,"",SUMPRODUCT((($B$6:$B$20<B11)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B11,B11))
				=IF(N(B12)<=0,"",SUMPRODUCT((($B$6:$B$20<B12)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B12,B12))
				=IF(N(B13)<=0,"",SUMPRODUCT((($B$6:$B$20<B13)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B13,B13))
				=IF(N(B14)<=0,"",SUMPRODUCT((($B$6:$B$20<B14)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B14,B14))
				=IF(N(B15)<=0,"",SUMPRODUCT((($B$6:$B$20<B15)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B15,B15))
				=IF(N(B16)<=0,"",SUMPRODUCT((($B$6:$B$20<B16)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B16,B16))
				=IF(N(B17)<=0,"",SUMPRODUCT((($B$6:$B$20<B17)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B17,B17))
				=IF(N(B18)<=0,"",SUMPRODUCT((($B$6:$B$20<B18)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B18,B18))
				=IF(N(B19)<=0,"",SUMPRODUCT((($B$6:$B$20<B19)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B19,B19))
				=IF(N(B20)<=0,"",SUMPRODUCT((($B$6:$B$20<B20)*($B$6:$B$20>0))*1)+COUNTIF($B$6:B20,B20))

Extra you pay every month (on top of all minimums)	200
Snowball = smallest balance first. Column E works out the order for you; change any balance and the whole plan below re-sorts.

STEP 2 - Your payoff plan, in snowball order
#	Creditor	Starting balance	APR %	Min payment	Monthly rate	Extra rolled in	Payment it gets	Balance at its turn	Months to clear	Payoff month	Interest on it	Cumulative interest
1	=IFERROR(INDEX($A$6:$A$20,MATCH(A27,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A27,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A27,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A27,$E$6:$E$20,0)),"")	=IF(N(D27)<=0,"",N(D27)/100/12)	=IF(N(C27)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A27,$D$6:$D$20))	=IF(N(C27)<=0,"",N(E27)+N(G27))	=IF(N(C27)<=0,"",IF(A27=1,N(C27),IF(N(F27)=0,MAX(0,N(C27)-N(E27)*N(K26)),MAX(0,N(C27)*(1+N(F27))^N(K26)-N(E27)*(((1+N(F27))^N(K26)-1)/N(F27))))))	=IF(N(C27)<=0,"",IF(N(I27)<=0,0,IFERROR(ROUNDUP(NPER(N(F27),-N(H27),N(I27)),0),600)))	=IF(N(C27)<=0,"",IF(A27=1,N(J27),N(K26)+N(J27)))	=IF(N(C27)<=0,"",IF(N(J27)<=0,0,(N(I27)-N(C27)+N(E27)*IF(A27=1,0,N(K26)))+(MAX(0,N(J27)-1)*N(H27)+IF(N(F27)=0,MAX(0,N(I27)-N(H27)*(N(J27)-1)),MAX(0,N(I27)*(1+N(F27))^(N(J27)-1)-N(H27)*(((1+N(F27))^(N(J27)-1)-1)/N(F27))))*(1+N(F27))-N(I27))))	=IF(N(C27)<=0,"",IF(A27=1,N(L27),N(M26)+N(L27)))
2	=IFERROR(INDEX($A$6:$A$20,MATCH(A28,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A28,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A28,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A28,$E$6:$E$20,0)),"")	=IF(N(D28)<=0,"",N(D28)/100/12)	=IF(N(C28)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A28,$D$6:$D$20))	=IF(N(C28)<=0,"",N(E28)+N(G28))	=IF(N(C28)<=0,"",IF(A28=1,N(C28),IF(N(F28)=0,MAX(0,N(C28)-N(E28)*N(K27)),MAX(0,N(C28)*(1+N(F28))^N(K27)-N(E28)*(((1+N(F28))^N(K27)-1)/N(F28))))))	=IF(N(C28)<=0,"",IF(N(I28)<=0,0,IFERROR(ROUNDUP(NPER(N(F28),-N(H28),N(I28)),0),600)))	=IF(N(C28)<=0,"",IF(A28=1,N(J28),N(K27)+N(J28)))	=IF(N(C28)<=0,"",IF(N(J28)<=0,0,(N(I28)-N(C28)+N(E28)*IF(A28=1,0,N(K27)))+(MAX(0,N(J28)-1)*N(H28)+IF(N(F28)=0,MAX(0,N(I28)-N(H28)*(N(J28)-1)),MAX(0,N(I28)*(1+N(F28))^(N(J28)-1)-N(H28)*(((1+N(F28))^(N(J28)-1)-1)/N(F28))))*(1+N(F28))-N(I28))))	=IF(N(C28)<=0,"",IF(A28=1,N(L28),N(M27)+N(L28)))
3	=IFERROR(INDEX($A$6:$A$20,MATCH(A29,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A29,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A29,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A29,$E$6:$E$20,0)),"")	=IF(N(D29)<=0,"",N(D29)/100/12)	=IF(N(C29)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A29,$D$6:$D$20))	=IF(N(C29)<=0,"",N(E29)+N(G29))	=IF(N(C29)<=0,"",IF(A29=1,N(C29),IF(N(F29)=0,MAX(0,N(C29)-N(E29)*N(K28)),MAX(0,N(C29)*(1+N(F29))^N(K28)-N(E29)*(((1+N(F29))^N(K28)-1)/N(F29))))))	=IF(N(C29)<=0,"",IF(N(I29)<=0,0,IFERROR(ROUNDUP(NPER(N(F29),-N(H29),N(I29)),0),600)))	=IF(N(C29)<=0,"",IF(A29=1,N(J29),N(K28)+N(J29)))	=IF(N(C29)<=0,"",IF(N(J29)<=0,0,(N(I29)-N(C29)+N(E29)*IF(A29=1,0,N(K28)))+(MAX(0,N(J29)-1)*N(H29)+IF(N(F29)=0,MAX(0,N(I29)-N(H29)*(N(J29)-1)),MAX(0,N(I29)*(1+N(F29))^(N(J29)-1)-N(H29)*(((1+N(F29))^(N(J29)-1)-1)/N(F29))))*(1+N(F29))-N(I29))))	=IF(N(C29)<=0,"",IF(A29=1,N(L29),N(M28)+N(L29)))
4	=IFERROR(INDEX($A$6:$A$20,MATCH(A30,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A30,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A30,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A30,$E$6:$E$20,0)),"")	=IF(N(D30)<=0,"",N(D30)/100/12)	=IF(N(C30)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A30,$D$6:$D$20))	=IF(N(C30)<=0,"",N(E30)+N(G30))	=IF(N(C30)<=0,"",IF(A30=1,N(C30),IF(N(F30)=0,MAX(0,N(C30)-N(E30)*N(K29)),MAX(0,N(C30)*(1+N(F30))^N(K29)-N(E30)*(((1+N(F30))^N(K29)-1)/N(F30))))))	=IF(N(C30)<=0,"",IF(N(I30)<=0,0,IFERROR(ROUNDUP(NPER(N(F30),-N(H30),N(I30)),0),600)))	=IF(N(C30)<=0,"",IF(A30=1,N(J30),N(K29)+N(J30)))	=IF(N(C30)<=0,"",IF(N(J30)<=0,0,(N(I30)-N(C30)+N(E30)*IF(A30=1,0,N(K29)))+(MAX(0,N(J30)-1)*N(H30)+IF(N(F30)=0,MAX(0,N(I30)-N(H30)*(N(J30)-1)),MAX(0,N(I30)*(1+N(F30))^(N(J30)-1)-N(H30)*(((1+N(F30))^(N(J30)-1)-1)/N(F30))))*(1+N(F30))-N(I30))))	=IF(N(C30)<=0,"",IF(A30=1,N(L30),N(M29)+N(L30)))
5	=IFERROR(INDEX($A$6:$A$20,MATCH(A31,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A31,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A31,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A31,$E$6:$E$20,0)),"")	=IF(N(D31)<=0,"",N(D31)/100/12)	=IF(N(C31)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A31,$D$6:$D$20))	=IF(N(C31)<=0,"",N(E31)+N(G31))	=IF(N(C31)<=0,"",IF(A31=1,N(C31),IF(N(F31)=0,MAX(0,N(C31)-N(E31)*N(K30)),MAX(0,N(C31)*(1+N(F31))^N(K30)-N(E31)*(((1+N(F31))^N(K30)-1)/N(F31))))))	=IF(N(C31)<=0,"",IF(N(I31)<=0,0,IFERROR(ROUNDUP(NPER(N(F31),-N(H31),N(I31)),0),600)))	=IF(N(C31)<=0,"",IF(A31=1,N(J31),N(K30)+N(J31)))	=IF(N(C31)<=0,"",IF(N(J31)<=0,0,(N(I31)-N(C31)+N(E31)*IF(A31=1,0,N(K30)))+(MAX(0,N(J31)-1)*N(H31)+IF(N(F31)=0,MAX(0,N(I31)-N(H31)*(N(J31)-1)),MAX(0,N(I31)*(1+N(F31))^(N(J31)-1)-N(H31)*(((1+N(F31))^(N(J31)-1)-1)/N(F31))))*(1+N(F31))-N(I31))))	=IF(N(C31)<=0,"",IF(A31=1,N(L31),N(M30)+N(L31)))
6	=IFERROR(INDEX($A$6:$A$20,MATCH(A32,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A32,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A32,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A32,$E$6:$E$20,0)),"")	=IF(N(D32)<=0,"",N(D32)/100/12)	=IF(N(C32)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A32,$D$6:$D$20))	=IF(N(C32)<=0,"",N(E32)+N(G32))	=IF(N(C32)<=0,"",IF(A32=1,N(C32),IF(N(F32)=0,MAX(0,N(C32)-N(E32)*N(K31)),MAX(0,N(C32)*(1+N(F32))^N(K31)-N(E32)*(((1+N(F32))^N(K31)-1)/N(F32))))))	=IF(N(C32)<=0,"",IF(N(I32)<=0,0,IFERROR(ROUNDUP(NPER(N(F32),-N(H32),N(I32)),0),600)))	=IF(N(C32)<=0,"",IF(A32=1,N(J32),N(K31)+N(J32)))	=IF(N(C32)<=0,"",IF(N(J32)<=0,0,(N(I32)-N(C32)+N(E32)*IF(A32=1,0,N(K31)))+(MAX(0,N(J32)-1)*N(H32)+IF(N(F32)=0,MAX(0,N(I32)-N(H32)*(N(J32)-1)),MAX(0,N(I32)*(1+N(F32))^(N(J32)-1)-N(H32)*(((1+N(F32))^(N(J32)-1)-1)/N(F32))))*(1+N(F32))-N(I32))))	=IF(N(C32)<=0,"",IF(A32=1,N(L32),N(M31)+N(L32)))
7	=IFERROR(INDEX($A$6:$A$20,MATCH(A33,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A33,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A33,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A33,$E$6:$E$20,0)),"")	=IF(N(D33)<=0,"",N(D33)/100/12)	=IF(N(C33)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A33,$D$6:$D$20))	=IF(N(C33)<=0,"",N(E33)+N(G33))	=IF(N(C33)<=0,"",IF(A33=1,N(C33),IF(N(F33)=0,MAX(0,N(C33)-N(E33)*N(K32)),MAX(0,N(C33)*(1+N(F33))^N(K32)-N(E33)*(((1+N(F33))^N(K32)-1)/N(F33))))))	=IF(N(C33)<=0,"",IF(N(I33)<=0,0,IFERROR(ROUNDUP(NPER(N(F33),-N(H33),N(I33)),0),600)))	=IF(N(C33)<=0,"",IF(A33=1,N(J33),N(K32)+N(J33)))	=IF(N(C33)<=0,"",IF(N(J33)<=0,0,(N(I33)-N(C33)+N(E33)*IF(A33=1,0,N(K32)))+(MAX(0,N(J33)-1)*N(H33)+IF(N(F33)=0,MAX(0,N(I33)-N(H33)*(N(J33)-1)),MAX(0,N(I33)*(1+N(F33))^(N(J33)-1)-N(H33)*(((1+N(F33))^(N(J33)-1)-1)/N(F33))))*(1+N(F33))-N(I33))))	=IF(N(C33)<=0,"",IF(A33=1,N(L33),N(M32)+N(L33)))
8	=IFERROR(INDEX($A$6:$A$20,MATCH(A34,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A34,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A34,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A34,$E$6:$E$20,0)),"")	=IF(N(D34)<=0,"",N(D34)/100/12)	=IF(N(C34)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A34,$D$6:$D$20))	=IF(N(C34)<=0,"",N(E34)+N(G34))	=IF(N(C34)<=0,"",IF(A34=1,N(C34),IF(N(F34)=0,MAX(0,N(C34)-N(E34)*N(K33)),MAX(0,N(C34)*(1+N(F34))^N(K33)-N(E34)*(((1+N(F34))^N(K33)-1)/N(F34))))))	=IF(N(C34)<=0,"",IF(N(I34)<=0,0,IFERROR(ROUNDUP(NPER(N(F34),-N(H34),N(I34)),0),600)))	=IF(N(C34)<=0,"",IF(A34=1,N(J34),N(K33)+N(J34)))	=IF(N(C34)<=0,"",IF(N(J34)<=0,0,(N(I34)-N(C34)+N(E34)*IF(A34=1,0,N(K33)))+(MAX(0,N(J34)-1)*N(H34)+IF(N(F34)=0,MAX(0,N(I34)-N(H34)*(N(J34)-1)),MAX(0,N(I34)*(1+N(F34))^(N(J34)-1)-N(H34)*(((1+N(F34))^(N(J34)-1)-1)/N(F34))))*(1+N(F34))-N(I34))))	=IF(N(C34)<=0,"",IF(A34=1,N(L34),N(M33)+N(L34)))
9	=IFERROR(INDEX($A$6:$A$20,MATCH(A35,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A35,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A35,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A35,$E$6:$E$20,0)),"")	=IF(N(D35)<=0,"",N(D35)/100/12)	=IF(N(C35)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A35,$D$6:$D$20))	=IF(N(C35)<=0,"",N(E35)+N(G35))	=IF(N(C35)<=0,"",IF(A35=1,N(C35),IF(N(F35)=0,MAX(0,N(C35)-N(E35)*N(K34)),MAX(0,N(C35)*(1+N(F35))^N(K34)-N(E35)*(((1+N(F35))^N(K34)-1)/N(F35))))))	=IF(N(C35)<=0,"",IF(N(I35)<=0,0,IFERROR(ROUNDUP(NPER(N(F35),-N(H35),N(I35)),0),600)))	=IF(N(C35)<=0,"",IF(A35=1,N(J35),N(K34)+N(J35)))	=IF(N(C35)<=0,"",IF(N(J35)<=0,0,(N(I35)-N(C35)+N(E35)*IF(A35=1,0,N(K34)))+(MAX(0,N(J35)-1)*N(H35)+IF(N(F35)=0,MAX(0,N(I35)-N(H35)*(N(J35)-1)),MAX(0,N(I35)*(1+N(F35))^(N(J35)-1)-N(H35)*(((1+N(F35))^(N(J35)-1)-1)/N(F35))))*(1+N(F35))-N(I35))))	=IF(N(C35)<=0,"",IF(A35=1,N(L35),N(M34)+N(L35)))
10	=IFERROR(INDEX($A$6:$A$20,MATCH(A36,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A36,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A36,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A36,$E$6:$E$20,0)),"")	=IF(N(D36)<=0,"",N(D36)/100/12)	=IF(N(C36)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A36,$D$6:$D$20))	=IF(N(C36)<=0,"",N(E36)+N(G36))	=IF(N(C36)<=0,"",IF(A36=1,N(C36),IF(N(F36)=0,MAX(0,N(C36)-N(E36)*N(K35)),MAX(0,N(C36)*(1+N(F36))^N(K35)-N(E36)*(((1+N(F36))^N(K35)-1)/N(F36))))))	=IF(N(C36)<=0,"",IF(N(I36)<=0,0,IFERROR(ROUNDUP(NPER(N(F36),-N(H36),N(I36)),0),600)))	=IF(N(C36)<=0,"",IF(A36=1,N(J36),N(K35)+N(J36)))	=IF(N(C36)<=0,"",IF(N(J36)<=0,0,(N(I36)-N(C36)+N(E36)*IF(A36=1,0,N(K35)))+(MAX(0,N(J36)-1)*N(H36)+IF(N(F36)=0,MAX(0,N(I36)-N(H36)*(N(J36)-1)),MAX(0,N(I36)*(1+N(F36))^(N(J36)-1)-N(H36)*(((1+N(F36))^(N(J36)-1)-1)/N(F36))))*(1+N(F36))-N(I36))))	=IF(N(C36)<=0,"",IF(A36=1,N(L36),N(M35)+N(L36)))
11	=IFERROR(INDEX($A$6:$A$20,MATCH(A37,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A37,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A37,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A37,$E$6:$E$20,0)),"")	=IF(N(D37)<=0,"",N(D37)/100/12)	=IF(N(C37)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A37,$D$6:$D$20))	=IF(N(C37)<=0,"",N(E37)+N(G37))	=IF(N(C37)<=0,"",IF(A37=1,N(C37),IF(N(F37)=0,MAX(0,N(C37)-N(E37)*N(K36)),MAX(0,N(C37)*(1+N(F37))^N(K36)-N(E37)*(((1+N(F37))^N(K36)-1)/N(F37))))))	=IF(N(C37)<=0,"",IF(N(I37)<=0,0,IFERROR(ROUNDUP(NPER(N(F37),-N(H37),N(I37)),0),600)))	=IF(N(C37)<=0,"",IF(A37=1,N(J37),N(K36)+N(J37)))	=IF(N(C37)<=0,"",IF(N(J37)<=0,0,(N(I37)-N(C37)+N(E37)*IF(A37=1,0,N(K36)))+(MAX(0,N(J37)-1)*N(H37)+IF(N(F37)=0,MAX(0,N(I37)-N(H37)*(N(J37)-1)),MAX(0,N(I37)*(1+N(F37))^(N(J37)-1)-N(H37)*(((1+N(F37))^(N(J37)-1)-1)/N(F37))))*(1+N(F37))-N(I37))))	=IF(N(C37)<=0,"",IF(A37=1,N(L37),N(M36)+N(L37)))
12	=IFERROR(INDEX($A$6:$A$20,MATCH(A38,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A38,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A38,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A38,$E$6:$E$20,0)),"")	=IF(N(D38)<=0,"",N(D38)/100/12)	=IF(N(C38)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A38,$D$6:$D$20))	=IF(N(C38)<=0,"",N(E38)+N(G38))	=IF(N(C38)<=0,"",IF(A38=1,N(C38),IF(N(F38)=0,MAX(0,N(C38)-N(E38)*N(K37)),MAX(0,N(C38)*(1+N(F38))^N(K37)-N(E38)*(((1+N(F38))^N(K37)-1)/N(F38))))))	=IF(N(C38)<=0,"",IF(N(I38)<=0,0,IFERROR(ROUNDUP(NPER(N(F38),-N(H38),N(I38)),0),600)))	=IF(N(C38)<=0,"",IF(A38=1,N(J38),N(K37)+N(J38)))	=IF(N(C38)<=0,"",IF(N(J38)<=0,0,(N(I38)-N(C38)+N(E38)*IF(A38=1,0,N(K37)))+(MAX(0,N(J38)-1)*N(H38)+IF(N(F38)=0,MAX(0,N(I38)-N(H38)*(N(J38)-1)),MAX(0,N(I38)*(1+N(F38))^(N(J38)-1)-N(H38)*(((1+N(F38))^(N(J38)-1)-1)/N(F38))))*(1+N(F38))-N(I38))))	=IF(N(C38)<=0,"",IF(A38=1,N(L38),N(M37)+N(L38)))
13	=IFERROR(INDEX($A$6:$A$20,MATCH(A39,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A39,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A39,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A39,$E$6:$E$20,0)),"")	=IF(N(D39)<=0,"",N(D39)/100/12)	=IF(N(C39)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A39,$D$6:$D$20))	=IF(N(C39)<=0,"",N(E39)+N(G39))	=IF(N(C39)<=0,"",IF(A39=1,N(C39),IF(N(F39)=0,MAX(0,N(C39)-N(E39)*N(K38)),MAX(0,N(C39)*(1+N(F39))^N(K38)-N(E39)*(((1+N(F39))^N(K38)-1)/N(F39))))))	=IF(N(C39)<=0,"",IF(N(I39)<=0,0,IFERROR(ROUNDUP(NPER(N(F39),-N(H39),N(I39)),0),600)))	=IF(N(C39)<=0,"",IF(A39=1,N(J39),N(K38)+N(J39)))	=IF(N(C39)<=0,"",IF(N(J39)<=0,0,(N(I39)-N(C39)+N(E39)*IF(A39=1,0,N(K38)))+(MAX(0,N(J39)-1)*N(H39)+IF(N(F39)=0,MAX(0,N(I39)-N(H39)*(N(J39)-1)),MAX(0,N(I39)*(1+N(F39))^(N(J39)-1)-N(H39)*(((1+N(F39))^(N(J39)-1)-1)/N(F39))))*(1+N(F39))-N(I39))))	=IF(N(C39)<=0,"",IF(A39=1,N(L39),N(M38)+N(L39)))
14	=IFERROR(INDEX($A$6:$A$20,MATCH(A40,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A40,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A40,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A40,$E$6:$E$20,0)),"")	=IF(N(D40)<=0,"",N(D40)/100/12)	=IF(N(C40)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A40,$D$6:$D$20))	=IF(N(C40)<=0,"",N(E40)+N(G40))	=IF(N(C40)<=0,"",IF(A40=1,N(C40),IF(N(F40)=0,MAX(0,N(C40)-N(E40)*N(K39)),MAX(0,N(C40)*(1+N(F40))^N(K39)-N(E40)*(((1+N(F40))^N(K39)-1)/N(F40))))))	=IF(N(C40)<=0,"",IF(N(I40)<=0,0,IFERROR(ROUNDUP(NPER(N(F40),-N(H40),N(I40)),0),600)))	=IF(N(C40)<=0,"",IF(A40=1,N(J40),N(K39)+N(J40)))	=IF(N(C40)<=0,"",IF(N(J40)<=0,0,(N(I40)-N(C40)+N(E40)*IF(A40=1,0,N(K39)))+(MAX(0,N(J40)-1)*N(H40)+IF(N(F40)=0,MAX(0,N(I40)-N(H40)*(N(J40)-1)),MAX(0,N(I40)*(1+N(F40))^(N(J40)-1)-N(H40)*(((1+N(F40))^(N(J40)-1)-1)/N(F40))))*(1+N(F40))-N(I40))))	=IF(N(C40)<=0,"",IF(A40=1,N(L40),N(M39)+N(L40)))
15	=IFERROR(INDEX($A$6:$A$20,MATCH(A41,$E$6:$E$20,0)),"")	=IFERROR(INDEX($B$6:$B$20,MATCH(A41,$E$6:$E$20,0)),"")	=IFERROR(INDEX($C$6:$C$20,MATCH(A41,$E$6:$E$20,0)),"")	=IFERROR(INDEX($D$6:$D$20,MATCH(A41,$E$6:$E$20,0)),"")	=IF(N(D41)<=0,"",N(D41)/100/12)	=IF(N(C41)<=0,"",$B$22+SUMIF($E$6:$E$20,"<"&A41,$D$6:$D$20))	=IF(N(C41)<=0,"",N(E41)+N(G41))	=IF(N(C41)<=0,"",IF(A41=1,N(C41),IF(N(F41)=0,MAX(0,N(C41)-N(E41)*N(K40)),MAX(0,N(C41)*(1+N(F41))^N(K40)-N(E41)*(((1+N(F41))^N(K40)-1)/N(F41))))))	=IF(N(C41)<=0,"",IF(N(I41)<=0,0,IFERROR(ROUNDUP(NPER(N(F41),-N(H41),N(I41)),0),600)))	=IF(N(C41)<=0,"",IF(A41=1,N(J41),N(K40)+N(J41)))	=IF(N(C41)<=0,"",IF(N(J41)<=0,0,(N(I41)-N(C41)+N(E41)*IF(A41=1,0,N(K40)))+(MAX(0,N(J41)-1)*N(H41)+IF(N(F41)=0,MAX(0,N(I41)-N(H41)*(N(J41)-1)),MAX(0,N(I41)*(1+N(F41))^(N(J41)-1)-N(H41)*(((1+N(F41))^(N(J41)-1)-1)/N(F41))))*(1+N(F41))-N(I41))))	=IF(N(C41)<=0,"",IF(A41=1,N(L41),N(M40)+N(L41)))

Debt-free in (months)	=MAX(K27:K41)
Total interest	=SUM(L27:L41)
Total paid (principal + interest)	=SUM(C27:C41)+SUM(L27:L41)

How interest is worked out: monthly rate = APR / 12 / 100. Each month the interest is added to the balance first, then the payment comes off. That is the same order the calculator on debtsnowballtool.com uses.
Payment it gets = its own minimum + your extra + the minimums of every debt already cleared.
If 'Months to clear' shows 600, the payment on that debt does not cover its monthly interest. Raise the extra.
Minimums are treated as a fixed dollar amount. Real card minimums are usually a percentage of the balance with a floor, and promotional rates that expire are not modelled here.
Blank rows are fine - leave a row empty and it drops out of the plan.
