エクセルでA列に空白セルがある場合、すぐ上のセルの値を一括で入れるには、どうしたらいいですか?







という列があるとすると






となるようにしたいのです。
かなりの行数なので一括にできる方法でよろしくおねがいいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント16pt

先ほどの質問も同様ですが、キチンとやるにはマクロ(VBA)を使うしかないですね。


それが可能ならばソースを提示します。

id:raramie

マクロは初心者ですが一応使えます。よければソースの御提示のほどよろしくおねがいいたします。

2005/05/22 05:33:28
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント16pt

Sub Macro1()

’ Macro1 Macro

’ Keyboard Shortcut: Ctrl+q

Dim a As Double


For a = 65536 To 2 Step -1

If Cells(a, 1) = ”” And Cells(a - 1, 1) <> ”” Then

Cells(a, 1) = Cells(a - 1, 1)

End If

Next a

End Sub


こんな感じですね。


回答を 増やすのも なんなので

http://www.hatena.ne.jp/1116702086

のほうの質問に対して 確認ですが、

AB CD EFの 2列ずつを

次の行に 移動させればいいだけでしょうか?

入れる場合は、挿入となるのでしょうか?

挿入する場合 65536行を 超えると 確か 最終行が 消えてしまうと思うのですが、それで いいのかな?

id:raramie

ありがとうございます。試してみましたが、時計が延々と回り続け、実行できませんでした。行数は500〜700行程度です。エクセル98でMacなのが問題でしょうか?

質問1116702086に関してですが、

二列の場合もあったり1列や三列の場合もあったりしますが、基本的に日付毎(30/31)に分かれたデータを項目毎に一ヵ月分を一列にしたいのです。見た感じだと65536行は越えそうにはない状態です。

例えば

1日        2日

列A時間 列B内容 列C時間 列D内容

とあると

1日の下に2日...3日と繋げていきたいのですが

日にちやシートによって行数が違うので、マクロを記録させてもエラーがでてしまいました。

もしおわかりでしたらどうぞよろしくおねがいいたします。ありがとうございます。

2005/05/22 07:04:05
id:beatgoeson No.3

回答回数128ベストアンサー獲得回数14

ポイント16pt

http://www.hatena.ne.jp/1116707111#

人力検索はてな - エクセルでA列に空白セルがある場合、すぐ上のセルの値を一括で入れるには、どうしたらいいですか? ◆ ◇ ◇ ■ という列があるとすると ◆ ◆ ◇ ◇ ◇ ■ となるように..

B列を使います。

B1には「=A1」

B2には「=IF(A2=””,B1,A2)」

を入力して

B3以降はB2を選んで下に引っ張ってコピーしてください。(←この操作何て言うんでしたっけ(^^ゞ)


で、B列は空白が埋まった値になります。

(1)B列を選んでコピー

(2)A列に形式を選択して保存


A


B

B


C


D


A

A

B

B

B

C

C

C

D

D

となりました。

id:raramie

ありがとうございます。何故だか0が返ってきてしまいます。また色々試してみます。。

2005/05/22 07:44:17
id:Insite No.4

回答回数111ベストアンサー獲得回数0

ポイント16pt

ダミーです。

回答者は2回を超えて回答できないので、takntさんに更なる協力を求めるのなら掲示板「いわし」を開くとか、なにか連絡を取れる場が必要です。

id:raramie

ありがとうございます。そうなんですか。2回以上回答出来ないのですね。これから出かけなくちゃいけないので、また後程いわしについて検討してみます。。ご丁寧にありがとうございます。

2005/05/22 07:47:35
id:butaman75 No.5

回答回数280ベストアンサー獲得回数0

ポイント16pt

良くある事ですよね。

一括じゃないけど私はこんな方法でやってます。

1.B列が空いているとします。B2に=if(a2=””,a1,””)という式を書いてB列全部にコピーします。B1だけはA1をコピー。

2.B列をコピーしてA列に「形式を指定して貼り付け」で値だけ貼り付けます。

3.B列を削除。

面倒な時は1.の後、A列を非表示にして終わりというのもします。

マクロを書くよりは簡単かな?

id:raramie

ご回答いただいた形だと、どうしてもできなかったのですが、ISBLANKを使ってみたら解決できました。ありがとうございます。

2005/05/24 01:27:59
  • id:taknt
    もしかしたら?

    はてなでは ”などの ダブルクォーテーションが 半角から全角に 置き換わる処理があるため、半角に戻してもらわないとダメなんですけど、
    それが 原因って わけないかなぁ・・・。
    か、もしくは Mac用は うまくいかない何かあるのかなぁ?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません