ਵਿਸ਼ਾ - ਸੂਚੀ
ਇਹ ਟਿਊਟੋਰਿਅਲ ਤੁਹਾਨੂੰ ਸਿਖਾਏਗਾ ਕਿ ਨੇਟਿਵ ਫਾਰਮੂਲੇ ਅਤੇ ਕਸਟਮ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਕਸਲ ਵਿੱਚ ਟੈਕਸਟ ਨੂੰ ਨੰਬਰਾਂ ਤੋਂ ਕਿਵੇਂ ਵੱਖ ਕਰਨਾ ਹੈ। ਤੁਸੀਂ ਇਹ ਵੀ ਸਿੱਖੋਗੇ ਕਿ ਟੈਕਸਟ ਅਤੇ ਨੰਬਰਾਂ ਨੂੰ ਦੋ ਵੱਖ-ਵੱਖ ਕਾਲਮਾਂ ਵਿੱਚ ਕਿਵੇਂ ਵੰਡਣਾ ਹੈ।
ਇਸਦੀ ਕਲਪਨਾ ਕਰੋ: ਤੁਸੀਂ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਕੱਚਾ ਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ ਅਤੇ ਇਹ ਪਤਾ ਲਗਾਓਗੇ ਕਿ ਨੰਬਰ ਇੱਕ ਕਾਲਮ ਵਿੱਚ ਟੈਕਸਟ ਨਾਲ ਮਿਲਾਏ ਗਏ ਹਨ। ਜ਼ਿਆਦਾਤਰ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਨਜ਼ਦੀਕੀ ਜਾਂਚ ਲਈ ਉਹਨਾਂ ਨੂੰ ਵੱਖਰੇ ਕਾਲਮਾਂ ਵਿੱਚ ਰੱਖਣਾ ਯਕੀਨੀ ਤੌਰ 'ਤੇ ਵਧੇਰੇ ਸੁਵਿਧਾਜਨਕ ਹੋਵੇਗਾ।
ਜੇਕਰ ਤੁਸੀਂ ਇੱਕੋ ਜਿਹੇ ਡੇਟਾ ਨਾਲ ਕੰਮ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਸ਼ਾਇਦ ਖੱਬੇ, ਸੱਜੇ ਅਤੇ ਮੱਧ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ। ਇੱਕੋ ਸਥਿਤੀ ਤੋਂ ਅੱਖਰਾਂ ਦੀ ਇੱਕੋ ਜਿਹੀ ਸੰਖਿਆ। ਪਰ ਇਹ ਪ੍ਰਯੋਗਸ਼ਾਲਾ ਦੇ ਟੈਸਟਾਂ ਲਈ ਇੱਕ ਆਦਰਸ਼ ਦ੍ਰਿਸ਼ ਹੈ। ਅਸਲ ਜੀਵਨ ਵਿੱਚ, ਤੁਸੀਂ ਭਿੰਨ ਭਿੰਨ ਡੇਟਾ ਨਾਲ ਨਜਿੱਠਣ ਦੀ ਸੰਭਾਵਨਾ ਰੱਖਦੇ ਹੋ ਜਿੱਥੇ ਨੰਬਰ ਟੈਕਸਟ ਤੋਂ ਪਹਿਲਾਂ, ਟੈਕਸਟ ਤੋਂ ਬਾਅਦ ਜਾਂ ਟੈਕਸਟ ਦੇ ਵਿਚਕਾਰ ਆਉਂਦੇ ਹਨ। ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਉਦਾਹਰਣਾਂ ਇਸ ਕੇਸ ਲਈ ਬਿਲਕੁਲ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ।
ਐਕਸਲ ਸੈੱਲਾਂ ਵਿੱਚ ਟੈਕਸਟ ਨੂੰ ਕਿਵੇਂ ਹਟਾਉਣਾ ਹੈ ਅਤੇ ਨੰਬਰਾਂ ਨੂੰ ਕਿਵੇਂ ਰੱਖਣਾ ਹੈ
ਇਹ ਹੱਲ Excel 365, Excel 2021 ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ , ਅਤੇ ਐਕਸਲ 2019
Microsoft Excel 2019 ਨੇ ਕੁਝ ਨਵੇਂ ਫੰਕਸ਼ਨ ਪੇਸ਼ ਕੀਤੇ ਹਨ ਜੋ ਪੁਰਾਣੇ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਉਪਲਬਧ ਨਹੀਂ ਹਨ, ਅਤੇ ਅਸੀਂ ਅਜਿਹੇ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਜਾ ਰਹੇ ਹਾਂ, ਅਰਥਾਤ TEXTJOIN, ਇੱਕ ਸੈੱਲ ਤੋਂ ਟੈਕਸਟ ਅੱਖਰਾਂ ਨੂੰ ਹਟਾਉਣ ਲਈ। ਸੰਖਿਆਵਾਂ ਵਾਲੇ।
ਆਮ ਫਾਰਮੂਲਾ ਹੈ:
TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT( "1:"&LEN( cell))), 1) *1, ""))ਐਕਸਲ 365 ਅਤੇ 2021 ਵਿੱਚ, ਇਹ ਵੀ ਕੰਮ ਕਰੇਗਾ:
TEXTJOIN("", TRUE,IFERROR(MID( cell, SEQUENCE(LEN( cell)), 1) *1, ""))ਪਹਿਲੀ ਨਜ਼ਰ ਵਿੱਚ, ਫਾਰਮੂਲੇ ਥੋੜੇ ਡਰਾਉਣੇ ਲੱਗ ਸਕਦੇ ਹਨ, ਪਰ ਉਹ ਕੰਮ ਕਰਦੇ ਹਨ :)
ਉਦਾਹਰਣ ਲਈ, A2 ਵਿੱਚ ਨੰਬਰਾਂ ਤੋਂ ਟੈਕਸਟ ਨੂੰ ਹਟਾਉਣ ਲਈ, B2 ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ ਫਾਰਮੂਲਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਦਰਜ ਕਰੋ, ਅਤੇ ਫਿਰ ਇਸਨੂੰ ਲੋੜ ਅਨੁਸਾਰ ਬਹੁਤ ਸਾਰੇ ਸੈੱਲਾਂ ਵਿੱਚ ਕਾਪੀ ਕਰੋ।
ਐਕਸਲ 365 - 2019 ਵਿੱਚ:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))
ਐਕਸਲ 2019 ਵਿੱਚ, ਇਸਨੂੰ Ctrl + Shift + Enter ਨਾਲ ਇੱਕ ਐਰੇ ਫਾਰਮੂਲੇ ਦੇ ਰੂਪ ਵਿੱਚ ਦਾਖਲ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਡਾਇਨਾਮਿਕ ਐਰੇ ਐਕਸਲ ਵਿੱਚ, ਇਹ ਐਂਟਰ ਕੁੰਜੀ ਨਾਲ ਪੂਰਾ ਕੀਤੇ ਇੱਕ ਆਮ ਫਾਰਮੂਲੇ ਦੇ ਤੌਰ ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ।
ਐਕਸਲ 365 ਅਤੇ 2021 ਵਿੱਚ:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))
ਨਤੀਜੇ ਵਜੋਂ, ਸਾਰੇ ਟੈਕਸਟ ਅੱਖਰ ਹਨ ਇੱਕ ਸੈੱਲ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਨੰਬਰ ਰੱਖੇ ਜਾਂਦੇ ਹਨ:
ਇਹ ਫਾਰਮੂਲਾ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:
ਤਰਕ ਨੂੰ ਬਿਹਤਰ ਤਰੀਕੇ ਨਾਲ ਸਮਝਣ ਲਈ, ਆਓ ਜਾਂਚ ਸ਼ੁਰੂ ਕਰੀਏ ਅੰਦਰੋਂ ਫਾਰਮੂਲਾ:
ਤੁਸੀਂ ਕੁੱਲ ਸੰਖਿਆ ਦੇ ਅਨੁਸਾਰੀ ਇੱਕ ਕ੍ਰਮ ਬਣਾਉਣ ਲਈ ROW(INDIRECT("1:"&LEN(string))) ਜਾਂ SEQUENCE(LEN(string)) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ ਸਰੋਤ ਸਤਰ ਵਿੱਚ ਅੱਖਰਾਂ ਦਾ, ਅਤੇ ਫਿਰ ਉਹਨਾਂ ਕ੍ਰਮਵਾਰ ਸੰਖਿਆਵਾਂ ਨੂੰ MID ਫੰਕਸ਼ਨ ਵਿੱਚ ਸ਼ੁਰੂਆਤੀ ਸੰਖਿਆਵਾਂ ਵਜੋਂ ਫੀਡ ਕਰੋ। B2 ਵਿੱਚ, ਫਾਰਮੂਲੇ ਦਾ ਇਹ ਹਿੱਸਾ ਇਸ ਤਰ੍ਹਾਂ ਦਿਸਦਾ ਹੈ:
MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)
MID ਫੰਕਸ਼ਨ A2 ਤੋਂ ਪਹਿਲੇ ਅੱਖਰ ਨੂੰ ਕੱਢਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਐਰੇ ਵਜੋਂ ਵਾਪਸ ਕਰਦਾ ਹੈ:
{"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
ਇਸ ਐਰੇ ਨੂੰ 1 ਨਾਲ ਗੁਣਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਸੰਖਿਆਤਮਕ ਮੁੱਲ ਬਿਨਾਂ ਕਿਸੇ ਬਦਲਾਅ ਦੇ ਜਿਉਂਦੇ ਰਹਿੰਦੇ ਹਨ, ਜਦੋਂ ਕਿ ਇੱਕ ਗੈਰ-ਸੰਖਿਆਤਮਕ ਅੱਖਰ ਨੂੰ ਗੁਣਾ ਕਰਨ ਦੇ ਨਤੀਜੇ ਵਜੋਂ #VALUE! ਗਲਤੀ:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
IFERROR ਫੰਕਸ਼ਨ ਹੈਂਡਲ ਕਰਦਾ ਹੈਇਹ ਗਲਤੀਆਂ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਖਾਲੀ ਸਤਰਾਂ ਨਾਲ ਬਦਲ ਦਿੰਦੀਆਂ ਹਨ:
{2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}
ਇਹ ਅੰਤਮ ਐਰੇ TEXTJOIN ਫੰਕਸ਼ਨ ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਐਰੇ ਵਿੱਚ ਗੈਰ-ਖਾਲੀ ਮੁੱਲਾਂ ਨੂੰ ਜੋੜਦਾ ਹੈ ( ignore_empty ਆਰਗੂਮੈਂਟ ਨੂੰ TRUE 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ) ਡੀਲੀਮੀਟਰ ਲਈ ਖਾਲੀ ਸਤਰ ("") ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ:
TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})
ਟਿਪ। ਐਕਸਲ 2016 - 2007 ਲਈ, ਇੱਕ ਹੱਲ ਵੀ ਮੌਜੂਦ ਹੈ, ਪਰ ਫਾਰਮੂਲਾ ਕਿਤੇ ਜ਼ਿਆਦਾ ਗੁੰਝਲਦਾਰ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਇਸ ਟਿਊਟੋਰਿਅਲ ਵਿੱਚ ਲੱਭ ਸਕਦੇ ਹੋ: ਐਕਸਲ ਵਿੱਚ ਨੰਬਰਾਂ ਨੂੰ ਕਿਵੇਂ ਐਕਸਟਰੈਕਟ ਕਰਨਾ ਹੈ।
ਨੰਬਰਾਂ ਤੋਂ ਟੈਕਸਟ ਨੂੰ ਹਟਾਉਣ ਲਈ ਕਸਟਮ ਫੰਕਸ਼ਨ
ਹੱਲ ਸਾਰੇ ਐਕਸਲ ਸੰਸਕਰਣਾਂ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ
ਜੇਕਰ ਤੁਸੀਂ ਐਕਸਲ ਦੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ ਜਾਂ ਉਪਰੋਕਤ ਫਾਰਮੂਲੇ ਵੀ ਲੱਭਦੇ ਹੋ ਯਾਦ ਰੱਖਣਾ ਮੁਸ਼ਕਲ ਹੈ, ਕੁਝ ਵੀ ਤੁਹਾਨੂੰ ਇੱਕ ਸਧਾਰਨ ਸੰਟੈਕਸ ਅਤੇ ਉਪਭੋਗਤਾ-ਅਨੁਕੂਲ ਨਾਮ ਜਿਵੇਂ ਕਿ RemoveText ਨਾਲ ਆਪਣਾ ਖੁਦ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਉਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਯੂਜ਼ਰ-ਪਰਿਭਾਸ਼ਿਤ ਫੰਕਸ਼ਨ (UDF) ਨੂੰ ਦੋ ਤਰੀਕਿਆਂ ਨਾਲ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ:
VBA ਕੋਡ 1:
ਇੱਥੇ, ਅਸੀਂ ਸਰੋਤ ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਹਰੇਕ ਅੱਖਰ ਨੂੰ ਇੱਕ ਦੁਆਰਾ ਵੇਖਦੇ ਹਾਂ ਇੱਕ ਅਤੇ ਜਾਂਚ ਕਰੋ ਕਿ ਇਹ ਸੰਖਿਆਤਮਕ ਹੈ ਜਾਂ ਨਹੀਂ। ਜੇਕਰ ਕੋਈ ਸੰਖਿਆ, ਅੱਖਰ ਨੂੰ ਨਤੀਜੇ ਵਾਲੀ ਸਤਰ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ।
ਫੰਕਸ਼ਨ RemoveText(str as String ) Dim sRes as String sRes = "" for i = 1 To Len(str) ਜੇਕਰ True = IsNumeric(Mid(str, i) , 1)) ਫਿਰ sRes = sRes & Mid(str, i, 1) End If Next i RemoveText = sRes End ਫੰਕਸ਼ਨVBA ਕੋਡ 2:
ਕੋਡ ਇੱਕ ਰੈਗੂਲਰ ਸਮੀਕਰਨ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਇੱਕ ਵਸਤੂ ਬਣਾਉਂਦਾ ਹੈ। RegExp ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਅਸੀਂ ਸਰੋਤ ਸਤਰ ਤੋਂ ਅੰਕ 0-9 ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਸਾਰੇ ਅੱਖਰ ਹਟਾ ਦਿੰਦੇ ਹਾਂ।
CreateObject ( "VBScript.RegExp" ) ਨਾਲ ਸਟ੍ਰਿੰਗ ਦੇ ਤੌਰ 'ਤੇ ਫੰਕਸ਼ਨ RemoveText(string as ) .ਗਲੋਬਲ = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) ਅੰਤ ਫੰਕਸ਼ਨ ਦੇ ਨਾਲ ਸਮਾਪਤ ਕਰੋਛੋਟੀਆਂ ਵਰਕਸ਼ੀਟਾਂ 'ਤੇ, ਦੋਵੇਂ ਕੋਡ ਬਰਾਬਰ ਵਧੀਆ ਪ੍ਰਦਰਸ਼ਨ ਕਰਨਗੇ। ਵੱਡੀਆਂ ਵਰਕਸ਼ੀਟਾਂ 'ਤੇ ਜਿੱਥੇ ਫੰਕਸ਼ਨ ਨੂੰ ਸੈਂਕੜੇ ਜਾਂ ਹਜ਼ਾਰਾਂ ਵਾਰ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ, ਕੋਡ 2 ਜੋ VBScript.RegExp ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਤੇਜ਼ੀ ਨਾਲ ਕੰਮ ਕਰੇਗਾ।
ਤੁਹਾਡੀ ਵਰਕਬੁੱਕ ਵਿੱਚ ਕੋਡ ਨੂੰ ਸੰਮਿਲਿਤ ਕਰਨ ਦੇ ਵਿਸਤ੍ਰਿਤ ਪੜਾਅ ਇੱਥੇ ਲੱਭੇ ਜਾ ਸਕਦੇ ਹਨ: VBA ਕਿਵੇਂ ਸੰਮਿਲਿਤ ਕਰਨਾ ਹੈ ਐਕਸਲ ਵਿੱਚ ਕੋਡ।
ਤੁਸੀਂ ਜੋ ਵੀ ਪਹੁੰਚ ਚੁਣਦੇ ਹੋ, ਅੰਤ-ਉਪਭੋਗਤਾ ਦੇ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਤੋਂ, ਟੈਕਸਟ ਨੂੰ ਮਿਟਾਉਣ ਅਤੇ ਨੰਬਰਾਂ ਨੂੰ ਛੱਡਣ ਦਾ ਫੰਕਸ਼ਨ ਇਸ ਤਰ੍ਹਾਂ ਸਧਾਰਨ ਹੈ:
RemoveText(string)ਉਦਾਹਰਨ ਲਈ, ਨੂੰ ਸੈੱਲ A2 ਤੋਂ ਗੈਰ-ਸੰਖਿਆਤਮਕ ਅੱਖਰਾਂ ਨੂੰ ਹਟਾਓ, B2 ਵਿੱਚ ਫਾਰਮੂਲਾ ਹੈ:
=RemoveText(A2)
ਇਸ ਨੂੰ ਕਾਲਮ ਦੇ ਹੇਠਾਂ ਕਾਪੀ ਕਰੋ, ਅਤੇ ਤੁਹਾਨੂੰ ਇਹ ਨਤੀਜਾ ਮਿਲੇਗਾ:
ਨੋਟ। ਮੂਲ ਫਾਰਮੂਲੇ ਅਤੇ ਕਸਟਮ ਫੰਕਸ਼ਨ ਆਉਟਪੁੱਟ ਇੱਕ ਸੰਖਿਆਤਮਕ ਸਤਰ ਦੋਵੇਂ। ਇਸਨੂੰ ਇੱਕ ਸੰਖਿਆ ਵਿੱਚ ਬਦਲਣ ਲਈ, ਨਤੀਜੇ ਨੂੰ 1 ਨਾਲ ਗੁਣਾ ਕਰੋ, ਜਾਂ ਜ਼ੀਰੋ ਜੋੜੋ, ਜਾਂ VALUE ਫੰਕਸ਼ਨ ਵਿੱਚ ਫਾਰਮੂਲਾ ਲਪੇਟੋ। ਉਦਾਹਰਨ ਲਈ:
=RemoveText(A2) + 0
=VALUE(RemoveText(A2))
ਐਕਸਲ ਵਿੱਚ ਟੈਕਸਟ ਸਟ੍ਰਿੰਗ ਤੋਂ ਨੰਬਰਾਂ ਨੂੰ ਕਿਵੇਂ ਹਟਾਉਣਾ ਹੈ
ਹੱਲ Excel 365, Excel 2021, ਅਤੇ Excel ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ 2019
ਇੱਕ ਅੱਖਰ ਅੰਕੀ ਸਤਰ ਤੋਂ ਸੰਖਿਆਵਾਂ ਨੂੰ ਹਟਾਉਣ ਦੇ ਫਾਰਮੂਲੇ ਪਿਛਲੇ ਉਦਾਹਰਨ ਵਿੱਚ ਦੱਸੇ ਗਏ ਫਾਰਮੂਲੇ ਦੇ ਬਿਲਕੁਲ ਸਮਾਨ ਹਨ।
ਐਕਸਲ 365 - 2019 ਲਈ:
TEXTJOIN(" ", TRUE, IF(ISERR(MID( cell , ROW(Indirect("1:"&LEN( cell ) )), 1) *1), MID( cell , ROW(INDIRECT("1:"&LEN( ਸੈੱਲ ))), 1), ""))ਐਕਸਲ 2019 ਵਿੱਚ, Ctrl + Shift + Enter ਕੁੰਜੀਆਂ ਨੂੰ ਇਕੱਠੇ ਦਬਾ ਕੇ ਇਸਨੂੰ ਇੱਕ ਐਰੇ ਫਾਰਮੂਲਾ ਬਣਾਉਣਾ ਯਾਦ ਰੱਖੋ।
ਐਕਸਲ 365 ਅਤੇ 2021 ਲਈ:
TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , SEQUENCE(LEN( cell 1) *1), MID ( cell , SEQUENCE(LEN( cell )), 1), ""))ਉਦਾਹਰਨ ਲਈ, A2 ਵਿੱਚ ਇੱਕ ਸਟ੍ਰਿੰਗ ਤੋਂ ਨੰਬਰਾਂ ਨੂੰ ਵੱਖ ਕਰਨ ਲਈ, ਫਾਰਮੂਲਾ ਹੈ:
=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))
ਜਾਂ
=TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))
ਨਤੀਜੇ ਵਜੋਂ, ਸਾਰੇ ਨੰਬਰ ਸੈੱਲ ਤੋਂ ਹਟਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਟੈਕਸਟ ਅੱਖਰ ਰੱਖੇ ਜਾਂਦੇ ਹਨ:
ਜਿਵੇਂ ਕਿ ਉੱਪਰ ਦਿੱਤੇ ਸਕ੍ਰੀਨਸ਼ੌਟ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ, ਫਾਰਮੂਲਾ ਇੱਕ ਸਤਰ ਵਿੱਚ ਕਿਸੇ ਵੀ ਸਥਿਤੀ ਤੋਂ ਅੰਕੀ ਅੱਖਰਾਂ ਨੂੰ ਵੱਖ ਕਰਦਾ ਹੈ: ਸ਼ੁਰੂ ਵਿੱਚ, ਅੰਤ ਵਿੱਚ ਅਤੇ ਮੱਧ ਵਿੱਚ। ਹਾਲਾਂਕਿ, ਇੱਕ ਚੇਤਾਵਨੀ ਹੈ: ਜੇਕਰ ਇੱਕ ਸਤਰ ਇੱਕ ਸਪੇਸ ਦੇ ਬਾਅਦ ਇੱਕ ਨੰਬਰ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ , ਉਸ ਸਪੇਸ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਮੋਹਰੀ ਸਪੇਸ ਦੀ ਸਮੱਸਿਆ ਪੈਦਾ ਕਰਦਾ ਹੈ (ਜਿਵੇਂ ਕਿ B2 ਵਿੱਚ)।
ਟੈਕਸਟ ਤੋਂ ਪਹਿਲਾਂ ਵਾਧੂ ਸਪੇਸਾਂ ਤੋਂ ਛੁਟਕਾਰਾ ਪਾਉਣ ਲਈ। , TRIM ਫੰਕਸ਼ਨ ਵਿੱਚ ਫਾਰਮੂਲੇ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਲਪੇਟੋ:
=TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))
ਹੁਣ, ਤੁਹਾਡੇ ਨਤੀਜੇ ਬਿਲਕੁਲ ਸਹੀ ਹਨ!
15>
ਇਹ ਫਾਰਮੂਲਾ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:
ਸਾਰ ਵਿੱਚ, ਫਾਰਮੂਲਾ ਉਸੇ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਪਿਛਲੀ ਉਦਾਹਰਨ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ। ਫਰਕ ਇਹ ਹੈ ਕਿ, TEXTJOIN ਫੰਕਸ਼ਨ ਨੂੰ ਦਿੱਤੇ ਗਏ ਅੰਤਮ ਐਰੇ ਤੋਂ, ਤੁਹਾਨੂੰ ਨੰਬਰਾਂ ਨੂੰ ਹਟਾਉਣ ਦੀ ਲੋੜ ਹੈ, ਟੈਕਸਟ ਦੀ ਨਹੀਂ। ਇਸਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ, ਅਸੀਂ IF ਅਤੇ ISERROR ਫੰਕਸ਼ਨਾਂ ਦੇ ਸੁਮੇਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ।
ਜਿਵੇਂ ਕਿ ਤੁਹਾਨੂੰ ਯਾਦ ਹੈ,MID(…)+0 ਨੰਬਰਾਂ ਦੀ ਇੱਕ ਐਰੇ ਅਤੇ #VALUE! ਉਸੇ ਸਥਿਤੀ ਵਿੱਚ ਟੈਕਸਟ ਅੱਖਰਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀਆਂ ਗਲਤੀਆਂ:
{2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
ISERROR ਫੰਕਸ਼ਨ ਗਲਤੀਆਂ ਨੂੰ ਫੜਦਾ ਹੈ ਅਤੇ ਬੂਲੀਅਨ ਮੁੱਲਾਂ ਦੇ ਨਤੀਜੇ ਵਾਲੇ ਐਰੇ ਨੂੰ IF:
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}
{"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}
ਇਹ ਅੰਤਿਮ ਐਰੇ TEXTJOIN ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ, ਇਸਲਈ ਇਹ ਟੈਕਸਟ ਅੱਖਰਾਂ ਨੂੰ ਜੋੜਦਾ ਹੈ ਅਤੇ ਆਉਟਪੁੱਟ ਦਿੰਦਾ ਹੈ। ਨਤੀਜਾ।
ਟੈਕਸਟ ਤੋਂ ਨੰਬਰਾਂ ਨੂੰ ਹਟਾਉਣ ਲਈ ਕਸਟਮ ਫੰਕਸ਼ਨ
ਸਾਲ ਸਾਰੇ ਐਕਸਲ ਸੰਸਕਰਣਾਂ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ
ਇਹ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹੋਏ ਕਿ ਇੱਕ ਮਜ਼ਬੂਤ ਫਾਰਮੂਲਾ ਰੱਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਸਧਾਰਨ, ਮੈਂ ਕਿਸੇ ਵੀ ਸੰਖਿਆਤਮਕ ਅੱਖਰ ਨੂੰ ਹਟਾਉਣ ਲਈ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਫੰਕਸ਼ਨ (UDF) ਦਾ ਕੋਡ ਸਾਂਝਾ ਕਰਾਂਗਾ।
VBA ਕੋਡ 1:
ਫੰਕਸ਼ਨ ਰਿਮੋਵ ਨੰਬਰ (str As String) ਡਿਮ sRes as String sRes = "" ਲਈ i = 1 ਤੋਂ Len(str) ਜੇਕਰ ਗਲਤ = IsNumeric(Mid(str, i, 1)) ਤਾਂ sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End ਫੰਕਸ਼ਨVBA ਕੋਡ 2:
ਫੰਕਸ਼ਨ RemoveNumbers(str As String) CreateObject ( "VBScript.RegExp" ਨਾਲ ਸਟ੍ਰਿੰਗ ਵਜੋਂ ) .ਗਲੋਬਲ = ਸਹੀ .ਪੈਟਰਨ = "[0-9]" ਰੀਮੂਵ ਨੰਬਰ 2 = .ਰਿਪਲੇਸ(str, "" ) ਐਂਡ ਫੰਕਸ਼ਨ ਨਾਲ ਖਤਮ ਕਰੋਜਿਵੇਂ ਕਿ ਰਿਮੋਵ ਟੈਕਸਟ ਫੰਕਸ਼ਨ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਹੈ, ਦੂਜਾ ਕੋਡ ਇਸ ਵਿੱਚ ਵਰਤਿਆ ਜਾਣਾ ਬਿਹਤਰ ਹੈ। ਵੱਡਾਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ ਵਰਕਸ਼ੀਟਾਂ।
ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਹਾਡੀ ਵਰਕਬੁੱਕ ਵਿੱਚ ਕੋਡ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਕਸਟਮ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਸੈੱਲ ਤੋਂ ਸਾਰੇ ਸੰਖਿਆਤਮਕ ਅੱਖਰਾਂ ਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ:
RemoveNumbers(string)ਸਾਡੇ ਕੇਸ ਵਿੱਚ, B2 ਵਿੱਚ ਫਾਰਮੂਲਾ ਹੈ:
=RemoveNumbers(A2)
ਜੇਕਰ ਕੋਈ ਹੋਵੇ ਤਾਂ ਮੋਹਰੀ ਥਾਂਵਾਂ ਨੂੰ ਕੱਟਣ ਲਈ, ਕਸਟਮ ਫੰਕਸ਼ਨ ਨੂੰ TRIM ਦੇ ਅੰਦਰ ਨੈਸਟ ਕਰੋ ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਇੱਕ ਮੂਲ ਫਾਰਮੂਲਾ:
=TRIM(RemoveNumbers(A2))
ਨੰਬਰਾਂ ਅਤੇ ਟੈਕਸਟ ਨੂੰ ਵੱਖ-ਵੱਖ ਕਾਲਮਾਂ ਵਿੱਚ ਵੰਡੋ
ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ ਜਦੋਂ ਤੁਸੀਂ ਟੈਕਸਟ ਅਤੇ ਨੰਬਰਾਂ ਨੂੰ ਦੋ ਕਾਲਮਾਂ ਵਿੱਚ ਵੱਖ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਵਧੀਆ ਹੋਵੇਗਾ ਕਿ ਕੰਮ ਨੂੰ ਇੱਕ ਹੀ ਫਾਰਮੂਲੇ ਨਾਲ ਕੀਤਾ ਜਾਵੇ। , ਸਹਿਮਤ ਹੋ? ਇਸਦੇ ਲਈ, ਅਸੀਂ RemoveText ਅਤੇ RemoveNumbers ਫੰਕਸ਼ਨਾਂ ਦੇ ਕੋਡ ਨੂੰ ਇੱਕ ਫੰਕਸ਼ਨ ਵਿੱਚ ਮਿਲਾਉਂਦੇ ਹਾਂ, ਜਿਸਦਾ ਨਾਮ SplitTextNumbers , ਜਾਂ ਬਸ Split , ਜਾਂ ਜੋ ਵੀ ਤੁਸੀਂ ਪਸੰਦ ਕਰਦੇ ਹੋ :)
VBA ਕੋਡ 1:
ਫੰਕਸ਼ਨ SplitTextNumbers(str as string, is_remove_text as boolean) as String Dim sNum, sText, sChar as String sCurChar = sNum = sText = "" ਲਈ i = 1 ਤੋਂ ਲੈਨ(str) sCurChar = Mid(str, i, 1) ਜੇਕਰ ਸਹੀ = IsNumeric(sCurChar) ਤਾਂ sNum = sNum & sCurChar Else sText = sText & . CreateObject ( "VBScript.RegExp" ) ਦੇ ਨਾਲ .ਗਲੋਬਲ = True ਜੇਕਰ True = is_remove_text ਫਿਰ .Pattern = "[^0-9]" ਹੋਰ.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "" ) End ਫੰਕਸ਼ਨ ਨਾਲ ਖਤਮ ਕਰੋਸਾਡੇ ਨਵੇਂ ਕਸਟਮ ਫੰਕਸ਼ਨ ਲਈ ਦੋ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਲੋੜ ਹੈ:
SplitTextNumbers(string, is_remove_text)ਕਿੱਥੇ is_remove_text ਇੱਕ ਬੁਲੀਅਨ ਮੁੱਲ ਹੈ ਜੋ ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਕਿਹੜੇ ਅੱਖਰਾਂ ਨੂੰ ਉਤਾਰਨਾ ਹੈ:
- ਸਹੀ ਜਾਂ 1 - ਟੈਕਸਟ ਹਟਾਓ ਅਤੇ ਨੰਬਰ ਰੱਖੋ
- ਗਲਤ ਜਾਂ 0 - ਨੰਬਰ ਹਟਾਓ ਅਤੇ ਟੈਕਸਟ ਰੱਖੋ
ਸਾਡੇ ਨਮੂਨਾ ਡੇਟਾਸੈਟ ਲਈ, ਫਾਰਮੂਲੇ ਇਹ ਫਾਰਮ ਲੈਂਦੇ ਹਨ:
ਗੈਰ-ਸੰਖਿਆਤਮਕ ਅੱਖਰਾਂ ਨੂੰ ਹਟਾਉਣ ਲਈ:
=SplitTextNumbers(A2, TRUE)
ਸੰਖਿਆਤਮਕ ਅੱਖਰਾਂ ਨੂੰ ਮਿਟਾਉਣ ਲਈ :
=SplitTextNumbers(A2, FALSE)
ਨੁਕਤਾ। ਲੀਡ ਸਪੇਸ ਦੀ ਸੰਭਾਵੀ ਸਮੱਸਿਆ ਤੋਂ ਬਚਣ ਲਈ, ਮੈਂ ਹਮੇਸ਼ਾ ਉਸ ਫਾਰਮੂਲੇ ਨੂੰ ਸਮੇਟਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹਾਂ ਜੋ TRIM ਫੰਕਸ਼ਨ ਵਿੱਚ ਨੰਬਰਾਂ ਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ:
=TRIM(SplitTextNumbers(A2, FALSE))
ਨੰਬਰਾਂ ਜਾਂ ਟੈਕਸਟ ਨੂੰ ਹਟਾਉਣ ਲਈ ਵਿਸ਼ੇਸ਼ ਟੂਲ
ਉਨ੍ਹਾਂ ਲਈ ਬੇਲੋੜੀ ਚੀਜ਼ਾਂ ਨੂੰ ਗੁੰਝਲਦਾਰ ਬਣਾਉਣਾ ਪਸੰਦ ਨਹੀਂ, ਮੈਂ Excel ਵਿੱਚ ਟੈਕਸਟ ਜਾਂ ਨੰਬਰਾਂ ਨੂੰ ਹਟਾਉਣ ਦਾ ਆਪਣਾ ਤਰੀਕਾ ਦਿਖਾਵਾਂਗਾ।
ਇਹ ਮੰਨ ਕੇ ਕਿ ਸਾਡਾ ਅਲਟੀਮੇਟ ਸੂਟ ਤੁਹਾਡੇ ਐਕਸਲ ਰਿਬਨ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ, ਤੁਸੀਂ ਇਹ ਕਰਦੇ ਹੋ:
- Ablebits Data ਟੈਬ 'ਤੇ, Text ਗਰੁੱਪ ਵਿੱਚ, ਹਟਾਓ > ਅੱਖਰ ਹਟਾਓ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
ਨੁਕਤਾ। ਜੇਕਰ ਨਤੀਜਿਆਂ ਵਿੱਚ ਕੁਝ ਮੋਹਰੀ ਸਪੇਸ ਹਨ, ਤਾਂ ਟ੍ਰਿਮ ਸਪੇਸਟੂਲ ਉਹਨਾਂ ਨੂੰ ਕਿਸੇ ਵੀ ਸਮੇਂ ਵਿੱਚ ਖਤਮ ਕਰ ਦੇਵੇਗਾ.
ਇਸ ਤਰ੍ਹਾਂ ਐਕਸਲ ਵਿੱਚ ਇੱਕ ਸਤਰ ਤੋਂ ਟੈਕਸਟ ਜਾਂ ਸੰਖਿਆਤਮਕ ਅੱਖਰਾਂ ਨੂੰ ਹਟਾਉਣਾ ਹੈ। ਮੈਂ ਪੜ੍ਹਨ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ ਕਰਦਾ ਹਾਂ ਅਤੇ ਅਗਲੇ ਹਫ਼ਤੇ ਤੁਹਾਨੂੰ ਸਾਡੇ ਬਲੌਗ 'ਤੇ ਮਿਲਣ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹਾਂ!
ਉਪਲੱਬਧ ਡਾਊਨਲੋਡ
ਐਕਸਲ ਵਿੱਚ ਟੈਕਸਟ ਜਾਂ ਨੰਬਰ ਹਟਾਓ - ਉਦਾਹਰਣਾਂ (.xlsm ਫਾਈਲ)
ਅਲਟੀਮੇਟ ਸੂਟ - ਅਜ਼ਮਾਇਸ਼ ਸੰਸਕਰਣ (.exe ਫਾਈਲ)