Få se om jag missförstår dig rätt. Du vill alltså ha det inmatat som en textsträng med det där formatet?
Då TROR jag att du måste använda dig av verifiering och kolla varenda mellanslag.
Markera det område du vill begränsa
Menyn Data->Verifiering
Ändra kriterierutan till "anpassat" och skriv in en formel i stil med
=OCH(
ÄRTAL(1*(VÄNSTER(A1;2)&EXTEXT(A1;4;2)&EXTEXT(A1;7;3)&EXTEXT(A1;11;1)&EXTEXT(A1;13;3)&EXTEXT(A1;17;1)));
LÄNGD(A1)=17;
EXTEXT(A1;16;1)="-";
EXTEXT(A1;3;1)=" ";EXTEXT(A1;6;1)=" ";EXTEXT(A1;10;1)=" ";EXTEXT(A1;12;1)=" "
)
eller på en rad om det är enklare att kopiera
=OCH(ÄRTAL(1*(VÄNSTER(A1;2)&EXTEXT(A1;4;2)&EXTEXT(A1;7;3)&EXTEXT(A1;11;1)&EXTEXT(A1;13;3)&EXTEXT(A1;17;1)));LÄNGD(A1)=17;EXTEXT(A1;16;1)="-";EXTEXT(A1;3;1)=" ";EXTEXT(A1;6;1)=" ";EXTEXT(A1;10;1)=" ";EXTEXT(A1;12;1)=" ")
Se till att skriva ett vettigt felmeddelande
Ett annat alternativ är att tillåta att folk faktiskt matar in det som ett tal, dvs
894545585655
Och sedan anger du en "talformatkod" för de aktuella cellerna (format->celler->Tal->anpassat), typ:
00" "00" "000" "0" "000-0
Dvs talet blir faktiskt inmatat, och lagrat, som ett tal, men utseendet blir som du vill.
Då kanske det räcker med att kolla om talet har rätt längd?
[<111111111111]"För kort";[>999999999999]"För långt";00" "00" "000" "0" "000-0
Behöver du använda det som text kan du alltid köra en formel i stil med:
=TEXT(A1;"00 00 000 0 000-0")
