Dungeon depth, spell slots, and D20 results for campaign sheets.
=REPT("🕯️",MIN(A1,B1))&REPT("・",MAX(0,B1-A1))&"💀"
🕯️🕯️🕯️・・・・・💀
=IF(A1=20,"🎲 NAT 20!",IF(A1=1,"🎲 Fumble!",A1&" 🎲"))
🎲 NAT 20!
=REPT("🔮",MIN(A1,B1))&REPT("○",MAX(0,B1-A1))&" spell slots"
🔮🔮🔮○○ spell slots
=REPT("🚪",MIN(A1,B1))&REPT("・",MAX(0,B1-A1))&"👹"
🚪🚪🚪・・・・・・・👹
=REPT("🗝️",A1)&REPT("🚪",MAX(0,B1-A1))
🗝️🗝️🗝️🚪🚪
=REPT("🔥",MIN(A1,B1))&REPT("🕯️",MAX(0,B1-A1))
🔥🔥🔥🕯️🕯️
=CHOOSE(A1,"⚔️ 1st","🗡️ 2nd","🛡️ 3rd","🏹 4th","✨ 5th")
⚔️ 1st
=REPT("❤️",MIN(A1,B1))&REPT("🧡",MIN(C1,MAX(0,B1-A1)))&REPT("🖤",MAX(0,B1-A1-MIN(C1,MAX(0,B1-A1))))
❤️❤️❤️🧡🧡🖤🖤🖤
=REPT("🌙",MIN(A1,8))&REPT("○",MAX(0,8-A1))&" hrs to long rest"
🌙🌙🌙○○○○○ hrs to long rest
=REPT("●",MIN(A1,2))&REPT("○",MAX(0,2-A1))&" short rests"
●● short rests
="Session "&A1&": "&REPT("📜",MIN(A1,10))
Session 3: 📜📜📜
=REPT("⭐",MIN(ROUND(A1/B1*5,0),5))&REPT("○",MAX(0,5-ROUND(A1/B1*5,0)))&" "&A1&"/"&B1&" XP"
⭐⭐⭐○○ 600/1000 XP
=CHOOSE(A1,"⚖️ Lawful Good","🕊️ Neutral Good","⚔️ True Neutral","🔥 Chaotic Good","💀 Chaotic Evil")
⚔️ True Neutral
=CHOOSE(A1,"⚪ Common","🟢 Uncommon","🔵 Rare","🟣 Very Rare","🟠 Legendary")
🟣 Very Rare
=REPT("🗝️",MIN(A1,B1))&REPT("⚠️",MAX(0,B1-A1))&" disarm"
🗝️🗝️🗝️⚠️⚠️⚠️⚠️ disarm
=IF(A1>=B1,REPT("👁️",3)&" spotted!",REPT("🌫️",3)&" missed")
👁️👁️👁️ spotted!
=REPT("🎵",MIN(A1,B1))&REPT("○",MAX(0,B1-A1))&" inspiration"
🎵🎵🎵○○ inspiration
=REPT("✨",MIN(A1,B1))&REPT("💥",IF(A1>=B1,1,0))&REPT("○",MAX(0,B1-A1-IF(A1>=B1,1,0)))&" wild magic"
✨✨✨✨✨✨✨💥○○ wild magic
=REPT("🧙",1)&REPT("🗡️",MAX(0,MIN(A1-1,4)))&REPT("・",MAX(0,B1-A1))&"🏰"
🧙🗡️🗡️・・・・・🏰
Related formula guides
Go deeper with Better Sheets
Members get full courses on CHAR, REPT, and dashboard design, plus hundreds of Google Sheets tutorials. Copy-paste formulas here stay free.
See membership options