Excel中列位置與標(biāo)簽的對(duì)應(yīng)算法

在Excel列標(biāo)簽中,前26列用A-Z表示,然后是兩位AA-ZZ,然后是三位AAA字母表示,在Excel中獲取當(dāng)前列位置,可以用=COLUMN()來獲知。怎么從列位置轉(zhuǎn)換為標(biāo)簽,琢磨了一下,寫了一個(gè)方法。下面是用Python描述的代碼,其它語言可參照著修改即可

def fun(num):
    str = ''
    if num <= 0:
        return str
    num -= 1
    A = (num-26 if num-26 > 0 else num)//(26*26)
    B = (num-A*26*26)//26
    C = num-A*26*26-B*26
    #C 也可以采用如下方式進(jìn)行計(jì)算
    # C = (num-A*26*26) % 26
    # print(A, B, C)
    if A > 0:
        str = chr(A+64)
    if B > 0:
        str += chr(B+64)
    str += chr(C+65)
    return str

A,B,C分別表示不同位置上的數(shù)值(1-26),字母A的ascii碼為65
運(yùn)行測試結(jié)果如下

2 -> B
26 -> Z
27 -> AA
51 -> AY
52 -> AZ
701 -> ZY
702 -> ZZ
703 -> AAA
704 -> AAB
728 -> AAZ
729 -> ABA
1378 -> AZZ
1379 -> BAA
2054 -> BZZ
2055 -> CAA

結(jié)果與Excel中計(jì)算得出來結(jié)果一致

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容