I love me a good challenge, but I don’t think this is possible. The best I can do is find the first place and last place values by connecting all records to a single record in another table, and using rollups in that table with MIN and MAX aggregation functions. Because Airtable’s array functions are currently so limited, there isn’t a way to do anything with the other values to determine their order.
This is definitely not possible (at least not with native Airtable tools). Kanban views work based on the contents of a single select field, and those fields can’t be set via formulas. You could make this work using integration with something like Zapier or Integromat, but the cost to make this update in real time would be prohibitive.
The best way to do this would be to build custom API code that reads the data, determines the ranking order, and updates a single select field appropriately.