Excel: Inventory On Hand
Active serialized inventory, one row per container
Overview
Active serialized inventory, one row per container
One row per active container with quantity on hand: the part, location, serial number, container status and type, quantity, net and gross weight, the allow-ship, defective and scrap status flags, the job it belongs to, add and update dates, and both age in days and days since it last moved.
Status is joined on the status text rather than a key — Plex's container-status table carries both, and only the text matches.
Take the .xlsx link rather than .csv. Part numbers that start with a zero are common, and CSV carries no type information, so Excel would quietly turn 00124735 into 124735. The xlsx feed keeps it as text.
How to connect it
Open the script, click Connect to Excel and copy the link. In Excel, Data → From Web, paste, choose Anonymous, and Load. From then on Refresh All re-runs the query — there is no exported file to hunt down, nothing is scheduled and nothing is emailed around.
How current is it?
This table reads Plex over its ODBC reporting connection, not the live transactional system. That copy can trail production by up to about four hours, so treat the numbers as recent rather than real-time. Refreshing re-runs the query, but it re-runs it against the same reporting copy — it does not reach past it.
That is the right trade for reporting, review meetings and models. Anything that has to be accurate to the minute — shipping a container, releasing a job — belongs in Plex itself, not in a workbook.
Filters
Every input is an optional URL query parameter on the link, so one script serves a whole team: two sheets can be the same feed with different values. For example ?part_no=VALUE&location=VALUE.
| Input | What it does |
|---|---|
part_no | substring match on Part No or Part Name |
location | substring match on Location |
status | exact match on Container Status, e.g. "OK" |
shippable_only | true = keep only containers whose status allows shipping |
min_days_since_move | keep only containers untouched this many days |
max_rows | keep only the first N rows |
What this installs
The Excel Data - Inventory On Hand script and one saved SQL query it runs on. The SQL lives in the SQL editor, so a column you want added is an edit in one place that every workbook picks up on its next refresh. The table has 21 columns as shipped, and no row cap — a cap would truncate silently and the workbook would look complete.
What you need
One ODBC credential pointed at your Plex reporting connection. The install wizard asks for it once and applies it to the query. If you do not have one yet, create it first in Script Engine → Credentials with type odbc.
What's Included
Use Cases
- Find slow-moving stock with ?min_days_since_move=180
- Reconcile a physical count against the container records
- Check what is actually shippable, not just what is on hand
- Model inventory aging in Power BI without a hand-built extract
Benefits
- Re-queries the source on refresh instead of holding an emailed copy
- Age and days-since-move already computed
- Shippability comes from the status flags, not a guess
- No row cap, so a large container table arrives complete
Configuration Steps
After installation, you'll configure:
- Plex ODBC connection