- ベストアンサー
EXCELでアンケート集計
EXCELでアンケートの集計をしているのですが、 数値を入力したら、文字に変換できる関数はないでしょか? 例 1と入力したら男性となり、2と入力したら女性に変換されるように設定したいのですが。 CHOOSE、T等をIFと組合わせて挑戦してみたのですが、 どうしてもうまく出来ません。 出来ないなら入力規則を使いますので、出来ないと回答下さい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
再び、こんにちは。 勘違いしてました。(^^;; 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
その他の回答 (4)
- misatoanna
- ベストアンサー率58% (528/896)
マクロに関しては、すでに 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
お礼
ありがとうございます。 同じ目的でも色々な組み方があるんですね。 でも、私にはちょっと?(かなり)難しいです。 これから勉強していきます。
- misatoanna
- ベストアンサー率58% (528/896)
A1 に 1 を入力したら "男" と 表示されるのも A1 ということでしたら、一般関数では "循環参照" になってしまうので不可能です。 マクロを使えばできますが、入力規則のほうが簡単ですよね。
お礼
回答ありがとうございます。 >マクロを使えばできますが その方法を教えて頂きたいなぁと、 思うのですが難しいでしょうか?
- comv
- ベストアンサー率52% (322/612)
こんばんは! 例えば A1に1または2を入力 B1に男性、女性を表示 であれば セルB1に数式 =TEXT(A1,("[=1]男性;[=2]女性;;")) A1に1または2を入力 A1に男性、女性を表示 であれば セルA1 書式設定 表示形式 ユ-ザー定義 種類欄に [=1]男性;[=2]女性;; (表示上で男女であり実際の値は当初入力した1or2です) 集計する時は 男性 =SUMIF(範囲,1) 女性 =SUMIF(範囲,2) となります
お礼
回答ありがとうございます。 表示形式を使えば良かったんですネ。 難しく考えていたので関数でないと、 と思い込んでました。 目から鱗です。 集計の時のことまで教えて頂き、 重ねゞありがとうございます。
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 セルB1にでも下記の関数をいれて、セルA1に 1 か 2 を入れます。 =IF(ISERROR(CHOOSE(A1,"男","女")),"",CHOOSE(A1,"男","女"))
お礼
回答ありがとうございます。 でも、1つのセルで表示させたいので、 私の思っているのとはちょっと違います。 折角答えて頂いたのにすみません。
お礼
ありがとうございました。 >If IsNumeric(r.Value) And r.Column = 1 Then の数字を変えて、 >Case 1: r = "男性" の男性の部分を変更して、 3枚のシートで10列まで(必要分) 設定できました。本当に感謝しています。