PartX  攻略 ROW関数とCOLUMN関数

関数あらかると

 行番号を求めるROW関数、列番号を求めるCOLUMN関数の使い方を説明します。
この2つの関数は、応用によって変数的な使い方もでき大変便利な関数です。
このサンプルは、ブックに収めていますのでダウンロードしてお試しください。

■ 住所録など不要行を行削除してもシーケンス番号が必ず昇順に並ぶ方法はないか? 
A列のSeqNoがシーケンス番号となります。例えば6行目を削除しても削除行から再入力しないで自動付番する方法がROW関数です。
書式  =ROW(範囲)
 範囲は、行番号を調べるセルまたはセル範囲の参照を指定します。
セルA3〜A12まで同一の数式です。
=ROW()-2

セルA3の「=ROW()-2」は ROW() → 3行目なので 3 が返値となります。-2 とは3行目がSeqNo 1 となるので求めた行から2を減算しています。セルA10まで同じ理屈になります。

 1つのセル内に入力されている文字列を別の行に10文字づつ分割できないか?
セルB2に入力されている文字列をセルA2から10文字づつ行分割する方法です。
これは、ROW関数の応用的使い方です。下記関数式は、セルA2〜A5に共通する書式です。
=MID($B$2,(ROW()-2)*10+1,10)
MID関数の書式  =MID(文字列,開始位置,文字数)
文字列 → セルB1です。セルA2から下方にフィルドラッグするので変化しないように絶対セルで定         義します。

開始位置 → (ROW()-2)*10+1  セルA2を基準に計算を行うと納得すると思います。
ROW()は2が求められます。(2-2)*10+1の算式になるので答えは 1 となります。
つまり、セルB1の文字列の1文字目を指しています。次にセルA3ですが (3-2)*10+1 の算式になるので答えは 11 です。つまり、2行目のセルA3はセルB1の文字列の11文字目を指しています。以降は同じ考え方です。

文字数 → 10文字単位なので 10 を指定します。
※MID関数は「PartU  攻略 文字列操作関数とその組み合わせ」を参考ください。
 A列の文字列をセルB1から順に代入する方法?
     
セルA2からA8まで入力されている文字列をセルB2からH2へ順に代入する方法です。セルB2〜H2まで下記の関数式は共通です。
=INDIRECT("A"&COLUMN())
INDIRECT関数の書式   =INDIRECT(参照文字列,参照形式)
指定される文字列への参照を返します。参照文字列によって指定されるセルに入力されている文字列を介して、間接的なセルの指定を行います。以下セルB2に定義する数式の説明です。
参照文字 → "A"&COLUMN()  "A" はセル列Aを表し & 文字連結でセルB2の列番号を求め
ます。つまりセルB2はセルA2を代入しなさい。といったことになります。

参照形式 → TRUEを指定するとA1形式、FALSEを指定するとR1C1形式です。省略はA1形式となり
ます。
 A列の文字列を1文字ずつ抽出しセルB2から順に代入する方法?
     
セルA列に入力されている文字列をセルB列から1文字づつ抽出する方法です。
これは、COLUMN関数の応用的使い方です。セルB2の数式を参考します。
=IF(COLUMN()-1>LEN($A2),"",MID($A2,COLUMN()-1,1))

COLUMN()-1 → 2-1 となるので結果は 1 です。要するにセルB列は先頭1文字目を指します。 
LEN($A2) → セルA2の文字列の桁数を求めています。
つまり、論理式 COLUMN()-1>LEN($A2) は文字列の桁数を超えてた時の判断となり真の条件の時は文字は無いので "" を代入しています。FALSEの場合は MID($A2,COLUMN()-1,1) セルA2の文字列の先頭1文字目から1文字抽出し代入することになります。
セルC2以降も同様の考え方です。チョット難しいかも知れませんがシンキングしてみてください。
不明な点は、Q&Aでお尋ねください。  ^^  
最後に $A2。 絶対セルにしては片割れですね。セルA列は文字列が入力されているセルになりますのでセルA2からフィルドラッグした時に変化しないようにします。しかし行は、2のままでは参照セルがずれてしまいます。そこで行だけ変化させるように $A2 のように定義をします。

いかがでしたか、ROW関数、COLUMN関数って魅力的ですよね。しっかりコツをマスターすれば強い味方になってくれるはずです。

○サンプルブックのダウンロード

  参照できるExcelブックを用意しています。下図のダウンロードボタンをクリックして下さい。

     Excel Book Name: exck850_z.xls  Download file: exck850_z.lhz