Excel。セル内の文字をセルごとに一文字ずつ入力したい。またその逆は?とにかく楽したい。
<MID&COLUMN関数とCONCAT関数>
あるアンケート結果の表があります。
B列の回答欄は、問1から問5までの質問結果をまとめた状態です。
例えば、NO1の「54132」は、問1を「5」問2を「4」というように答えています。
しかしながら、結果を連結してしまっているので、データとして使い勝手が悪いので、次のように、セルごとに結果を表示させたいわけです。
当然、自力でコツコツと入力するとしたら、膨大な時間を費やしてしまうのは明らかです。
Excel VBAでマクロを作ってとか思いがちですが、ちょっとした関数を使えば、比較的容易に、セルごとに文字を入力することができます。
文字列を指定された位置から、指定された文字を抽出したいわけですね。
このような時には、『MID関数』がオススメです。
では、C2に次のような数式を設定します。
=MID($B2,COLUMN(A1),1)
数式をオートフィルでコピーすれば、完成します。
では、簡単にMID関数でつくった数式の説明をします。
最初の引数。
「$B2」。
元の文字列はB列にあります。
オートフィルでコピーするので、複合参照にしています。
2番目の引数には、「COLUMN(A1)」と設定しました。
この2番目の引数は、開始位置を設定するわけですが、C2の数式は、一文字目ですが、D2は、二文字目を抽出させるようにする必要があります。
要するに、開始位置をずらさないといけません。
どうにか、1・2・3…とオートフィルでコピーした時にずれてほしい。
列番号を使えば対応することができそうです。
列番号を算出するには、「COLUMN関数」を使うことで、算出できます。
3番目の引数は、何文字、抽出するの?ということですから「1」と設定すればいいわけです。
これで、セル内の文字を、一文字ずつセルに入力することができます。
さて、今度は逆で、セルごとに一文字ずつ入力されているのを、一つのセルにまとめるには、どうしたらいいのでしょうか?
問1が○とか×ならば、B2には、PHONETIC関数を使う方法もありますが、今回のように数値だと上手くいきません。
今回のようにセルの文字を結合させるのに便利な関数があります。
それが「CONCAT関数」。
このCONCAT関数は新しく登場した関数で、CONCATENATE関数が進化した関数です。
では、B2に次の数式を設定して、オートフィルでコピーしてみましょう。
B2の数式は、
=CONCAT(C2:G2)
たったこれだけです。
これで、一つのセルに、まとめることができました。
CONCATENATE関数では、この範囲選択で文字接続をすることができなかったので、少々面倒でした。