=SUBSTITUTE(text, old_text, new_text, [instance_num]) replaces what the text says: SUBSTITUTE(A2,"-","") removes every dash. Give instance_num to change only that occurrence: SUBSTITUTE(A2,"-","/",2) changes the second dash only. SUBSTITUTE is case-sensitive.
=REPLACE(old_text, start_num, num_chars, new_text) replaces by position: REPLACE(A2,1,3,"BILL") swaps the first three characters, whatever they are.
Use SUBSTITUTE when you know the text to change, REPLACE when you know where it is. Both leave the original cell alone and return new text, so you can check the result before pasting it over the original as values.