A workshop queue is useful only while each job stays attached to its equipment and owner. Sorting the Priority column alone can produce an orderly-looking list that assigns the wrong equipment to the wrong person. The danger is not an obviously broken spreadsheet: it is a plausible queue whose records no longer mean what they meant before.
For an operations coordinator using Excel for Windows desktop, the safe unit of movement is the complete record. Define its boundaries, write down the intended order, and check the associations after sorting. Microsoft explicitly warns that sorting a range within a larger range can disassociate the selected data from its original records.[1]
The MAJLS whole-row sort contract below is an illustrative preparation framework, not a verified MAJLS integration or customer result. All jobs, equipment and people in the example are synthetic. An agent may prepare the contract and comparison; illustrative operations owner Nadia accepts the working copy before anyone uses it to run the workshop.
Define the record before opening Sort
Keep the original workbook untouched. For this example, preserve Workshop-queue-original.xlsx and work in Workshop-queue-working.xlsx, on the Queue sheet. Do not overwrite the original after the sort. The queue has one header row, no totals, no merged cells and no blank separator rows. Every field belonging to a job is inside the rectangle below.
The original data occupies Queue!A1:D6. Columns A through D are Job ID, Priority, Equipment and Owner respectively:
| Job ID | Priority | Equipment | Owner |
|---|---|---|---|
| J-104 | Medium | Bench drill | Omar |
| J-102 | High | Label printer | Lina |
| J-105 | Low | Inspection lamp | Farah |
| J-101 | High | Torque tester | Sami |
| J-103 | Medium | Solder station | Huda |
Priority is a business ordering rule, not an alphabetical one. A to Z would put Low before Medium. Microsoft supports custom lists precisely for values such as High, Medium and Low that need a user-defined sequence.[2] A secondary Job ID sort makes the intended order within each priority explicit rather than relying on the input's incidental arrangement.
Filled MAJLS whole-row sort contract
Use this filled contract alongside the working copy; it is the utility artifact, not a reference to a separate download.
| Contract field | Agreed setting for this example |
|---|---|
| Purpose | Reorder the internal equipment queue; change no field values or job ownership |
| Preserved input | Workshop-queue-original.xlsx, Queue!A1:D6 |
| Working target | Workshop-queue-working.xlsx, Queue!A1:D6 |
| Complete selected range | A1:D6, including every field and the header |
| Header setting | My data has headers: checked |
| Orientation | Sort top to bottom; complete records move vertically |
| First sort level | Priority; Sort On: Cell Values; Order: custom list High, Medium, Low |
| Second sort level | Job ID; Sort On: Cell Values; Order: A to Z |
| Type agreement | Job IDs are consistently text; priorities are exactly High, Medium or Low |
| Visibility gate | All queue rows and columns visible; filters cleared in working copy |
| Identity rule | Each Job ID retains exactly its original Priority, Equipment and Owner |
| Authorized change | Row position only; no deletion, correction, conversion or reassignment |
| Final acceptance | Nadia, illustrative operations owner; pending comparison of every record |
Before sorting, compare the working copy with the preserved input. Check that every listed Job ID appears once, that no job is missing, and that each complete record matches. Record any extra columns in the real queue before adapting this contract: if a Notes column belongs to the job, A1:D6 would no longer be a complete selection.
Apply the declared order
In Excel for Windows desktop, establish the custom list High, Medium, Low. One documented route is to enter those values vertically on a separate helper sheet, select that list, then use File > Options > Advanced > General > Edit Custom Lists > Import.[2] Keep helper cells outside the queue selection.
Return to Queue, explicitly select A1:D6 and choose Data > Sort. Check My data has headers. In Options, confirm the top-to-bottom orientation. Set Sort by to Priority, Sort On to Cell Values, and Order to the High, Medium, Low custom list. Use Add Level for Job ID, Cell Values, A to Z. Microsoft documents multiple sort levels and specifies that higher entries take precedence.[1] Review both levels before confirming.
The expected working-copy result is:
| Job ID | Priority | Equipment | Owner |
|---|---|---|---|
| J-101 | High | Torque tester | Sami |
| J-102 | High | Label printer | Lina |
| J-103 | Medium | Solder station | Huda |
| J-104 | Medium | Bench drill | Omar |
| J-105 | Low | Inspection lamp | Farah |
Stop conditions are part of the contract
Stop if any queue rows are hidden or filtered out. Reveal the full intended queue in the working copy and reconcile its scope before proceeding. Microsoft's guidance calls for unhiding rows and columns before sorting.[1] A visible subset is not evidence that the complete queue has been checked.
Stop on mixed types, blank priorities, unexpected labels or leading spaces. For example, do not silently interpret “Urgent” as High, or change a numeric-looking job identifier to make sorting convenient. Ask Nadia to resolve the intended values and record any separately authorized correction before creating a fresh sort proposal. This contract authorizes ordering, not data repair.
Stop on an incomplete selection. A Priority-only range fails even if Excel offers to continue. Cancel and explicitly reselect the complete rectangle; do not rely on Excel detecting every omitted field. Also stop if duplicate Job IDs make record comparison ambiguous.
Accept associations, not appearances
After sorting, check each expected row against the preserved original by Job ID. In particular, J-104 must still mean Medium, Bench drill, Omar; J-101 must still mean High, Torque tester, Sami. Apply that same check to every row, not just those two examples. Confirm that headers stayed at the top, no records disappeared or appeared, priority groups follow the custom list, and Job IDs ascend within each group.
If any check fails, reject the working copy and rebuild from the untouched original rather than patching displaced cells by eye. Nadia's acceptance remains pending until both ordering and row identity pass. This is a within-table association check, not identifier transfer, entity matching or unit conversion. A tidy order alone is never sufficient evidence that the queue is safe to use.
