![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセル2002を使用しています。
例えば、A列に順に数値が入っているのですが、ところどころ空欄です。
<こんな感じです。>
12
15
22
33
34
55
<ここまで>
数値は、連番ではありません。不規則です。約300行あります。
本当は、空欄の場所は一つ上のセル数値が入るのです。(連続して空欄になっているところも、一つ上の数値と同じ値が入るのです。)
<上の例を当てはめると>
12
15
22
22 ←
33
34
34 ←
34 ←
55
<ここまで>
こんな感じにしたいのです。
関数などで一つのセルに入力して、あとはフィルドラッグでコピーするなんていう便利な方法はありませんか?
すでに入力している数値が消えないようにしたいのです。
よろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
とりあえず数値の範囲を選択
F5キーを押してセル選択で定数を選択(文字を除くなら数値のみチェック)
これで空白のセルが除外されます。
ここでコピーして張り付ければいいかと...
この回答への補足
関数を使わない方法をご提示していただきありがとうございました。
しかし、順に作業したのですが、
>これで空白のセルが除外されます。
ここまでは、できました。
>ここでコピーして張り付ければいいかと...
この部分がわかりません。
空欄になっているセルは不規則ですので、手作業で作業することになるのでしょうか?
それとも、簡単にコピーできるのでしょうか?
F5キーの使い方は知らなかったので、今後活用したいと思います。
ありがとうございました。
できましたら、再度解説をいただけると嬉しいです。よろしくお願いいたします。
No.13
- 回答日時:
まとめ
(1)質問者の言うように、A列!で式を入れて自動複写のようなことは、絶対できません。
一回限りなら下記でできます(B)。
(2)例えばB列を一旦使い、
B1に
=IF(A1<>"",A1,MAX($A$1:A1<>"",$A$1:A1,0))
と入れてSHIFT+CTRL+ENTERを押す。
そしてA列に値だけ複写する。それならできますが、A列を変えると
連動性はありません。
(3)VBAなら数行でできる。ロジックも簡単で、上行から順に考えて空白なら、上の行の値をとる。
連動性はない。その都度再実行が必要。
(2)のデータ例
11
22
33
3
3
3
66
6
88
8
22
(1)で書いた方法。自動ではないが
F1:F131
-
2
-
-
5
-
6
-
-
-
2
-
ーは空白セル
F2に=F1
このセルをCTRL+Cでコピー
空白セルの最初F4をクリック
CTRLを押しながら、空白セルの F5,7,9,10、11,13セルをクリック
貼り付け
結果
1
1
2
2
2
5
5
6
6
6
6
2
2
となります。
No.10
- 回答日時:
ANo.7の者です。
私の環境(Excel2003)ではうまくいったのですが・・・
うまく再計算されていないのでしょうか。
B 列の途中に空欄があると、そのような状況になってしまうでしょうが。
ANo.6の方法が一番手っ取り早いかもしれませんね。
1.A4 に =A3 と入力
2.A4 をコピー
3.A 列を選択して、F5 -> セル選択 -> 空白セル -> OK
4.貼り付け
大変すみませんでした。
私の入力ミスです。
教えていただいたB1の箇所を誤ってA1にしてしまっていました。
教えていただいた式は問題なく作動しました。
大変失礼しました。
また、F5キーのやり方についても、
4.貼り付け
と書いていただいたので、恐る恐る貼り付けアイコンをポチッと押したら、すべてうまくいきました。すごい機能ですね。
ありがとうございました。
No.9
- 回答日時:
すいません。
( > < )ANo.5です。
間違ったまま投稿してしまいました。
=IF(A1="",#REF!,A1)ではありません。
1行目は
=A1
で、2行目に
=IF(A2="",A1,A2)
を入れてあとは、これをコピペです・・・
これを1行目にコピーすると上の=IF(A1="",#REF!,A1)となってしまうので、それに気が付かずそのまま投稿してしまいました。
すいません。
#REF!はエラーですので・・・本当にすいませんでした。
ようするにANo.3さんと同じです。
でも、これだと2行入力しないのが続くと・・・という問題があるので
=IF(A2="",B1,A2)
そ、参照するのを同じ列の上の行の数字にしました。
これで、いくら入力しない行があっても大丈夫です。
m(_ _)m
できました。
なるほどーと思いました。
ありがとうございました。
また、別の回答者の皆様にこの欄を借りてお詫びいたします。
後から、補足欄で2行入力しないのが続くとできませんと訴えましたが、B列の一つ上を参照している式に対し、私が入力ミスでA列の一つ上を参照するようにしてしまいました。
すみませんでした。
No.8
- 回答日時:
マクロを作ってみました。
シートタブを右クリックして「コードの表示」を選択するとVBAの画面が出るので、右の画面に以下のマクロをコピーして貼り付け、F5キーを押して実行してください。
Sub FillBlank()
Dim R As Range
For Each R In Range("A1", Range("A65536").End(xlUp))
If R.Value = "" Then R.Value = R.Offset(-1, 0).Value
Next
End Sub
この回答への補足
貼り付けましたら出来ます。さすがマクロですね。
説明を省いた私のミスなのてすが、実際に作業する列は、F3からF322までです。
いただいたコードの
For Each R In Range("A1", Range("A65536").End(xlUp))
のA1を勝手にF3にして貼り付けました。(勝手ですみません)
すると、A列からF列まですべて同じように空欄がある場合は上の行をコピーするようになってしまいました。
AからE列まではコピーしないようにするには、どのようにするものでしょうか。
すみませんが、教えていただけるでしょうか。
よろしくお願いいたします。
No.7
- 回答日時:
既に入力している数値が消えないようにする、というのは難しいですね。
上の例で考えると、
1. A4 に =A3 と入力
2. A4 を全ての空欄(A7, A8等)に対してコピペ
という手順になるでしょうか。
ただ、これだと面倒なので、もし私がやるのであれば次の通りにします。
3. B1 に =A1 と入力
4. B2 に =IF(ISBLANK(A2), B1, A2) と入力
5. B2 を列の最後までコピペ(フィルドラッグ)
6. A 列を必要に応じて非表示化
以上、参考になれば。
この回答への補足
すばらしい方法だと思うのですが、A列に空欄が2行以上続くと、2行目以降が0になってしまいます。
どうしたらよいものなのでしょうか。
ありがとうございます。
いろいろな関数があるのですね。
ISBLANKは種類としては見たことがありましたが、使ったことはありませんでした。
勉強になりました。
No.5
- 回答日時:
もっとうまいやり方があるかもしれませんが、一例として・・・
関数の入った表示される列と、空欄のある入力の列とに分ける。
これは、「すでに入力している数値が消えないようにしたい」という事の為の措置です。
~例~
A列には空欄のある
12
15
22
33
34
55
を入力する
B列には
その結果
12
15
22
22 ←
33
34
34 ←
34 ←
55
と表示される為の関数を入力する。
その関数は
=IF(A1="",#REF!,A1)
こんな感じ
これは、B列1行目に入力する関数
あとは、B列にこれを全てコピペすれば希望通りに表示されます。
印刷などする場合は、A列を非表示(折りたたんで)にして印刷すればOKです。
こんなしょぼいやり方じゃなくやれる方法があるかもしれませんが・・・書いておきます。
この回答への補足
B列に入力し、フィルドラッグでコピーしましたが、隣が空欄のセルですと、 #REF! と表示されてしまいます。
どうしたらよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。特にものすごく怒られたときとか、とんでもない損害を与えてしまったときとか…。
-
[エクセル] セルが空だったら一つ上のセルを自動入力する
Excel(エクセル)
-
Excel-参照セルが空白の場合、別のセルを参照するには。
Excel(エクセル)
-
Excelで空白セル直前のセルデータ値を取得したい
Visual Basic(VBA)
-
-
4
セルが空だったら一つ上のセルを自動入力したいです
Excel(エクセル)
-
5
エクセルで上の行の値を自動的にコピーする
Excel(エクセル)
-
6
【Excel】【VBA】空白のセルに上のデータを入力する方法
その他(Microsoft Office)
-
7
エクセル関数
Excel(エクセル)
-
8
Excelで、あるセルの値に応じて行を自動挿入したい
Visual Basic(VBA)
-
9
エクセル 空白を飛ばして前の数字と同じ数字を入力する数式
Excel(エクセル)
-
10
エクセルの質問。 対象範囲の中で、一番下に位置する値を返す関数。
Excel(エクセル)
-
11
【エクセル】範囲内の空白ではない一番下のセル
Excel(エクセル)
-
12
エクセルで空白を無視して一番左にあるセルを参照したい
Excel(エクセル)
-
13
特定文字のある行の前に空白行を挿入したい
その他(Microsoft Office)
-
14
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
15
Excelで2つのデータの突合せをしたいです
Excel(エクセル)
-
16
【Excel】指定したセルの名前でPDFを保存する【VBA】
Visual Basic(VBA)
-
17
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
18
EXCELのVBAで空白列を削除して左づめにできますか?
Access(アクセス)
-
19
条件に一致したときに画像を表示したいのですが・・。
Excel(エクセル)
-
20
起算日の定義
財務・会計・経理
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル IF計算式?でしょうか?
-
エクセル折れ線グラフについて...
-
Excelの警告について
-
EXCELで数値が異なった数字を足...
-
Excelで数値を時間数に変換する...
-
googleのスプレッドシート
-
エクセル、LibreOffice Calcプ...
-
エクセルでファイルの最終更新...
-
【マクロ】for nest について ...
-
Excelについて。Excelに縦1列に...
-
エクセルの数式バーのフォント...
-
【マクロ】アクティブセルの、...
-
エクセルを使用して、円周率を...
-
エクセルのセルの書式ユーザー...
-
index関数の説明をお願いします。
-
【マクロ】関数をセルに入力す...
-
Excel 対象のセルに入力が無い...
-
エクセルマクロを教えてほしい...
-
【マクロ】マクロが割当てされ...
-
【マクロ】AブックからBブック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの数式バーのフォント...
-
エクセルでファイルの最終更新...
-
2列に入っているデータを1列...
-
データチェックを行うエクセル...
-
再質問です。マクロの修正箇所...
-
エクセルで 自動的に◯や数字を...
-
数字入力後他の文字等が表示さ...
-
Excel 小さくなったスクロール...
-
F9キーについて。
-
【ExcelVBA】ダブルクォーテー...
-
Excelに詳しい方! B列が「日...
-
セルの数を求めたい
-
Excelを無料で使うには? パソ...
-
IFとIFS関数
-
【Excel】別シートから条件に合...
-
EXCELの散布図で日付が1900年に...
-
ある表にフィルターをかけて出...
-
【ExcelVBA】名前を付けて保存→...
-
Excelセルを跨いで合計を出す方法
-
エクセルのツールバーから数値...
おすすめ情報