Несмотря на то, что выиграть конкурсы красоты не получится, это должно сработать:
=PROPER(LEFT(A1,SEARCH("-",A1)-1))&MID(A1,FIND("-",A1),FIND("-",A1,FIND("-",A1)+1)-FIND("-",A1)+1)&PROPER(MID(A1,FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1)))
Согласно вашему комментарию к ОП, вы можете немного его изменить, если мы знаем, что в середине есть только две инициалы:
=PROPER(LEFT(A1,SEARCH("-",A1)-1))&"-"&MID(A1,SEARCH("-",A1)+1,2)&"-"&PROPER(TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1))))
Примечание: это работает только для X-Y-Z
, а не W-X-Y-...-Z
типов.