2024年3月29日

Excelのオートフィルで、文字列の真ん中の数値をインクリメントしたい

Excelには、自動でセルに連番をふる機能があります。
起点となるセルに数値を入力し、フィルハンド(セル右下をマウスで
ポイントしたときに表示される+印)をドラッグすると、
セルの数値をインクリメント(加算)して、表示をおこなうことができます。

これは、大変便利ですね。

ただし、セルに入力されている文字に、数値が複数ある場合は、うまくいくでしょうか?

1 動作確認

 

数値の位置によって、以下のような結果となりました。

実際に確認したところ、文字列に含まれる数値がひとつの場合、
その値は自動で加算されます。

2つ以上ある場合は、末尾に近い方の数値が自動で加算されます。

では、以下のように真ん中のオートフィルを実現するには、
どうしたらいいのでしょうか?

2 解決方法

Excelのオートフィルの機能を設定で変更することはできません。
そこで、先ほど調べたオートフィルの規則に従い、
インクリメントしたい数値が文字列の各々の位置に配置される様、
文字列を、「1た1」と「ち1」の2つに分割します。ここ重要!

 

 

1.動作確認で確認した規則から、末尾に数値があれば、
インクリメントされることは分かっています。
文字列をそれぞれ、インクリメントしてみます。

A1列             B1列

  と  

予定した文字ができあがりました。
この二つの文字を結合することで、作りたい文字を作成することができます。

文字列の結合は、「=CONCATENATE(A1,B1)」を使用します。

結合した文字列を表示するセルを選択して、「=CONCATENATE(」と、
入力します。

 

この状態で、始めに来る文字列のセルをクリックします。

例)A1セルを選択すると、
「=CONCATENATE(A1」となります。
続けて、「,」を入力し、さらに、B1を選択すると、
「=CONCATENATE(A1,B1」となりますので、あとは、「)」丸かっこ閉じるを
入力して、Enterキーを押します。

すると、「1た1ち1」が表示されます。
このセルのフィルハンドを下へドラッグすることで、
文字列ができあがります。

3 補足

さて、作成した文字列は、見た目上はセルに表示されていると思います。

しかし、実際にセルに格納されている値は、計算式が表示されているはずです。
「=CONCATENATE(A1,B1)」

このの状態のまま文字列を使用すると、Excelのセルの状態に応じて、
値が変化してしまいます。

作成した文字を本当の文字として扱うために、値に変換します。
セルに表示されている値をクリップボードにコピーします。

ショートカット「Ctrl + C」
または、
マウスで右クリックして、コピーを選択します。

 

 

続けて、値を張り付けるセルを右クリックし、メニューから
「形式を選択して貼り付け(S)」をポイントし、
「値の貼り付け」の値をクリックします。

この操作で張り付けた値は、数式を含まない、文字列としてセルに保持されます。