Welcome to the community, @Nat_Wiseman! :grinning_face_with_big_eyes: Record order is stored internally by Airtable on a view-by-view basis, but that order isn’t made available to either formulas or scripts (the former largely because formulas operate at the record level, not the table/view level).
However, when using a script—either in the scripting block or an automation—to collect the full list of records in a specific view (i.e. not just the table as a whole), they are collected in the same order that they appear in the view. With that in mind, the script below will add an order label to each record in a specific view.
Add a single line text field to your table to contain the label. Add a Scripting block, paste the script into the editor, tweak the three variable values at the top, and run it to label your records. Just keep in mind that if the record order changes for any reason—whether it be sorting or manual dragging—you’ll have to run the script again to re-label all records.
let tableName = "My Table";
let viewName = "My View";
let labelField = "View Order";
let table = base.getTable(tableName);
let view = table.getView(viewName);
let query = await view.selectRecordsAsync();
let labels = [];
query.records.forEach(record => {
let index = query.records.indexOf(record) + 1;
labels.push({
id: record.id,
fields: {
[labelField]: `${index} of ${query.records.length}`
}
})
});
while (labels.length) {
await table.updateRecordsAsync(labels.slice(0, 50));
labels = labels.slice(50);
}