Excel のセルの現在の行番号と現在の列名を取得する関数は何ですか?
答え1
ROW
関数と関数を使ってCOLUMN
これを行うことができます。これらの数式の引数を省略すると、現在のセルが使用されます。これらは直接使用できます。関数OFFSET
、または行と列の両方を数値として指定できるその他の関数。
たとえば、セル D8 に入力すると、返される値は 8 になります。同じセルに=ROW()
入力すると、返される値は 4 になります。=COLUMN()
列の文字が必要な場合は、関数を使用できますCHAR
。列を表すために文字を使用することはお勧めしません。2 文字の列名に渡すときに問題が発生するためです (いずれにしても、数字だけを使用する方が論理的です)。
それでも、列の文字を取得したい場合は、列番号に 64 を追加するだけです (64 は より 1 文字少ないA
)。したがって、前の例では、セルの値を に設定すると=CHAR(COLUMN()+64)
、返される値は になりますD
。セルの値をセルの位置自体にしたい場合は、完全な数式は になります=CHAR(COLUMN()+64) & ROW()
。
参考までに、ASCII テーブルから 64 を取得しました。CODE
式を使用することもできます。この式を使用して更新された式は になります=CHAR(COLUMN() + CODE("A") - 1)
。 の最小値は常に 1 なので、1 を減算する必要がありますCOLUMN
。そうすると、式全体の最小戻り値は になりますB
。
ただし、これは 2 文字の列では機能しません。その場合、2 文字の列を適切に解析するには、次の数式が必要です。
=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()
もっと簡単な方法があるかどうかはわかりませんが、セル からA1
まではZZ99
問題なく機能することはわかっています。ただし、これは、文字ベースの列識別子の使用を避け、純粋な数値ベースの数式 ( の代わりに文字ではなく列番号を使用するなどOFFSET
) を使用するのが最善である理由を示しています。
答え2
次の機能を試してください。
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")
説明: ADDRESS(row_num, column_num, [abs_num])
. [abs_num] = 4
= 相対アドレス。つまり、返される値には '$' はありません。列 'AB' の場合、ADDRESS
'AB1' が返されます。代わりに '1' を削除します。
答え3
これを試して
=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")
これにより、$ などの記号が含まれない正確な列ヘッダーが提供されます。
答え4
列名を取得するために、次の数式を使用しました。
特定のセルの場合:
=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")
現在のセルの場合:
=SUBSTITUTE(CELL("address"),"$" & ROW(),"")
このバリエーションを試してみてください。3 文字の列で機能し、先頭に「$」が残りません。
=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")