⚙️ Settings
Number Extractor — Pull Numbers, Prices & Percentages from Text
The Number Extractor scans any block of text and pulls out every number it finds — integers, decimals, and percentages — leaving the surrounding text behind. It's built for analysts who need to extract numbers from text pasted from a report, invoice, or web page, without manually copying each figure one at a time. Paste your text and get a clean list of every numeric value found.
⚡ Key Takeaways
- Pulls integers, decimals, and percentages out of narrative text automatically.
- Strips currency symbols and thousands-separator commas from the extracted values.
- Doesn't distinguish a price from a quantity — review the results for context.
- Great as a fast first pass before manually confirming which figures matter.
What, Who, When & Why
| What it's for | Pulls every integer, decimal, and percentage out of a block of unstructured text. |
|---|---|
| Who it's for | Analysts who need to pull figures out of a pasted report, email, or web page without manually copying each number. |
| When to use it | When you've received data as narrative text (a report, an email, a pasted table) rather than a clean spreadsheet, and need just the numbers. |
| Why it's needed | Manually scanning a paragraph and copying each number one at a time is slow and easy to miss a figure, especially in longer text. |
| Best way to use it | Use it as a fast first pass to see every number mentioned, then manually review the extracted list since the tool doesn't know which number means what. |
How to Use the Number Extractor
- Paste any text containing numbers into the Input box — a report, email, log file, or pasted table.
- Click Extract to pull out every number found.
- The Output box lists each extracted number, one per line.
- Click Copy to grab the extracted list.
Example
Given this pasted paragraph:
Revenue grew 12.5% to $4,200 this quarter, with 30 new customers and a 2% churn rate.
The Number Extractor pulls out:
12.5 4200 30 2
This turns unstructured, narrative text into a clean list of figures ready for further analysis or a spreadsheet — no need to manually scan a paragraph and copy each number individually, which becomes tedious and error-prone with longer reports.
Key Features
- Detects integers, decimals, and percentage values within any text.
- Ignores surrounding words and punctuation, returning only the numeric values.
- Handles numbers embedded in sentences, tables, or pasted reports.
- One-click copy of the extracted list.
Practical Use Cases
- Pulling metrics from reports: extract all figures from a pasted paragraph or PDF-copied text for quick review.
- Isolating prices: pull dollar amounts out of a list of product descriptions.
- Extracting IDs: pull numeric IDs from log lines or error messages.
- Quick data audits: scan a large block of text to see every number mentioned without reading line by line.
- Preparing figures for a spreadsheet: extract numbers from a narrative report to paste into a calculation or chart.
Tips for Best Results
- Review the extracted list against the source text if precision matters, since context (like currency or units) is stripped away along with the surrounding words.
- Combine with the Alphabetical Sorter afterward if you want the extracted numbers sorted for easier scanning.
- Use this as a first pass on long reports to quickly see every figure mentioned before deciding which ones are relevant to your analysis.
Related Terminology
The tool identifies numeric patterns including whole numbers, decimal numbers (with a decimal point), and percentages (numbers followed by a % sign). Currency symbols, commas used as thousands separators, and surrounding text are stripped away, leaving just the underlying numeric value — so $4,200 becomes simply 4200 in the output.
Important Considerations
Because the extractor looks for numeric patterns rather than understanding context, it doesn't distinguish between different types of numbers (like a price versus a quantity versus a year) — all numeric values are extracted the same way, so you may need to manually identify which figures matter for your specific analysis afterward. Numbers embedded within longer strings, like part numbers or codes that mix letters and digits, are extracted based on their numeric portions and may need additional review.
Related Tools
Once you've extracted your numbers, the Alphabetical Sorter can sort them, or the Line Number Stamper can add reference numbers to the list. For converting the results into a SQL-ready format, try the SQL Value Generator.
Frequently Asked Questions
How do I extract numbers from a block of text?
Paste the text into the Input box and click Extract — every number found, including decimals and percentages, is listed in the Output box.
Does it extract percentages and decimals, or just whole numbers?
It extracts all three: whole numbers, decimal numbers, and percentages.
Can it tell the difference between a price and a quantity?
No, all numeric values are extracted the same way regardless of context — you'll need to review the results to identify which numbers represent what.
Does it keep the currency symbol with dollar amounts?
No, symbols like $ and commas used as thousands separators are stripped away, leaving just the underlying numeric value.
WITH recent_orders AS (
SELECT
customer_id,
order_id,
order_date,
total_amount
FROM orders
WHERE order_date >= DATEADD(day, -30, GETDATE())
)
SELECT
customer_id,
COUNT(order_id) AS order_count,
SUM(total_amount) AS total_spent
FROM recent_orders
GROUP BY customer_id
ORDER BY total_spent DESC;
WITH RECURSIVE employee_hierarchy AS (
-- Anchor: top-level rows (no manager)
SELECT
employee_id,
manager_id,
employee_name,
1 AS level
FROM employees
WHERE manager_id IS NULL
UNION ALL
-- Recursive: join children to their parent's result
SELECT
e.employee_id,
e.manager_id,
e.employee_name,
eh.level + 1
FROM employees e
INNER JOIN employee_hierarchy eh
ON e.manager_id = eh.employee_id
)
SELECT *
FROM employee_hierarchy
ORDER BY level, employee_name;
-- Note: SQL Server / Oracle: drop the RECURSIVE keyword (just WITH employee_hierarchy AS (...))
SELECT
o.order_id,
c.customer_name,
o.order_date,
p.product_name,
oi.quantity
FROM orders o
INNER JOIN customers c
ON o.customer_id = c.customer_id
LEFT JOIN order_items oi
ON o.order_id = oi.order_id
LEFT JOIN products p
ON oi.product_id = p.product_id
WHERE o.order_date >= '2026-01-01'
ORDER BY o.order_date DESC;
SELECT
DATE_TRUNC('month', order_date) AS order_month, -- PostgreSQL
-- FORMAT(order_date, 'yyyy-MM') AS order_month, -- SQL Server
-- DATE_FORMAT(order_date, '%Y-%m') AS order_month, -- MySQL
COUNT(*) AS order_count,
SUM(total_amount) AS revenue
FROM orders
GROUP BY DATE_TRUNC('month', order_date)
ORDER BY order_month;
SELECT
customer_id,
order_id,
order_date,
total_amount,
ROW_NUMBER() OVER (
PARTITION BY customer_id
ORDER BY order_date DESC
) AS order_rank,
SUM(total_amount) OVER (
PARTITION BY customer_id
ORDER BY order_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM orders;
CREATE PROCEDURE GetCustomerOrders
@CustomerId INT,
@StartDate DATE = NULL,
@EndDate DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
order_id,
order_date,
total_amount
FROM orders
WHERE customer_id = @CustomerId
AND (@StartDate IS NULL OR order_date >= @StartDate)
AND (@EndDate IS NULL OR order_date <= @EndDate)
ORDER BY order_date DESC;
END;
-- Call it: EXEC GetCustomerOrders @CustomerId = 101, @StartDate = '2026-01-01';
MERGE INTO customers AS target
USING staging_customers AS source
ON target.customer_id = source.customer_id
WHEN MATCHED THEN
UPDATE SET
target.customer_name = source.customer_name,
target.email = source.email,
target.updated_at = GETDATE()
WHEN NOT MATCHED THEN
INSERT (customer_id, customer_name, email, created_at)
VALUES (source.customer_id, source.customer_name, source.email, GETDATE());
#FACC15
rgb(250, 204, 21)
rgb(98%, 80%, 8%)
hsl(46, 96%, 53%)
hsv(46, 92%, 98%)
cmyk(0%, 18%, 92%, 2%)
Tools for analysts, developers & QA engineers
33 free, browser-based utilities — text and list tools, SQL helpers, converters, and small productivity apps. Everything runs locally; nothing you type or paste is ever uploaded.
For Analysts
Clean lists, build SQL fragments, and reshape data without opening a spreadsheet.
For Developers
Format SQL, convert data formats, and handle everyday text and encoding tasks.
For QA Engineers
Generate test data, compare text output, and sanitize queries before sharing them.