2 min readfrom Microsoft Excel | Help & Support with your Formula, Macro, and VBA problems | A Reddit Community

building a deck of drawable cards in excel

Our take

Building a drawable card deck in Google Sheets can enhance your online deck-building game experience. To prevent cards from being drawn multiple times without shuffling, consider using checkboxes to mark cards as "drawn," effectively removing them from the selection pool. For user-friendly customization, allow players to add or remove cards from their decks through an intuitive interface, rather than requiring code modifications. Additionally, explore functions that enable drawn numbers to be listed, ensuring players can track their selections easily.

In a world where tabletop enthusiasts are increasingly turning to virtual platforms, the challenge of translating a physical deck‑building experience into a spreadsheet is both timely and instructive. The poster’s quest—using Google Sheets (or Excel) to generate unique card draws, prevent repeats until a “shuffle,” and allow end‑users to modify the deck without touching code—touches on a broader trend: democratizing game design with accessible tools. The same principles apply to any domain where users want to craft personalized data sets without becoming spreadsheet experts. For those who have followed our discussions on AI‑enhanced data workflows, this scenario dovetails neatly with the ideas in “Healthcare (insurance, pop health, VBC) - actual AI use cases?” and “How to find missing data.” The former illustrates how domain experts can harness AI to streamline complex processes, while the latter demonstrates practical techniques for cleaning data—skills that are directly relevant to building a robust, repeatable card‑drawing system.

At the heart of the problem lies a classic random‑selection dilemma: pick five distinct numbers from a pool, then lock them out until a reset. The simplest solution is to maintain a dynamic list of “available” cards, removing each drawn number and restoring the full set only when the user signals a shuffle. In Google Sheets, this can be achieved with a combination of the `FILTER` function to exclude drawn IDs and the `RANDARRAY` or `SORTBY` function to randomise the remaining pool. By tying the removal logic to a checkbox that reflects the drawn state—an approach the poster is already exploring—one can create an invisible ledger that updates automatically. The key is to separate data storage (the master list of card IDs and their descriptions) from the user interface (the checkboxes and draw button). When a draw occurs, the script or formula should flag the selected IDs, and the `FILTER` function should drop them from the candidate pool. This pattern is not unlike the way we handle missing data: we identify the problematic rows, exclude them from analysis, and reintegrate them only when the dataset is refreshed.

The second challenge—enabling non‑technical users to add or remove cards—requires a user‑friendly front end. A practical approach is to expose a simple table where each row represents a card, with columns for the card’s name, description, and a toggle that indicates whether the card is active. The active state can be controlled via a checkbox that feeds into a `FILTER` function to build the active deck. The draw logic then operates solely on this filtered list, ensuring that only selectable cards are considered. By encapsulating all modifications within this table, the user never needs to touch formulas or scripts. The spreadsheet becomes a living document that evolves as the game’s rules change, mirroring the flexibility we champion in our AI‑native spreadsheet solutions.

Beyond the immediate technical fixes, this exercise illustrates why spreadsheet‑based game engines matter. They lower the barrier to entry for designers who want to prototype quickly, test balance, and iterate without committing to a full‑blown development environment. For communities that thrive on creativity and adaptability—think of the rapid prototyping seen in “Unable to Remove Floating Copilot Button”—the ability to tweak a deck with a few clicks can keep the momentum alive. Moreover, the skills honed here—managing dynamic ranges, automating state changes, and exposing user controls—scale to any domain where data must be curated and presented in real time.

Looking ahead, the convergence of AI and spreadsheet technology promises even smoother experiences. Imagine a system that not only prevents duplicate draws but also suggests optimal card combinations based on player history or deck balance metrics. Such insights would transform a simple table into a strategic companion, guiding users toward better decisions without requiring deep statistical knowledge. The question, then, is how far we can push this synergy while keeping the interface intuitive. As we continue to refine our AI‑native spreadsheet tools, we invite designers, educators, and hobbyists alike to experiment, share, and evolve the next generation of accessible, data‑driven game mechanics.

I am attempting to use excel (actually google sheets, if that's relevant) to assist in running a deck building themed game over the internet. I'm not particularly experienced and am having trouble figuring out how to do certain things. I've managed to get a check box working that, when pressed, generates 5 numbers without repeating, and then using those numbers I look up a description of the numbered card. I have 2 main issues.
One, is it possible to make it so cards cannot be draw again without "shuffling" the deck. I was thinking I could add a check box that automatically gets checked when the number gets generated to remove it from the list of options, but I don't know if that's even possible much less how to do it.
Two, I want to make it so the player can add or remove cards from their deck without having to go into the code and change things around. Inexperienced as I am anyone I'm going to add to this has no clue how any of this works.
also if anyone can tell me how to make it so a generated number adds to a list instead of just getting a new number that would be helpful, but I'm sure I can find out how to do that elsewhere, just haven't looked yet. Thank you for your time.

submitted by /u/skorn-lamoin
[link] [comments]

Read on the original site

Open the publisher's page for the full experience

View original article

Tagged with