Эта функция Excel решит проблему, просто вставьте «вход» в ячейку A2 и затем используйте эту функцию в ячейке B2, затем заполните, пока не достигнете B34 (в данном случае).
=IF(LEN(A2)=FIND("|",A2),
IF(MID(A2,1,FIND("|",A2))=IFERROR(MID(A1,1,FIND("|",A1)),""),
MID(A2,1,FIND("|",A2))&MID(A1,FIND("|",A1)+1,99),
IF(MID(A2,1,FIND("|",A2))=MID(A3,1,FIND("|",A3)),
MID(A2,1,FIND("|",A2))&MID(A3,FIND("|",A3)+1,99),
A2)),
A2)
как это работает?
Сначала проверяется, нуждается ли строка в модификации:
LEN(A2)=FIND("|",A2)
, если это так, то сравнивает первую половину строки с предыдущей строкой:
IF(MID(A2,1,FIND("|",A2))=IFERROR(MID(A1,1,FIND("|",A1)),"")`
Примечание: «IFERROR» должен обрабатывать регистр первой строки, потому что функция MID вернет #Value
Если он совпадает, то он объединяет первую половину текущей строки с предыдущей строка вторая половина (это, вероятно, излишне, поскольку 2 строки должны быть идентичны).
MID(A2,1,FIND("|",A2))&MID(A1,FIND("|",A1)+1,99)
вывод:
10166_101|50
10166_101|50
10296_5|50
10296_5|50
10484_5|20
10484_5|20
10692_7|10
10692_7|10
10742_102|100
10742_102|100
10742_102|100
10767_13|30
10767_13|30
10793_9|50
10793_9|50
10863_8|40
10863_8|40
10887_3|40
10887_3|40
10929_2|24
11004_2|10
11151_5|20
11151_5|20
11212_21|80
11447_6|30
11486_9|80
11486_9|80
11510_105|20
11510_105|20
11610_3|10
11610_3|10
11635_7|20
11635_7|20