05-23-2013 3:28 PM
How do you convert a numerical number to an Excel column name in Sap, eg. 26 -> Z
I need your helps,thanks.
05-23-2013 6:40 PM
It was an interesting problem.
Here is a working snippet using recursion.
DATA gv_output TYPE string.
PARAMETERS p_num TYPE i.
PERFORM get_data USING p_num
CHANGING gv_output.
WRITE:/ gv_output.
* FORM to determine output in a recursive manner
FORM get_data USING pv_input TYPE i
CHANGING cv_output TYPE string.
DATA lv_div TYPE i.
DATA lv_rem TYPE i.
CHECK pv_input GT 0.
lv_div = pv_input DIV 26.
lv_rem = pv_input MOD 26.
IF lv_rem IS INITIAL.
lv_rem = 26.
SUBTRACT 1 FROM lv_div.
ENDIF.
SUBTRACT 1 FROM lv_rem.
CONCATENATE sy-abcde+lv_rem(1) cv_output INTO cv_output.
PERFORM get_data USING lv_div
CHANGING cv_output.
ENDFORM. "get_data
05-23-2013 3:42 PM
Hi Arvin,
Do you want to convert numbers to base 26?
Eg : 27 - AA
52 - AZ.
Do clear the Question.
Thanks,
Ankit.
05-23-2013 6:40 PM
It was an interesting problem.
Here is a working snippet using recursion.
DATA gv_output TYPE string.
PARAMETERS p_num TYPE i.
PERFORM get_data USING p_num
CHANGING gv_output.
WRITE:/ gv_output.
* FORM to determine output in a recursive manner
FORM get_data USING pv_input TYPE i
CHANGING cv_output TYPE string.
DATA lv_div TYPE i.
DATA lv_rem TYPE i.
CHECK pv_input GT 0.
lv_div = pv_input DIV 26.
lv_rem = pv_input MOD 26.
IF lv_rem IS INITIAL.
lv_rem = 26.
SUBTRACT 1 FROM lv_div.
ENDIF.
SUBTRACT 1 FROM lv_rem.
CONCATENATE sy-abcde+lv_rem(1) cv_output INTO cv_output.
PERFORM get_data USING lv_div
CHANGING cv_output.
ENDFORM. "get_data
05-24-2013 7:27 AM