Each variant row includes an available column, reflecting whether the store currently shows it as purchasable - filter for "false" and you have a list of every sold-out (or otherwise unavailable) variant across the whole catalog in seconds.
One honest limit: this is availability, not an exact stock count. Shopify’s public product feed doesn’t expose how many units are left, only whether the storefront currently allows a purchase - so you can see that something is sold out, not how close it was to selling out.
For a one-time competitive check or a merchandising audit, that availability flag is usually exactly what’s needed.
Run side by side with the price columns, this also surfaces a slightly different question worth asking: which sold-out items still show a price at all, versus ones effectively retired from the catalog entirely - a distinction that’s easy to miss product by product but obvious once it’s all in one sheet.