• ベストアンサー

エクセル 一つのセルで数値入力と数式を有効にできませんか?

エクセル2002を使っています。   A B 1 b 150 2 b 120 3 a ― 4 c 160 A列に入る文字がa以外であればB列に数値入力でき、aであれば”-”が自動的に表示されるようにしたい。 IF関数を使うと-表示は可能です。=IF(A1="a","-","") しかし数値を入力すると関数が消えてしまいます。 両方を有効にする方法はないのでしょうか? どなたかご存知の方、ご教授お願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆こんな方法は、いかがでしょうか?    A   B   C 1  b 2  b 3  a       - 4  c ■手順■ 1)C1=IF(A1="a","- ","") と入力します 2)C1の文字位置を、「右詰」にして、式を下にコピー 3)C列の列幅を「1ピクセル」にします 4)これで、一見B列に「-」が表示されたように見えます 5)B1:B10(範囲は実際にあわせてください)を指定して 6)メニューバーの[データ]-[入力規則]を選択します 7)「入力の種類」を「ユーザー設定」にします 8)数式に、 =ISNUMBER(B1)  と入力して、OK 9)これで、B列には、「数値」しか入力できません

yujihikari
質問者

お礼

ありがとうございました。 たいへん参考になりました。

その他の回答 (2)

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

これは表計算ソフトでは、数値・文字列など値を入力すると、式が壊れる仕組みなので、早くあきらめなさい。 時々この手の質問が出るが、原理上、無理です。 (1)しかし表データ入力が1回限りなら、壊れてもいいじゃないですか (2)VBAを使って工夫する (3)再度使うとき、B、C列に =IF($A1="a","-","")と入れておき 次ぎの入力のラウンドのときC列をB列に複写するとか。

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

C列を作って、C列に数字を入力。 B列は =IF(A1="a","-",C1) 入力セルと表示セルを分ける必要があるかと。

関連するQ&A

  • エクセルで入力した数値によって自動で入力される数式?

    エクセルで台帳を作っているのですが、 別の列のセルに入力した数値によって、 指定したセルに自動でA,B,C等と入力されるようにするにはどのように設定すればいいのでしょうか。 A列に0~1.1なら B列に A 1.2~2.9なら B 3.0以上なら C のように数字の範囲によってABCと表示されるようにしたいのです。 エクセルの数式等は簡単なものしかわからず、どのように調べたらよいかもわかりません。教えていただけたら助かります。

  • Excel2002でセルへの数値代入

    使用しているのはExcel2002なんですが 関数などを使用して空白セルへ数値及び文字列を 代入することって可能でしょうか? 例を挙げると、 セルA1に7という値を入力すると、 セルC1にある関数が「10-A1」という計算を行って セルB1に3という値を返すようにしたいのです。 また、セルB1に4という値を入力すると、 セルC1で計算を行い、セルA1には6が返る。 このようにセルA1、B1ともに、人の手で数値の 入力が行われる可能性があるので、表示部分のセルに 関数式を記述せず、空白としておく。 C1に入力する関数は IF(B1="",10-A1,10-B1) として、この結果を、またIFなどを使って 空白の方のセルに入力してあげればいいかなー というところまでは考え付いたのですが・・・ どなたか教えてください。

  • セル数式を文字もしくは数値に変換する

    A列に文字1/3~3/3、E列に数値1~3が入力されておりE列数値にマッチするようB1に左1文字の式=IF(A1="","0",LEFT(A1,1))の式を入力し、F1に=VLOOKUP(E1,B1:C3,2,0)の式を入力し文字Aを入力したいのですがエラーになります。 B列が1でなく式として認識されるのでなにか良い方法はないでしょうかよろしくお願いします。

  • EXCEL 数式が入った空白セルを数える

    毎度お世話になっています。 質問の内容ですが、例えば下記のようなシートがあるとします。 セルB1、セルC1、セルD1:手入力セル セルA1:数式「=IF(B1="","",B1+C1)」 セルA2:文字列 セルA3:数式「=IF(D1="","",D1*0.1)」 セルA4:文字列 セルA5:A1+A3の計算結果を表示 (※なお、セルA2、A4は数値が入らない) というような場合において、 ●セルB1、C1、D1になにも入力されていない場合、セルA5が空白となる。 ●セルB1、C1にのみ数値が入力されている場合、セルA5の計算結果がセルA1の値のみ。 ●セルD1にのみ数値が入力されている場合も上記と同様に計算結果が表示される。 以上の条件を満たす数式をセルA5に入力したいのですが、 COUNTBLANKは数式が入っている場合には使えず、COUNTAの場合だとセルA1、A3のどちらにも数値が入った場合に表示される、といった数式になります。 IFをいくつも使えば可能とは思いますが、もう少し単純に数式を作れたらと思い質問をさせて頂きました。 よろしければ御回答宜しくお願い致します。 (内容を訂正したため、いったん質問を削除しました。もし御回答中の方が居ましたら申し訳ありませんでした。)

  • Excelにて列の一番下にある数値を表示する関数

    質問させていただきます。 エクセルの関数で「○列に入力されている数値の中で常に一番下にある数値を表示する」関数などありますでしょうか? 例えば B列に数値を入力していき、一番下?最終行?にある数値を自動で表示させたいです。下の例では「80」をとあるセルに表示させたいです。  A  B  C  D  ・・・・・ 1  100 2   99 3  150 4   80 5 6 ・ ・ =MAXという関数は見つけることはできたのですが・・・ =MAXの関数では、最大値しか表示できないので・・・ 色々と調べてみたのですが、調べ方が悪いのか探し出せませんでした。 お手数ですがよろしくお願いします。

  • EXCELでセルに入力されたセルを参照したい。

    はじめまして、EXCEL 2000 で質問です。 セルに入力されている文字列を、参照する関数があれば教えていただきたいです。 たとえば、セルA1に 文字列"B32"を入力します。 セルB1に =sansyou(A1) という関数を入力すれば セルB32の内容が参照される。 ということがやりたいのです。 C言語ですと、ポインタに相当するとおもいます。 どうか皆さんの知恵を分けてください。

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • excelでセルに入力がある場合 数値を返す方法

    excel2010にて 交通費と日当を記載するシートを作ってます。 日付がある場合、必ず 5,000 という数値が自動的に入るようにしたいのですが、 いい方法はないでしょうか。 たとえば、A1に日付が入っている場合、B1に 『5,000』と 自動で入るようにしたいです。 現状はB1に下記のように設定してみました =IF(A1="","","5000") この場合、5000はうまく入るのですが、文字列として入力されてしまうため、 集計ができません。 なお、『5,000』は固定です。 よい方法、できるできないを教えてください。 宜しくお願いします。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

  • エクセルで数式が入ったセルを空白にしたい。

    エクセルで数式が入ったセルを空白にしたい。 A1に"100"と言う数字、 B1はA1と同じ数値を自動入力させているので"=A1"という式が 入ってます。このB1の数式をB2からB10までコピーしているのでA2からA10に入力した数値が 反映されます。しかしA列にはいつも数値が入力されているわけではなく空白にする場合もあります。 でもB列の数式はコピーされてるので"0"が残ります。 そこですべて入力終了後にこのB列に自動で入力された"0"を削除したいのですが 置換で"0"にしても入ってるのは数値じゃなくて数式なので該当なしになるし、 数式も列ごとに移動されてるので一定ではありません。 この"0"を一括で削除するにはどうすればいいでしょうか? 入力範囲は500行まで及ぶのでいちいち"0"を探して削除するのが大変です。 分かりにくい質問ですいませんがよろしくお願いします。

専門家に質問してみよう