May 2, 200718 yr I need to parse numbers in separate fields. Base is a text field with data: 124.23F or 12.34G or 123.4H or 1.23K. There will be always one letter, no problem to parse that part. For the number left of the period I use: Left ( myField; Position ( myField; "."; 1; 1) - 1) Works well. If I follow the same logic (well, my logic), for the part right of the period I could use: GetAsNumber ( Right ( myField; Position ( myField; "."; 1; 1) - 1)) GetAsNumber because the result of the parsing has to be number and I don't want the possible letters. I just got 1 number as result. When I change the -1 to +1, the result takes sometimes 1 character from the left side of the (.) period. What am I doing wrong and why?. The why is important to understand the needed logic. Just to go more on my own. Tia Edited May 2, 200718 yr by Guest
May 2, 200718 yr Author That will remove the (.) and the letter. I need what's at the left side of the period in one field, what's right of the period in an other field and the letter in a third field.
May 2, 200718 yr I missed read your need. How about: Left side Left ( text ; Position ( text ; "." ; 1 ; 1 ) - 1 ) Right Side Filter ( Right ( text ; Length ( text ) - Position ( text ; "." ; 1 ; 1 )) ; "0123456789") And for the letter Filter (Text; ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz., ") Lee
May 2, 200718 yr Author Thanks Lee, it works. I only had to remove the (.) and the (,) from your Text formula. Although I see how it works, I want to understand why my approach didn't work. Care to shed some light ?
May 2, 200718 yr Hmmm if there are no spaces we can use possibly. GetAsNumber ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) ) GetAsNumber ( RightWords ( Substitute ( myField; "."; " " ); 1 ) )
May 2, 200718 yr Author Maybe yes, but that would remove a posible leading zero in the right part. And that possible zero is still needed in the parsed part.
May 2, 200718 yr Then try: Filter ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) ); "0123456789" ) Filter ( RightWords ( Substitute ( myField; "."; " " ); 1 ) ); "0123456789" )
May 2, 200718 yr Both of your calculations have an extra ")" in them. Filter ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) [color:red]); "0123456789" ) Filter( RightWords ( Substitute ( myField; "."; " " ); 1 ) [color:red]); "0123456789" ) Lee
Create an account or sign in to comment