- ベストアンサー
関数
Aの列には市を入力したいです。 たとえばA1に大阪と入力すると「大阪市」と表示させたいのです。 通常はユーザー定義で設定すると思いますが、関数を使って設定することは可能でしょうか? もし可能であれば数式を教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
残念ながら同一セルにデータ入力と関数は共存できません。 マクロなら可能ですが、敷居が高いですので、ユーザ定義で対応して下さい。
その他の回答 (5)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
末尾に「市」の付いた文字列データを得るのに、1千回、1万回とワープロ変換してると、日が暮れそう。「市」という文字専用の列を設けると、市名の長さによって、「市」の直前に隙間が空いちゃったり?状況、目的に応じて、いろんな技を使い分けれるのがいちばん良いんじゃないかなあ。
- tsubuyuki
- ベストアンサー率45% (699/1545)
こういう質問を見る度に思う事なんですが。 マクロを使って入力時されたら“市”を付け加えることも、 別のセルに“市”を付け加えて表示することも、 ユーザー定義で“市”を擬似的に付け加えることも 全て技術的には可能です。 それらに関しては他の回答者さんが示してくださっている通りです。 が、私はあえて苦言を少々。 仮に「“大阪”と入力したら“大阪市”に変換される機能」を実装したとして、 ここに「“大阪市”と入力してしまうと“大阪市市”に変換されてしまう」と言う 弊害が発生することは想像できませんか? これを回避する手段も考えなくてはいけません。 “市”をすでに含んでいたら新たに付け加えない、とすると、 大阪府内だけで考えるとほとんどもんだいにはなりませんが、 四日市市などは中途半端なままで残ってしまいますが、これはどうしましょう? 群・町村にも“市”がついて今いますが、どう考慮しましょうか? などなど、実はものすごい複雑な“処理”を考えなければいけないのです。 それを考えてまで、この機能や仕組みは必要ですか? 素直にローマ字入力で「SI」二文字、かな入力で「し」一文字を変換。 あらかじめ入力した方が早く、正確ではないですか? 複数行に入力するのであれば、一カ所だけ決めてコピー貼り付けの方が楽じゃないですか? 正確さを欠く「簡便化」は改悪でしかありません。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
別セルに表示させたい場合は次式。 =a1&"市" …… A1 が空白でも「市」と表示 あるいは =if(a1="","",a1&"市") …… A1 が空白なら「市」も非表示 B1 に「市」を入力しておいて「a1&b1」とすることもできます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 単に見た目で○○市としてはダメですか? A列すべてを範囲指定 → 右クリック → セルの書式設定 → 「表示形式」タブ → ユーザー定義 → 「種類」の「G/標準」のところに @"市" としてOK これで見た目は○○市と表示されます。 ※ 実データとして○○市とデータにしたい場合はVBAになってしまいます。 その一例として・・・ 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてA列にデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Application.Intersect(Target, Columns(1)) Is Nothing Or Target.Count <> 1 Then Exit Sub If Not IsNumeric(Target) Then Application.EnableEvents = False Target = Target & "市" Application.EnableEvents = True End If End Sub 'この行まで ※ 普通はタイトル行があると思いますが、それは無視しています。m(_ _)m
- akiomyau
- ベストアンサー率43% (555/1280)
同一セルに関数で表示させることは出来ません。 別のセルであれば可能ですが。 なぜなら、関数の入っているセルに文字を入れれば関数が消えてしまうからです。
補足
ちなみに、もし別のセルに表示させるのであればどのような関数になりますか?