• ベストアンサー

EXCELでアンケート集計

EXCELでアンケートの集計をしているのですが、 数値を入力したら、文字に変換できる関数はないでしょか? 例 1と入力したら男性となり、2と入力したら女性に変換されるように設定したいのですが。 CHOOSE、T等をIFと組合わせて挑戦してみたのですが、 どうしてもうまく出来ません。 出来ないなら入力規則を使いますので、出来ないと回答下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.4

再び、こんにちは。 勘違いしてました。(^^;; VBAでしかないかな。 シートタブを右クリックして、コードの表示 出てきたVBE画面にコピペします。 A列であれば、1で男性、2で女性に変えます。 Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim r As Range  For Each r In Target   If IsNumeric(r.Value) And r.Column = 1 Then     Select Case r.Value     Case 1: r = "男性"     Case 2: r = "女性"     End Select   End If  Next r End Sub

nyankororin
質問者

お礼

ありがとうございました。 >If IsNumeric(r.Value) And r.Column = 1 Then の数字を変えて、 >Case 1: r = "男性" の男性の部分を変更して、 3枚のシートで10列まで(必要分) 設定できました。本当に感謝しています。

その他の回答 (4)

回答No.5

マクロに関しては、すでに papayuka さんがアドバイスしてくれてますね。 同じような内容のマクロですが、こちらは、空白セル内でのダブルクリック1回で"男"、2回で"女"、3回目には空白にするというものです。 VBEditorの画面左のツリーから、当該シート名をダブルクリックして表示される右側画面に、次のモジュールをコピペしてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Select Case Target.Value Case Is = "" Target.Value = "男" ' Target.Characters(1, 1).Font.ColorIndex = 3 Case Is = "男" Target.Value = "女" ' Target.Font.ColorIndex = 1 Case Is = "女" Target.Value = "" ' Target.Font.ColorIndex = 1 Case Else Target.Value = Target.Value End Select Cancel = True End Sub

nyankororin
質問者

お礼

ありがとうございます。 同じ目的でも色々な組み方があるんですね。 でも、私にはちょっと?(かなり)難しいです。 これから勉強していきます。

回答No.3

A1 に 1 を入力したら "男" と 表示されるのも A1 ということでしたら、一般関数では "循環参照" になってしまうので不可能です。 マクロを使えばできますが、入力規則のほうが簡単ですよね。

nyankororin
質問者

お礼

回答ありがとうございます。 >マクロを使えばできますが その方法を教えて頂きたいなぁと、 思うのですが難しいでしょうか?

  • comv
  • ベストアンサー率52% (322/612)
回答No.2

こんばんは! 例えば  A1に1または2を入力 B1に男性、女性を表示  であれば セルB1に数式 =TEXT(A1,("[=1]男性;[=2]女性;;"))  A1に1または2を入力 A1に男性、女性を表示  であれば セルA1 書式設定 表示形式 ユ-ザー定義  種類欄に [=1]男性;[=2]女性;; (表示上で男女であり実際の値は当初入力した1or2です) 集計する時は  男性 =SUMIF(範囲,1)  女性 =SUMIF(範囲,2) となります

nyankororin
質問者

お礼

回答ありがとうございます。 表示形式を使えば良かったんですネ。 難しく考えていたので関数でないと、 と思い込んでました。 目から鱗です。 集計の時のことまで教えて頂き、 重ねゞありがとうございます。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 セルB1にでも下記の関数をいれて、セルA1に 1 か 2 を入れます。 =IF(ISERROR(CHOOSE(A1,"男","女")),"",CHOOSE(A1,"男","女"))

nyankororin
質問者

お礼

回答ありがとうございます。 でも、1つのセルで表示させたいので、 私の思っているのとはちょっと違います。 折角答えて頂いたのにすみません。

関連するQ&A