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

とても困っているのでどうかお願いします。
たとえば、ある列にエクセル関数を挿入したとします。
今回私が挿入したのはIF関数でした。=IF(C1="","",10)をC1に入れて、それより下は、C2,C3,,とドラッグしていきました。
その途中に行を挿入したとき、たとえば15行目に挿入したとき、理想は勝手に
。=IF(C15="","",10)
となってくれることです。しかしやってみると、実際にはそうなっていません。
関数は全く入っておらず、空欄になっています。

これでは、行を挿入するたびに関数をまた入れなおししないといけないということでしょうか?
マクロなどでしか解決できないのでしょうか?(それとも条件付書式などで、列そのものに挿入するのでしょうか?)
ちなみに条件付書式の場合、どこかからセルを貼り付けするとき、値のみにしないと、そのセルの書式も変更されてしまいますよね?だからあまり使いたくないのですが、、、

どなたかご存知の方はどうかお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

数式が入っている行を行ごとコピーした状態で、挿入したい行を右クリックすれば、「コピーしたセルの挿入」というメニュー項目があります。

これを選択すれば、挿入された行にも数式が設定されています。
    • good
    • 29

行を挿入した後でC1をドラッグしてはどうでしょうか


又は
C1をコピーC2~C・・までのセルを選択し
  形式を選択してコピー、数式を指定する
でどうでしょうか、この場合は文字のフォントや色はコピーされません
    • good
    • 7

=IF(C1="","",10)をC1に入れるとそうなります。


=IF(C1="","",10)をD1に入れてどのような動きになるかやってみて下さい。

この回答への補足

すみません。C1に入れるのは間違いでした。
失礼しました。
D列に=IF(C1="","",10)を入れましたが、やはり行を挿入すると、挿入した行は空白です。

補足日時:2011/01/21 13:30
    • good
    • 3

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【エクセル】行挿入で数式もいっしょにコピーしたい

こんにちは。
エクセルで現金出納帳を作成しています。
例えば・・・

  A列   B列 C列 D列 E列
1 日にち  科目 収入 支出 残高
2 10/1  光熱費    10000
3 10/2  給料  200000   190000
4 ・・・・・・

E列には=IF(E2="","",IF(AND(C3="",D3=""),"",E2+C3-D3))
という数式を入れています。
後からデータを足したい時(例えば3行目に挿入)に、行挿入をすると
数式もコピーされ、以下の行の数式も更新されるようにしたいのですが、どのようにしたら良いのでしょうか。

ご回答宜しくお願い致します。

Aベストアンサー

#3の回答者です。

再度、書き直しておきます。ある程度Excelを使ってきた人なら、使ったことがある機能だと思いますが、行の挿入と式のコピーを同時にするのは、マクロでなくても出来ます。

# 「リスト」に変更してください。挿入すれば、式はコピーされます。
というのは、

Excelのバージョンにもよりますが、近年のバージョンなら「リスト」という機能があります。

リストは、範囲をマウスで選択してから、「データ」--「リスト」--リストの作成
です。タイトル行が、太字になったりするので、それは、気に入らなければ、書式を訂正してください。なお、そのリスト範囲にカーソルを持っていくと、ドロップダウンボタンが現れてしまいます。印刷時には現れませんが。

Qエクセルで行を追加した時に計算式が変更されない

パソを入れ替えてオフィスの2010になってから操作方法にちょっと戸惑っています。
エクセル2010で、行を追加した時等に計算式が自動で変更されません。

例えば、sum関数で、A1~A10までの合計を計算してあったものに、行を挿入しても計算対象が自動で変わらずそのままです。
sum(a1:a10)に2行追加するとsum(a1:a12)になってくれないと間違いを起こしてしまいます。
どこか設定を変える必要があるのでしょうがどこかわかりません。教えてください。
(再計算は自動にしてあるんですが…)

Aベストアンサー

(1)2010でないのですが、例えばB10に=SUM(B1:B9)と入れておきます。
(2)B10を選択して、行を挿入してB11の式を見てください。=SUM(B1:B9)でB10は含まれません。
(3)同じく(1)の状態でB1を選択して、行挿入しても=SUM(B2:B10)となり、B1セルは含まれません。
おなじことが2010に起こっているのでは。
関連在りそうな質問・解決法
Googleで「エクセル 行挿入 SUM関数」で照会
http://efcit.co.jp/cgi-bin1/exqalounge.cgi?print+200811/08110022.txt
http://oshiete.goo.ne.jp/qa/6540450.html ほか。

Qエクセルで行挿入した際、自動的に計算式も入力される方法を教えて下さい。

例えば、A列は単価を入力する欄、B列には数量を入力する欄、C列には=A1*B1(1行目の場合)の計算式が入っている表があるとします。
表の途中で行挿入すると、自動的にCのセルに数式が入力される方法はありますでしょうか?
複数の人に毎月この表(実際はもっと列が多い表)に入力して貰って集計等をしているのですが、各個人で表の途中で行挿入して行を増やした際、数式がコピーされてない人がいるため、行挿入すると自動的に数式が入力される方法がないかと思っております。
エクセルのバージョンは2000又は2003、行挿入は必要なので、行挿入を禁止する事はできません。
宜しくお願いします。

Aベストアンサー

こんにちは。

Excel2003 ですと、その場所をリストに変更しておけば、自動的に数式は入ります。

Excelの2000の場合ですが、簡単に言えば、行の挿入のそれぞれのボタンにインスタンスを設ければよいわけですが、結構、これが複雑です。以下のようになります。(Excel2003でも可能です)

コマンドボタンにインスタンスを適用したので、他のブックにも影響します。出来れば、ブック単独でお使いになったほうがよいと思います。

ブックを開いた時に設定され、ブックを閉じた時に、解除されます。
単独で、起動する場合は、Auto_Open 、単独で解除する場合は、Auto_Close を実行すれば、行えます。

'----------------------------------------------------------
'以下Class1 モジュール

Private WithEvents myBtn As CommandBarButton

Public Property Set Btn(ByVal myNewBtn As CommandBarButton)
  Set myBtn = myNewBtn
End Property

Private Sub myBtn_Click _
  (ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
Dim c As Range
  If Selection.Columns.Count <> Columns.Count Then Exit Sub
  CancelDefault = True
  Application.ScreenUpdating = False
  Selection.Copy
  Selection.Insert Shift:=xlShiftDown
  Selection.PasteSpecial xlFormulas
  For Each c In Selection
   If c.HasFormula = False Then
    c.ClearContents
   End If
  Next c
  Application.CutCopyMode = False
  Selection.Cells(1).Select
  Application.ScreenUpdating = True
End Sub

'===================================================
'以下標準モジュール

Private myClass1() As Class1
Sub RowInsertButtonEvent()
 Dim myCtrl As CommandBarButton
 Dim i As Long
 On Error GoTo ErrHandler
   For Each myCtrl In Application.CommandBars("Row").Controls
     If myCtrl.Caption Like "挿入(&I)" Then
     ReDim Preserve myClass1(i)
       Set myClass1(i) = New Class1
       Set myClass1(i).Btn = myCtrl
     i = i + 1
     End If
   Next
 For Each myCtrl In Application.CommandBars("Worksheet Menu Bar"). _
   Controls(4).Controls
   If myCtrl.Caption Like "行*" Then
    ReDim Preserve myClass1(i)
    Set myClass1(i) = New Class1
    Set myClass1(i).Btn = myCtrl
    i = i + 1
    Exit For
   End If
 Next
ErrHandler:
 If Err.Number > 0 Then
  MsgBox "設定に失敗しました", vbCritical
 End If
End Sub

'----------------------------------------------------------
Sub Auto_Open
'起動時に設定
 Call RowInsertButtonEvent
End Sub
'----------------------------------------------------------
Sub Auto_Close
'終了時に設定解除
 Erase myClass1()
End Sub
'----------------------------------------------------------

こんにちは。

Excel2003 ですと、その場所をリストに変更しておけば、自動的に数式は入ります。

Excelの2000の場合ですが、簡単に言えば、行の挿入のそれぞれのボタンにインスタンスを設ければよいわけですが、結構、これが複雑です。以下のようになります。(Excel2003でも可能です)

コマンドボタンにインスタンスを適用したので、他のブックにも影響します。出来れば、ブック単独でお使いになったほうがよいと思います。

ブックを開いた時に設定され、ブックを閉じた時に、解除されます。
単独で、...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで行挿入しても計算式がずれない方法

以前にも同じような質問があったかもしれませんが、探せなかったので質問させていただきます。

エクセルで作った表のデータを数人に配り、
それを利用して各自で数字を入力し、出力した状態でこちらに提出してもらっています。
その際にいくつか困る点があり、もし、データを渡す段階で予防できるような方法があれば教えていただきたいと思います。

私自身簡単な関数くらいしかわからないので、エクセルでできることの範囲もよくわかっておりません。
見当違いの質問をしていたらすいません。

1.各自が入力の段階で行を削除・挿入することが多々あり、 それによって計算式がずれてしまうのを防ぎたい。
 計算式はその列の一番上段にあり、数ページに渡っていたとしても1ページ目にしかその欄はない。
 削除・挿入を禁止することはできない。

2.ページ毎に小計を表示させたい。
 ページ数は人によってそれぞれなので、数字の入っていない 無駄なページは作りたくない。
 セルにおさまらなくても、ヘッダーやフッターのような機能でもよい。
 

以上ですが、ご理解いただけますでしょうか?
説明が足りなければ補足させていただきます。

どなたかよろしくお願いします。

以前にも同じような質問があったかもしれませんが、探せなかったので質問させていただきます。

エクセルで作った表のデータを数人に配り、
それを利用して各自で数字を入力し、出力した状態でこちらに提出してもらっています。
その際にいくつか困る点があり、もし、データを渡す段階で予防できるような方法があれば教えていただきたいと思います。

私自身簡単な関数くらいしかわからないので、エクセルでできることの範囲もよくわかっておりません。
見当違いの質問をしていたらすいません。

1.各自...続きを読む

Aベストアンサー

#1です。

質問の内容はこんな感じでしょうか?
例えば、A1セルにA列データ(2行目以降)の平均値を表示させたい。
しかも、印刷されるページ内のデータの平均。
2ページ目、3ページ目にも上部に印刷ページ内の平均値を表示したい。

もし、こんな内容だと仮定すると、私ならSheet1をデータ入力用にして、Sheet2、Sheet3・・・を出力用として設定します。
Sheet2のA2セルに"=Sheet1!A2"と入力してデータ用シートを参照します。A3セル以降はコピーアンドペースト。
Sheet2のA1セルにSheet2のA列の平均をとる計算式を書きます。

Sheet3のA2セルには"=Sheet1!A50"のように次のデータから参照します。
こうしておけば、Sheet1データが挿入・削除されても影響を受けません。

しかし、出力用のシートは有限になりますし、印刷も面倒ですね。

答えておいて何ですが、もっといい回答が出ると思います。
そもそも、質問を曲解してるかも・・・

補足説明をすれば回答がでると思います。
私も興味があるので、ぜひお願いします。

#1です。

質問の内容はこんな感じでしょうか?
例えば、A1セルにA列データ(2行目以降)の平均値を表示させたい。
しかも、印刷されるページ内のデータの平均。
2ページ目、3ページ目にも上部に印刷ページ内の平均値を表示したい。

もし、こんな内容だと仮定すると、私ならSheet1をデータ入力用にして、Sheet2、Sheet3・・・を出力用として設定します。
Sheet2のA2セルに"=Sheet1!A2"と入力してデータ用シートを参照します。A3セル以降はコピーアンドペースト。
Sheet2のA1セルにSheet2のA列の平...続きを読む

Qエクセルで数式の結果が反映されない(自動計算になっているのに)

すいません、教えてください。

エクセル(XP)で数式が自動計算されなくなって
しまいました。

  ※ツールのオプションはちゃんと自動計算に
   なっているのに全く反映されません。

今まで全く問題なく作業できていたので
原因が分からず困っています。

数式等のエラーだとは考えにくいです。
と言うのも数式のあるセルをダブルクリックして
選択し、そのままEnterキーを押すと計算結果が
反映されます。
ただ、今まで全て自動計算されていたのが
全く動かなくなってしまったんです。

同じようなトラブルを経験された方、又は
詳しい方、どうかよろしくお願いします。

Aベストアンサー

原因は分からずじまいになってしまいましたが
同じことがありました。

「Officeの救急隊」を試してみましょう。
ボタン一発で全ての設定が元に戻ります。
http://www.vector.co.jp/soft/win95/util/se247118.html
(ツールバーなども初期状態に戻ります)

私の場合はコレで直ってしまいました^^

参考URL:http://www.vector.co.jp/soft/win95/util/se247118.html

Qexcel 行を追加した場合のSUM関数の変化について

excel2000を使用しています。

とあるセル、例えばC1~C5には、そのセルと同列のA、Bの和が入っているとします(例、=A1+B1)。
C6には、さらにC1からC5の合計値が入っていたとします。(=SUM(C1:C5)
そこで質問ですが、
今回新たにC5とC6の間に行を一つ追加しC6がC7へシフト、=A6+B6とう計算式が入っているC6が新たに出来たとします。
その場合、C7の計算式が=SUMC1:C6と書き換わってくれません。
現状いちいち手で修正している状況です。
勝手に書き換わってくれる方法、もしくは何か良い方法はありませんでしょうか?
よろしくお願いします。

Aベストアンサー

A1からC5を演算対象として使っている時に
C5の下に行挿入するのですよね?

確かにこれでは範囲は拡張されないと思います

総計を取る場所を変えてよければ
対処法があります

C7で総計を取らず
C8より下で総計を取り
SUM関数の対象に予め、空のセルを含めておきます

まあ例えば
C1:C5が総計対象であるのに対し
=Sum(C1:C6)
といった具合に
です

この状態でC5の下に行挿入やセル挿入をすると
対象範囲が自動で拡張されていきます


ですがこれもそれと解ってないと無意味
Sumの対象範囲だからと
挿入せずにデータを入れてしまうと
元も子もありません


ですのでお勧めは
レポートシートを別途設けて
例えは会計ならそこに集計やら買い掛や売り掛け

違う用途だとしても
そのシートさえ見れば概要から何からが
ワンストップで解るようにすれば
データを一々目に触れさせなくて済み
欲しい情報に素早くアクセスできるようになるので
かなり見易くなると思うのですが

こうすると副産物として
=Sum(C1:C5000)
とか
=Sum(C:C)
と、いった指定ができるようになります

まあ2個目のは2000ではできるか怪しいのですが

こうしておけば
そうそう度々には
修正する必要に刈られることはなくなると思いますので
結構こっちの方がお勧めです

まあ先程の
「シートを分ける」
までしないとしても
上の方に集計があると解っていれば
探そうと思うこと自体がなくなりますし

上にあれば表示域の固定でしたっけ?
あれで常に表示させておくこともできるようになりますから
楽になると思いますよ


〔※ 但し注意が必要です
Sum関数を始めとする幾つかの関数には
データレンジに所謂指向性があり
演算対象として範囲指定しても
レンジ外の部分のみ演算対象に含めない
と言う癖があります

ですので別シートに置く場合でもC列の集計結果は
C列に
行の集計は別シートにおいても同じ行に置く必要があるはずです

で、
sumprduct関数はそれを気にせずに済みます
本来の用途からは外れるようですが
特に配列数式では指向レンジを気にしてられないこともあり
多用されています

A1からC5を演算対象として使っている時に
C5の下に行挿入するのですよね?

確かにこれでは範囲は拡張されないと思います

総計を取る場所を変えてよければ
対処法があります

C7で総計を取らず
C8より下で総計を取り
SUM関数の対象に予め、空のセルを含めておきます

まあ例えば
C1:C5が総計対象であるのに対し
=Sum(C1:C6)
といった具合に
です

この状態でC5の下に行挿入やセル挿入をすると
対象範囲が自動で拡張されていきます


ですがこれもそれと解ってないと無意味
Su...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。


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

人気Q&Aランキング