• 締切済み

エクセル2000で計算式をいれたセルに文字を打つ時

いつもいつも、お世話になっています。 エクセルで数式を入れたセルに文字を打つと数式がDeleteされてしまいます。 数式だけ保護する方法ってないですか? 作った数式はVLOOKUP関数です。 A1のセルに番号をいれるとB1のセルに患者名がでるように設定しました。 B1に患者名を直接入力すると計算式は消えてしまいますよね。。 B1に直接入力しても数式は残せる方法ってありますか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.10

関数式を使わないならば、悩は起こりません。VBAですが、 E1:F4に氏名テーブルがあるとして (E列) (F列) 1 吉田 3 大田 4 平田 6 山田 A列に番号(氏名コードのようなもの)を入れると、B列に氏名が出ます。 2や5や7をA列に入れると「表にありません」とでるので B列対応行に氏名を打ちこんでください。 Sheet1のChangeイベントとして下記を作ります。 Private Sub Worksheet_Change(ByVal Target As Range) Dim cl As Range r = Target.Row c = Target.Column If c <> 1 Then Exit Sub x = Worksheets("sheet1").Cells(r, 1) Set cl = Range("E1:E4").Find(What:=x, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False) If cl Is Nothing Then MsgBox "表にありません" Else Cells(r, 2) = cl.Offset(0, 1) End If End Sub <操作>氏名表を作り、Sheet1の画面状態から (1)ALT+F11(VBEの画面) (2)左側フレームVBAProjectのSheet1をダブルクリック (3)General-->Worksheet    Declaration-->Changeを選ぶ (4)上記をコードをコピー(Private・・とEnd Sub行は除く)し貼り付け。 (5)Sheet1に戻りA列に番号を打ち込む操作   

回答No.9

初めまして。あなた様のお考えになっていることは、マクロを書けば数式をコピーしたりする手間をかけずに実行することができます。 もし私でよろしければ、サンプルマクロを作ってみたいと思います。ご希望の節は、B1に入力している数式をお知らせ下さい。すぐにサンプルマクロを作らせていただきます。 お手数をおかけいたしますが、よろしくお願いいたします。

  • ubonoti01
  • ベストアンサー率20% (43/211)
回答No.8

#7-comvさんの回答は大変ユニークで面白いですね。 ついでに[セル]→[配置]で、B列は折り返さないようにしておくわけですね。

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

こんばんは 既に皆さんんのレスでおわかりだと思いますが 数式も文字もセルに対しては同じ入力行為ですから 同居できません! 代替案としては A1に番号 B1に式 セル幅を0.31ぐらいに狭める C列は空き列にしておけば B列の結果はC列に表示 されます(厳密には B:C列をまたいで表示) これなら必要に応じてC列に直接入力してもB列の 式は残り かつ C列の書き込み優先となります。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

#2のご回答はいいと思います。少し修正して (1)C列はC1に1スペース入れ、下へ複写する。    (0を出さないため) (2)B1には =IF(ISNA(VLOOKUP(A1,$E$1:$F$3,2,FALSE)),C1,VLOOKUP(A1,$E$1:$F$3,2,FALSE)) と入れるのはどうでしょう。 E1:F3にテーブルがあるとしています。 (A)  (B) (C)       (E) (F)  1 吉田 1 吉田 2 山田 2 山田 1 吉田 3 上田 4 大田 大田 3 上田 4 近藤 近藤 A列に番号を入れてB列がスペースのままなら、C列に 名前を入れる。するとB列にも入る。

  • ubonoti01
  • ベストアンサー率20% (43/211)
回答No.5

「数式を入れたセルに文字を打っても数式がDeleteされないようにする」は、矛盾した要求ではないでしょうか? 可能/不可能の問題ではないはずです。

  • ka3
  • ベストアンサー率18% (36/194)
回答No.4

 [書式(O)]-[セル(E)]の「保護」タブをご覧下さい。

  • Cid
  • ベストアンサー率22% (37/167)
回答No.3

目的が >B1に直接入力しても数式は残せる方法 でしたら、Excelの仕様で出来ないことになってるはずです。でないと計算式自体が無意味になってしまいますので。 出来るとしたら、 数式が入っているセルだけ上書きが出来ないように保護することくらいでしょうか。

  • joe-009
  • ベストアンサー率20% (7/34)
回答No.2

なぜせっかくB1に患者名がでるのにわざわざ直接B1に患者名を入力しなければならないのでしょう。 もしかして、「番号を入れても出てこない場合には、直接入力したい」ということでしょうか。 であれば、こういう方法もあるかと思います。 ・B1に出てこない場合は、C1に入力する。 ・さらに、D1に下記の式を設定しておく。 =IF(ISNA(B1),C1,B1) 「もしB1がN/A(値なし)ならばC1を、そうでなければB1を参照せよ」 そうすると、D1にはB1かC1の値が表示されるようになります。 ぜんぜんはずしてたらすみません。

noname#3361
noname#3361
回答No.1

残念ながら不可能です。

関連するQ&A

  • エクセルのセル入力の計算式について

    エクセルのセルに入力した計算式で仮にC1セルにA1/B1という式がある場合、A1かB1のセルをDELETEで消した場合、通常C1に#DIV/0!が表示されると考えられますが、消した場合でもC1に変化が起こらない現象になっています。これは何かで保護されているのでしょうか。

  • 関数で求めた2つのセル範囲内の、平均値を出したい。

    日の出から日の入までの範囲の平均温度を求めたいのですが、日の出時刻と日の入り時間はVLOOKUP関数によって求めています。 A列に時刻、B列に温度が並んでいます。 求めた時刻が例えば、日の出6:00(セル番号 A360)、日の入18:00(セル番号 A1080)となっている場合。 当然ながら、=AVERAGE(A360:A1080)と入力すれば可能ですが、 =AVERAGE(VLOOKUP関数数式:VLOOKUP関数数式)はエラーとなります。 =AVERAGE(VLOOKUP関数数式,VLOOKUP関数数式)は2点のみの平均温度となってしまいます。 どのような方法で解決できるでしょうか? あるようで見つからないのですが、指定した範囲内に一致する数値があった場合にそのセル番号を返すような数式はあるのでしょうか?

  • EXCELのセルのコピー

    EXCELで、セル(例えばE8)に「=VLOOKUP(D8,携帯番号一覧!A1:B18,2,0)」と入力して、この関数を下のセル(E9~)にどんどんコピーをしたいのですが、普通にコピーをするとE9のセルでは「=VLOOKUP(D9,携帯番号一覧!A2:B19,2,0)」となってしまいます。「D9」はいいのですが、「A2:B19」ではなく、「A1:B18」のままでコピーをしたいのです。今は、一つ一つコピーしては変更を繰り返していますが、もっと簡単にコピーする方法は無いのでしょうか?

  • EXCELで計算式を文字列として抜き出す?

    excelにて、計算式を文字列として他のセルに表す方法はありますか? 数箇所だったら数式を直接コピーすればできるのですが、行が多いので関数でひとつ作ってそれを下の行へコピーすれば楽にできるのかなと思いまして・・ 例えば、  C1セルに「=A1+B1」という計算式が入っているとして、  D1セルに「=A1+B1」と式自体を表示させたい。 という場合に。D1に関数をいれればいいとかありますか?

  • エクセル 選んだセルの右斜め上を示すには

    エクセルで数式を入れたいと思っているのですが、 数式を入れるセルの右斜め上のセルを数式内にいれたいのですが、 どのようにしたら選択できるでしょうか。 文章にすると伝わりづらいかと思うのですが、 例えば、A2のセルに数式を入力するとして、 その数式の中に、B1を含めるようにしたいのです。 CS検定のエクセル2級は取得しているので、関数の基本的な使い方 は理解できると思います。 簡単な関数などを用いてできる方法がありましたら お教えいただけませんでしょうか。 よろしくお願いいたします。

  • エクセルの再計算

    いつもお世話になります。 エクセルで住所録を作っています。 sheet1に社員No.、郵便番号、氏名、住所1、住所2、住所3と入力したものを sheet2に封筒印刷できるようにVLOOKUP関数を使っています。 sheet1に住所を新しく入力しEnterを押すとツールバーの下のグレーの所 (普段は”コマンド”と表示されています) が再計算10%→25%→→100%となり、再計算が終わらないと次のセルの 入力ができません。 ツール→オプション→計算方法タブの計算方法を自動から手動に変えても いつの間にか戻ってしまいます。 住所録を入力するのに時間がかかり、困っています。 何か良い策はありませんか? そしてなぜこのようになってしまったのでしょうか? 宜しくお願いします。

  • エクセルで計算式だけ残すのは?

    エクセルを今使っています。 関数などを入力して計算したセルの値だけを削除する方法はあるのでしょうか? シートの保護だとすべて書きかえ出来なくなるので 特定のセルだけです。

  • エクセルのセル範囲内計算

    初歩的な質問で、すいません。 エクセルなのですが、例えばB1からB10まで数値を入力したとします。 B11には、B1からB10までの平均値(AVERAGE関数により算出)を表示するようにしています。 そこでなのですが、AVERAGE関数を設定すると、B1からB10までの間全部の数値が入力されていなくても計算されるのですが、B1からB10全てのセルに数値が入力されていないと計算されないようにしたいのです。 マクロは、まだ使えるとこまでいっていないので、マクロを使わないで計算表示される方法お分かりの方、教えていただきたいです。宜しくお願いします。

  • セルで計算式が表示されてしまう

    エクセルでシート内に計算式を入力しています。 内容としては以下のようなものです。 =IF($K$6="","",VLOOKUP($L$6,入力シート!$A$7:$AX$100,6,FALSE)) 他のセルではきちんとリンクしてデータが表示されますが、1つのセルだけ数式がそのまま表示されてしまいます。 他のきちんと表示(計算)されるセルの書式などをコピーして貼り付けても改善されません。 丸ごとコピペしてもだめです。 何か解決方法はないでしょうか? ちなみにエクセルは2003でも2007でも2010でも同様の状況です。 よろしくお願いします。

  • EXCEL計算式が入っているセルを空白表示に

    EXCELデータで、セルに計算式が入っているのに画面上には何も数字が表示されていないというファイルをもらいました。 普通に、例えばSUM関数とかを入力したとき、結果が0だと、0が表示されますよね。もらったファイルでは、0が表示されておらず、0以外だと表示されるようになっています。 そのセルの計算式を見ても、特に変わった条件数式(IF関数など)が入ってもおらず、セルの書式設定を見ても特に変わったことがあるようには思えませんでした。 いったいどうやったら、こういうことができるのでしょうか?

専門家に質問してみよう