Excel Sort a Certain Column according to the Specific Order of Key Words It Contains

Problem description & analysis

Below is Excel data:


A B
1 Parent Column Modifier (Column)
2 Jack lives in the village Rose
3 As mentioned by jack Village
4 Rose already spoke to jack about last night Jack
5 Rose left the village
6 rose was their yesterday

We are trying to sort column A (Parent Column) according to the order of values in column B (Modifier (Column)), the list of key words. Below is the desired result:


A B
1 Parent Column Modifier (Column)
2 Rose already spoke to jack about last night Rose
3 Rose left the village Village
4 rose was their yesterday Jack
5 Jack lives in the village
6 As mentioned by jack

Solution

Use the SPL XLL plug-in

Write the following formula in a blank cell

=spl("=(?1.conj().sort((X=lower(~).words(),b=?2.conj().(lower(~)),X.min(b.pselect(~:X.~))))).concat@n()",A2:A6,B2:B4)

As shown:..

Return:

..

Explanation:

Convert each member (a sentence) of column A into lowercase, split it into a sequence of words, find the sequence number of each word in column B, get value at the minimum sequence number from the sentence (the word with the highest priority), and sort A according to the order of values at the smallest sequence numbers.

Q & A Collection

https://stackoverflow.com/questions/63649754/excel-i-want-to-sort-a-column-based-on-modifier-list-of-words