AA から AB のような文字列を増分するにはどうすればよいでしょうか?

AA から AB のような文字列を増分するにはどうすればよいでしょうか?

Excel にAAまたは のような文字列がありますXA

次のように増分する必要があります:

セル A1 の場合、セル B1、セル B2 などにAAなります。ABAC

セル A1 の場合、セル B1、セル B2 などにXAなります。XBXC

人気のコードを試してみました=CHAR(CODE(A1)+1)が、Z以降は動作しません。

ヒントがあれば歓迎します。

答え1

これを試してください: セルに「AA」と入力してくださいA1セルに次の数式を入力しますB1ドラッグして

=IF(RIGHT($A1,1)="Z", CHAR(CODE(LEFT(A1,1))+1),LEFT(A1,1))&CHAR(65+MOD(CODE(RIGHT(A1,1))+1-65,26))

次のように増加します: AA、AB、AC、...、AZ、BA、BB、BC... など

特定のプレゼンテーションに合わせて、この式を調整することもできます。ただし、これは「ZZ」以降では機能しないことに注意してください。

更新: バグを修正しました

答え2

エクセルのスプレッドシート自体を使って文字数を増やすことができます。増加はからまでですAXFC

まずセル参照を作成します。 INDIRECT(A1&"1")
次に次の列のアドレスを見つけます。 ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)

次に、$??$1 から文字を抽出します。2 つの方法があります。

  1. 2番目の$を探し、その間のテキストを切り取ります

    =MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2)-2)
    
  2. 文字列内の1と$を何もないものに置き換えます

    =SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),"$",""),"1","")
    

あなたに最適なものを選択してください

答え3

別の例: これをセル A1 に入力し、数式を任意のセルまたはすべてのセルにコピーします。

=CHAR(MOD(行(A1)-1;26)+65)&CHAR(MOD(列(A1)-1;26)+65)

問題についてどのように考えるかの例として意図されています。

答え4

これを使用した別の解決策は次のとおりADDRESS()です。

=MID(ADDRESS(1,26+ROW()),2,2)

AA上記の数式は、最初の行と 2 番目の行に返されますAB

また、数学を使用すると、式は次のようになります。

=CONCATENATE(CHAR(INT(ROW()/26)+65),CHAR(MOD(ROW()-1,26)+65))

関連情報