うちンち

パソコンと家族と、ときどき爆弾。

入力は数字で、表示は日本語で(複数回答バージョン)

2009-02-24 | エクセルおぼえがき
先日の記事、入力は数字で、表示は日本語で、は、選択肢が複数回答の場合は、適用できない
今のところ、複数回答の場合、集計のことも考え、それぞれ別の列にデータを表示させる、という方法にたどりついている。その手順は、以下のとおり。

------------------

1)まず、表示する列を用意する
  入力列の後に、アンケートの選択肢数プラス1列を用意、以下のように入力する


2)入力した数字に応じた文字列を表示する場所に、数式を入力する
 とりあえず、上記表アンケートで見るとH11に入力が必要な、項番1の設問1-2の選択肢1の文字列を入れるための数式例
(ア)未入力の行にエラー表示をさせないための式を入れる
   =if($B11="","",<(イ)の数式を入れる>
   <解説>
   セルB11にデータが入力されていなければ空白を表示する、という数式
   のちのちコピーすることを考え、列番号は絶対指定しておく(→$Bと、Bの前に$をつける)
(イ)入力値に応じて表示させる文字列を指定する
   if(<(ウ)の数式を入れる>,H$10,"")
   <解説>
   (ウ)の数式で指定する条件と合致していれば、H10の文字列を表示する、という数式
   のちのちコピーすることを考え、H10の行番号は絶対指定しておく(→$10と、10の前に$をつける)
(ウ)文字列を表示させる条件を指定する
   ISNUMBER(FIND(H$9,G11))
   <解説>H9に入力されている文字がG11に含まれていれば、という条件を指定する数式

以上を整理すると、H11に入力すべき数式は、
=IF($B11="","",IF(ISNUMBER(FIND(H$9,G11)),H$10,""))

同様に、I11には
=IF($B11="","",IF(ISNUMBER(FIND(I$9,G11)),I$10,""))
と、入力する。
この場合、横方向へのコピーだけでは赤文字部分のセル参照が変わってしまうので気をつける。ここでG列を絶対参照にしないのは、他の設問はこの設問の数式のまるごとコピーで済むようにするためである。
こうして選択肢分の列数、同様の式を入力し、それを入力が必要な全行にコピーする。

3)未回答の場合に文字列を表示するための数式を入力する
 とりあえず、上記表アンケートで見るとL11に入力が必要な、項番1の設問1-2が未入力の場合の数式例
(ア)未入力の行にエラー表示をさせないための式を入れる
   =if($B11="","",<(イ)の数式を入れる>
   <解説>
   セルB11にデータが入力されていなければ空白を表示する、という数式
   のちのちコピーすることを考え、列番号は絶対指定しておく(→$Bと、Bの前に$をつける)
(イ)G11が未回答の場合に表示する文字列を指定する
   IF(G11="",L$10,"")
   <解説>
   L10の「未回答」という文字列を表示する。ここではセル参照にしているが、もちろん「L$10」の代わりに直接「"未回答"」を入力しても良い

以上を整理すると、L11に入力すべき文字列は、
=IF($B11="","",IF(G11="",L$10,""))
である。

これらの数式を入力すれば、以下のように入力値に応じた文字列が各列に表示される。
必要な部分は絶対指定していないため、ひとつの設問でこのセットを作成したなら、そのままコピーして利用できる。
なお、画面セルG13に入力しているように、複数回答の入力はカンマで区切らなくても可能で、カンマを入力する手間が省けて大変便利である。
ただしその分、2桁の数字を入れても1桁の数字としてもカウントされるため、2桁の選択肢がある場合にはこの数式は適用できないという大きな欠点があることを申し添えておく。

最新の画像もっと見る