Back to Recipes
Reporting & Analytics

Excel: Inventory On Hand

Active serialized inventory, one row per container

easy ~5 min setup 2 components

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.

InputWhat it does
part_nosubstring match on Part No or Part Name
locationsubstring match on Location
statusexact match on Container Status, e.g. "OK"
shippable_onlytrue = keep only containers whose status allows shipping
min_days_since_movekeep only containers untouched this many days
max_rowskeep 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

Excel Data - Inventory On Hand Script Primary
Excel Export - Inventory On Hand ODBC Query

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

Install This Recipe

Sign in to your DataMagik workspace to install this recipe.

Sign In to Install

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

Tags

excelpower bipower queryodbcplexreporting