Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

how to convert a column number(eg.127) into an excel column (eg.AA)

Former Member
0 Kudos

How do you convert a numerical number to an Excel column name in Sap, eg. 26 -> Z

I need your helps,thanks.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

3 REPLIES 3

Former Member
0 Kudos

Hi Arvin,

Do you want to convert numbers to base 26?

Eg : 27 - AA

       52 - AZ.

Do clear the Question.

Thanks,

Ankit.

Former Member
0 Kudos

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

0 Kudos

This is what I need ! It's cool, thank you very much.