
Excel にAA
または のような文字列がありますXA
。
次のように増分する必要があります:
セル A1 の場合、セル B1、セル B2 などにAA
なります。AB
AC
セル A1 の場合、セル B1、セル B2 などにXA
なります。XB
XC
人気のコードを試してみました=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
エクセルのスプレッドシート自体を使って文字数を増やすことができます。増加はからまでですA
。XFC
まずセル参照を作成します。 INDIRECT(A1&"1")
次に次の列のアドレスを見つけます。 ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)
次に、$??$1 から文字を抽出します。2 つの方法があります。
2番目の$を探し、その間のテキストを切り取ります
=MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),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))