プロが教えるわが家の防犯対策術!

Excelについて教えてください。

図のようにセルの値が21ならば、緑のセルにLと表示します。そして次に緑のセルに任意の数値を入力したいです。(L65のように)

Lと表示することはできるのですが、任意の数値を入力すると関数がつぶれてしまい上手く表示できません。

どうすればLと表示されかつ、任意の数値を入力できますか?例)L65

「Excelについて教えてください。 図の」の質問画像

A 回答 (4件)

ご質問者やおやりになろうとしていることの目的が今ひとつはっきりしませんが、


「指定されたセルが21に等しい」という条件を満たす場合、別の緑のセルに「L」と表示され
続それに続いて任意の数字を入力して表示したい。
といことだとすると、必ずしも入力セルと結果表示セルが同一である必要はないように思います。
添付画像の上段は入力列載セルと表示列のセルを分けた例です。
表示列に添付画像のような数式を記述すれば、条件を満たす場合はLが表示され、入力列セルに入力することでLに続けて任意の数字が表示されます。
また、添付画像の下段は入力セルと表示セルが同一で、条件付き書式を設定した例です。
条件を満たす場合は、入力兼表示セルに「’」を入力すると「L」と表示され、続けて任意の数字(画像では65)を入力するとL65のように表示されます。
条件付き書式の具体的な設定は添付画像を参考にしてください。
「Excelについて教えてください。 図の」の回答画像4
    • good
    • 0

こんばんは、


既に検証されている通り、数式のあるセルに値を入力すると
数式は削除され、入力値になります。つまり、出来ません。

これを回避する為には、数式以外で、数式の解と同じ書式を設定するか、VBAでプログラムする必要があります。

しかし、数式以外で、数式の解と同じ書式を設定した場合、セルの値は、入力した値が実態なので
その見えている結果で数式を組み立てる場合、少し問題になると思います。
また、途中の条件でのL表示は難しいかと思います。

ご質問の場合、列、セルが沢山あるのに、数式の入っているセルに書き込む必要があるのでしょうか?
VBAでやるにしても基本的な知識が必要になると思います。

もし、VBAでやるなら検討の余地がありますが、こんな感じ
対象シートモジュールに
Dim strTmp
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address(0, 0) = "A5" Then
If Range("A5") = 21 Then
Range("B5") = "L"
strTmp = Range("B5")
Else
Range("B5") = ""
strTmp = Range("B5")
End If
End If
If Target.Address(0, 0) = "B5" Then
Range("B5") = strTmp & Target.Value
End If
Application.EnableEvents = True
End Sub

VBAは忘れて頂いて、目視のわかり易さだけなら、いかようにもなりそうです。
例として添付図を
3行目が代替え案
4行目条件書式
5行目VBA結果(ただし、A列より順番に入力)
「Excelについて教えてください。 図の」の回答画像3
    • good
    • 0

「緑のセルにLと表示」する目的は何ですか?


例えば「1になったから、もう此処に入力してもOKよ」とか?
    • good
    • 0

式を入れていても、そこに新たなデータを入れると式はなくなります。


どうしてもやりたいならLは表示形式で設定するとかですかね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング