項目1と項目3が1対1対応するのであれば、こちらを参考に項目1の並び順をオフビジュアルフィールド(項目3)を利用して並び替える方法が取れるかもしれません。
次の図は、User A, B, C を Typeの数字に従って並び替えています。ただし、並び替えにはUser毎のTypeの最大値を使っているため、1Userが複数のTypeの数字を取る場合は期待と異なる動作になる可能性があります。(そのため項目1と項目3の一対一対応が必要)
項目1と項目3が1対1対応するのであれば、こちらを参考に項目1の並び順をオフビジュアルフィールド(項目3)を利用して並び替える方法が取れるかもしれません。
次の図は、User A, B, C を Typeの数字に従って並び替えています。ただし、並び替えにはUser毎のTypeの最大値を使っているため、1Userが複数のTypeの数字を取る場合は期待と異なる動作になる可能性があります。(そのため項目1と項目3の一対一対応が必要)