Need to convert a number from a parsed Arabic sentence to a number

Nineball

New Member
Joined
Jan 1, 2022
Messages
34
Office Version
  1. 2010
Platform
  1. Windows
After parsing an Arabic sentence that contains a number, the number appears at the right hand side of the cell. I believe the number appears as text. Any formula on the cell results in #VALUE.
I haven't found any function that will change it to a number. Any suggestions? thanks
 

Attachments

  • Example.jpg
    Example.jpg
    161.9 KB · Views: 14
Interesting. I wonder if regional settings and using "." or "," as decimal separators might be contributing to the problem. In any case, let me know if you have any luck with the VBA code and approach in post #37. Do you know how to set up the VBA code? Alt-F11 and then Insert Module and paste the VBA code, then Close and Return to Excel.

About your question D14/E11...sorry, I copied the original text into a few different cells to experiment (both E11 and E14). Here's a better copy.
Book4
ABCDE
131st number2nd numberModified ExcerptOriginal
141171Z171:17.‏ خۇدا بۇلارنى يەرگە يورۇقلۇق بېرىپ، كۈندۈز بىلەن كېچىنى باشقۇرۇپ، يورۇقلۇق بىلەن قاراڭغۇلۇقنى ئايرىسۇن دەپ ئاسمانلارنىڭ گۈمبىزىگە ئورۇنلاشتۇردى. خۇدا بۇنىڭ ياخشى بولغانلىقىنى كۆردى.
Sheet5
Cell Formulas
RangeFormula
A14A14=LEFT(D14,FIND("Z",D14)-1)+0
B14B14=RIGHT(D14,LEN(D14)-FIND("Z",D14))+0
D14D14=AlphaNumericOnly(SUBSTITUTE(E14,":","Z"))

VBA Code:
Function AlphaNumericOnly(strSource As String) As String
    Dim i As Integer
    Dim strResult As String

    For i = 1 To Len(strSource)
        Select Case Asc(Mid(strSource, i, 1))
            Case 48 To 57, 65 To 90, 97 To 122: 'include 32 if you want to include space
                strResult = strResult & Mid(strSource, i, 1)
        End Select
    Next
    AlphaNumericOnly = strResult
End Function
 
Last edited:
Upvote 0

Excel Facts

What does custom number format of ;;; mean?
Three semi-colons will hide the value in the cell. Although most people use white font instead.
I tried out my suggestion on your uploaded file (see columns F:H) and encountered one issue when the original text contains multiple colons (which are then substituted with the letter "Z"). Here is a revision that replaces any Z's at the end of the excerpted string with nothing...and that seems to resolve the issue. Larger scale testing might be helpful to confirm that it's working okay.
Mr. Excel Question.xlsx
EFGH
1TextModified Excerpt1st #2nd #
21:15 ئۇلار ئاسمانلاردا تۇرۇپ نۇر چىقارغۇچى بولۇپ، يەر يۈزىگە يورۇقلۇق بەرسۇن!» دېۋىدى، دەل شۇنداق بولدى.1Z15315
31:16 خۇدا ئىككى چوڭ نۇر چىقارغۇچى جىسىمنى ياراتتى؛ چوڭ نۇر چىقارغۇچىنى كۈندۈزنى باشقۇرىدىغان، كىچىك نۇر چىقارغۇچنى كېچىنى باشقۇرىدىغان قىلدى. ھەمدە يەنە يۇلتۇزلارنىمۇ ياراتتى.1Z16116
41:17‏ خۇدا بۇلارنى يەرگە يورۇقلۇق بېرىپ، كۈندۈز بىلەن كېچىنى باشقۇرۇپ، يورۇقلۇق بىلەن قاراڭغۇلۇقنى ئايرىسۇن دەپ ئاسمانلارنىڭ گۈمبىزىگە ئورۇنلاشتۇردى. خۇدا بۇنىڭ ياخشى بولغانلىقىنى كۆردى.1Z17117
51:19 شۇ تەرىقىدە كەچ بىلەن سەھەر ئۆتتى، بۇ تۆتىنچى كۈن بولدى.1Z19119
65:27 مەتۇشەلاھ جەمئىي توققۇز يۈز ئاتمىش توققۇز يىل كۈن كۆرۈپ، ئالەمدىن ئۆتتى.5Z27527
75:28 لەمەخ بىر يۈز سەكسەن ئىككى ياشقا كىرگەندە بىر ئوغۇل تېپىپ، ئۇنىڭ ئىسمىنى نۇھ ئاتاپ: ــ پەرۋەردىگار تۇپراققا لەنەت قىلدى؛ شۇڭا بىز [يەرگە] ئىشلىگىنىمىزدە ھەمدە قوللىرىمىزنىڭ جاپالىق ئەمگىكىدە بۇ بالا بىزگە تەسەللى بېرىدۇ، ــ دېدى.5Z28Z528
85:30 نۇھ تۇغۇلغاندىن كېيىن لەمەخ بەش يۈز توقسان بەش يىل ئۆمۈر كۆرۈپ، ئۇنىڭدىن يەنە ئوغۇل-قىزلار تۆرەلدى.5Z30530
97:7 توپاندىن [قۇتۇلۇپ قېلىش] ئۈچۈن نۇھ بىلەن ئوغۇللىرى، ئايالى ۋە كېلىنلىرى بىللە كېمىگە كىردى.7Z777
107:8‏ ھالال ھايۋانلار بولسۇن، ھارام ھايۋانلار بولسۇن، قۇشلار بىلەن يەردە ئۆمىلىگۈچى جانىۋارلار بولسۇن، [ھەربىر تۈردىن] بىر جۈپ-بىر جۈپتىن ئەركەك-چىشى بولۇپ، خۇدا نۇھقا بۇيرۇغاندەك كېمىگە، نۇھنىڭ قېشىغا كىردى.7Z878
117:10 ۋە شۇنداق بولدىكى، يەتتە كۈندىن كېيىن، يەر يۈزىنى توپان بېسىشقا باشلىدى.7Z10710
127:11 نۇھنىڭ ئۆمرىنىڭ ئالتە يۈزىنچى يىلى، ئىككىنچى ئېيىنىڭ ئون يەتتىنچى كۈنىدە چوڭقۇر دېڭىزلارنىڭ تەگلىرىدىكى بارلىق بۇلاقلار يېرىلىپ، ئاسماننىڭ پەنجىرىلىرى ئېچىلىپ كەتتى.7Z11711
137:12 يامغۇر ئۇدا قىرىق كېچە-كۈندۈز يەر يۈزىگە توختىماي ياغدى.7Z12712
Example
Cell Formulas
RangeFormula
F2:F13F2=AlphaNumericOnly(SUBSTITUTE(E2,":","Z"))
H2:H13H2=SUBSTITUTE(RIGHT(F2,LEN(F2)-FIND("Z",F2)),"Z","")+0
G3:G13G3=LEFT(F3,FIND("Z",F3)-1)+0
 
Upvote 0
I've checked your sample file.
Numbers in column D, some of them have spaces at the end & others have unicode character namely ChrW(8207)

To trim the space, use this code:
VBA Code:
Sub to_Trim()

With Range("D1:D" & Cells(Rows.Count, "D").End(xlUp).Row)   'change to suit
    .Value = Application.Trim(.Value)
End With

End Sub

to remove the ChrW(8207) character, use this:
VBA Code:
Sub remove_8207()
Dim c As Range, x
Application.ScreenUpdating = False
x = ChrW(8207)
With Range("D:D")   'change to suit
Set c = .Find(What:=x, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

    If Not c Is Nothing Then
        sAddress = c.Address
        Do
           Set c = .FindNext(c)
           c = Replace(c, x, "")
        Loop While Not c Is Nothing And c.Address <> sAddress
    End If
End With
Application.ScreenUpdating = True
End Sub

you may change the range reference to suit.
 
Upvote 0
After looking at this again, an easier way to insert just one "Z" character to act as a string splitting delimiter (to replace the colon) is to utilize the 4th argument in the SUBSTITUTE function, and since the numbers you would like to extract appear at one end of the string, this should work reliably. Any other colons in the string will remain and will then be removed by the VBA script. And to split the excerpted text at the "Z" delimiter, I've incorporated a Splitter function in the VBA code to automatically deliver the two numbers:
Mr. Excel Question.xlsm
EFG
11st#2nd#Text
21151:15 ئۇلار ئاسمانلاردا تۇرۇپ نۇر چىقارغۇچى بولۇپ، يەر يۈزىگە يورۇقلۇق بەرسۇن!» دېۋىدى، دەل شۇنداق بولدى.
31161:16 خۇدا ئىككى چوڭ نۇر چىقارغۇچى جىسىمنى ياراتتى؛ چوڭ نۇر چىقارغۇچىنى كۈندۈزنى باشقۇرىدىغان، كىچىك نۇر چىقارغۇچنى كېچىنى باشقۇرىدىغان قىلدى. ھەمدە يەنە يۇلتۇزلارنىمۇ ياراتتى.
41171:17‏ خۇدا بۇلارنى يەرگە يورۇقلۇق بېرىپ، كۈندۈز بىلەن كېچىنى باشقۇرۇپ، يورۇقلۇق بىلەن قاراڭغۇلۇقنى ئايرىسۇن دەپ ئاسمانلارنىڭ گۈمبىزىگە ئورۇنلاشتۇردى. خۇدا بۇنىڭ ياخشى بولغانلىقىنى كۆردى.
51191:19 شۇ تەرىقىدە كەچ بىلەن سەھەر ئۆتتى، بۇ تۆتىنچى كۈن بولدى.
65275:27 مەتۇشەلاھ جەمئىي توققۇز يۈز ئاتمىش توققۇز يىل كۈن كۆرۈپ، ئالەمدىن ئۆتتى.
75285:28 لەمەخ بىر يۈز سەكسەن ئىككى ياشقا كىرگەندە بىر ئوغۇل تېپىپ، ئۇنىڭ ئىسمىنى نۇھ ئاتاپ: ــ پەرۋەردىگار تۇپراققا لەنەت قىلدى؛ شۇڭا بىز [يەرگە] ئىشلىگىنىمىزدە ھەمدە قوللىرىمىزنىڭ جاپالىق ئەمگىكىدە بۇ بالا بىزگە تەسەللى بېرىدۇ، ــ دېدى.
85305:30 نۇھ تۇغۇلغاندىن كېيىن لەمەخ بەش يۈز توقسان بەش يىل ئۆمۈر كۆرۈپ، ئۇنىڭدىن يەنە ئوغۇل-قىزلار تۆرەلدى.
9777:7 توپاندىن [قۇتۇلۇپ قېلىش] ئۈچۈن نۇھ بىلەن ئوغۇللىرى، ئايالى ۋە كېلىنلىرى بىللە كېمىگە كىردى.
10787:8‏ ھالال ھايۋانلار بولسۇن، ھارام ھايۋانلار بولسۇن، قۇشلار بىلەن يەردە ئۆمىلىگۈچى جانىۋارلار بولسۇن، [ھەربىر تۈردىن] بىر جۈپ-بىر جۈپتىن ئەركەك-چىشى بولۇپ، خۇدا نۇھقا بۇيرۇغاندەك كېمىگە، نۇھنىڭ قېشىغا كىردى.
117107:10 ۋە شۇنداق بولدىكى، يەتتە كۈندىن كېيىن، يەر يۈزىنى توپان بېسىشقا باشلىدى.
127117:11 نۇھنىڭ ئۆمرىنىڭ ئالتە يۈزىنچى يىلى، ئىككىنچى ئېيىنىڭ ئون يەتتىنچى كۈنىدە چوڭقۇر دېڭىزلارنىڭ تەگلىرىدىكى بارلىق بۇلاقلار يېرىلىپ، ئاسماننىڭ پەنجىرىلىرى ئېچىلىپ كەتتى.
137127:12 يامغۇر ئۇدا قىرىق كېچە-كۈندۈز يەر يۈزىگە توختىماي ياغدى.
Example (2)
Cell Formulas
RangeFormula
E2:F13E2=Splitter(AlphaNumericOnly(SUBSTITUTE(G2,":","Z",1)),"Z")
Dynamic array formulas.

The revised functions: AlphaNumericOnly for excerpting the desired text with a "Z" delimiter, and Splitter for splitting the excerpted text into separate columns.
VBA Code:
Function AlphaNumericOnly(strSource As String) As String
    Dim i As Integer
    Dim strResult As String

    For i = 1 To Len(strSource)
        Select Case Asc(Mid(strSource, i, 1))
            Case 48 To 57, 65 To 90, 97 To 122: 'include 32 if you want to include space
                strResult = strResult & Mid(strSource, i, 1)
        End Select
    Next
    AlphaNumericOnly = strResult
End Function

Function Splitter(Data As String, Separator As String) As String()
On Error Resume Next
Splitter = Split(Data, Separator)
On Error GoTo 0
End Function
 
Upvote 0
I have written a code to extract numbers from the text in column D and place the results in columns B:C.
Using this method, there are no Unicode characters being included.
VBA Code:
Sub get_number_1()
Dim va, vb
Dim Matches As Object
va = Range("D2", Cells(Rows.Count, "D").End(xlUp))
ReDim vb(1 To UBound(va, 1), 1 To 2)
With CreateObject("VBScript.RegExp")
    .Global = True
    .Pattern = "[0-9]+"
        For i = 1 To UBound(va, 1)
            If .test(va(i, 1)) Then
                Set Matches = .Execute(va(i, 1))
                If Matches.Count = 2 Then
                    vb(i, 1) = Matches.Item(0)
                    vb(i, 2) = Matches.Item(1)
                End If
            End If
        Next
End With
'put the result in col B:C
Range("B2").Resize(UBound(vb, 1), 2) = vb
End Sub

Result in col B:C
Nineball - Mr. Excel Question 1.xlsm
BCD
1Text
21151:15 ئۇلار ئاسمانلاردا تۇرۇپ نۇر چىقارغۇچى بولۇپ، يەر يۈزىگە يورۇقلۇق بەرسۇن!» دېۋىدى، دەل شۇنداق بولدى.
31161:16 خۇدا ئىككى چوڭ نۇر چىقارغۇچى جىسىمنى ياراتتى؛ چوڭ نۇر چىقارغۇچىنى كۈندۈزنى باشقۇرىدىغان، كىچىك نۇر چىقارغۇچنى كېچىنى باشقۇرىدىغان قىلدى. ھەمدە يەنە يۇلتۇزلارنىمۇ ياراتتى.
41171:17‏ خۇدا بۇلارنى يەرگە يورۇقلۇق بېرىپ، كۈندۈز بىلەن كېچىنى باشقۇرۇپ، يورۇقلۇق بىلەن قاراڭغۇلۇقنى ئايرىسۇن دەپ ئاسمانلارنىڭ گۈمبىزىگە ئورۇنلاشتۇردى. خۇدا بۇنىڭ ياخشى بولغانلىقىنى كۆردى.
51191:19 شۇ تەرىقىدە كەچ بىلەن سەھەر ئۆتتى، بۇ تۆتىنچى كۈن بولدى.
65275:27 مەتۇشەلاھ جەمئىي توققۇز يۈز ئاتمىش توققۇز يىل كۈن كۆرۈپ، ئالەمدىن ئۆتتى.
75285:28 لەمەخ بىر يۈز سەكسەن ئىككى ياشقا كىرگەندە بىر ئوغۇل تېپىپ، ئۇنىڭ ئىسمىنى نۇھ ئاتاپ: ــ پەرۋەردىگار تۇپراققا لەنەت قىلدى؛ شۇڭا بىز [يەرگە] ئىشلىگىنىمىزدە ھەمدە قوللىرىمىزنىڭ جاپالىق ئەمگىكىدە بۇ بالا بىزگە تەسەللى بېرىدۇ، ــ دېدى.
85305:30 نۇھ تۇغۇلغاندىن كېيىن لەمەخ بەش يۈز توقسان بەش يىل ئۆمۈر كۆرۈپ، ئۇنىڭدىن يەنە ئوغۇل-قىزلار تۆرەلدى.
9777:7 توپاندىن [قۇتۇلۇپ قېلىش] ئۈچۈن نۇھ بىلەن ئوغۇللىرى، ئايالى ۋە كېلىنلىرى بىللە كېمىگە كىردى.
10787:8‏ ھالال ھايۋانلار بولسۇن، ھارام ھايۋانلار بولسۇن، قۇشلار بىلەن يەردە ئۆمىلىگۈچى جانىۋارلار بولسۇن، [ھەربىر تۈردىن] بىر جۈپ-بىر جۈپتىن ئەركەك-چىشى بولۇپ، خۇدا نۇھقا بۇيرۇغاندەك كېمىگە، نۇھنىڭ قېشىغا كىردى.
117107:10 ۋە شۇنداق بولدىكى، يەتتە كۈندىن كېيىن، يەر يۈزىنى توپان بېسىشقا باشلىدى.
127117:11 نۇھنىڭ ئۆمرىنىڭ ئالتە يۈزىنچى يىلى، ئىككىنچى ئېيىنىڭ ئون يەتتىنچى كۈنىدە چوڭقۇر دېڭىزلارنىڭ تەگلىرىدىكى بارلىق بۇلاقلار يېرىلىپ، ئاسماننىڭ پەنجىرىلىرى ئېچىلىپ كەتتى.
137127:12 يامغۇر ئۇدا قىرىق كېچە-كۈندۈز يەر يۈزىگە توختىماي ياغدى.
Sheet3
 
Upvote 0

Forum statistics

Threads
1,215,136
Messages
6,123,249
Members
449,093
Latest member
Vincent Khandagale

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top