• ベストアンサー

EXCELでこの日付の間に空白のセルをいれたいんで

EXCELでこの日付の間に空白の行を追加していれたいんですが どうやればいいですか? 300行位あります VBAやマクロ?等難しいのはあまりわかりません。 とりあえずすべての日付と日付の間に1行空白行を入れたいです よろしくお願いします

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

  • ベストアンサー
  • jrn700
  • ベストアンサー率18% (258/1404)
回答No.2

お邪魔します 下記サイトに上手い方法が記載されています。 参考にされて下さい。 https://www.yrl.com/column/wazaari_pc/insert_blank_lines_excel.html

その他の回答 (4)

  • SI299792
  • ベストアンサー率47% (788/1647)
回答No.5

新バージョン(Microsoft365,Excel2021) C2: =LET(b,SEQUENCE(COUNT(A:A)*2,,,0.5),IF(MOD(b,1),"",INDEX(FILTER(A:A,A:A<""),b))) 表示形式、ユーザー定義「#」 旧バージョン(Excel2019 以前) B1: 1 B2: =B1+(A2<"") 表示形式、ユーザー定義「m"月"d"日"(aaa)」 下へコピペ。(作業列です。目障りなら非表示にして下さい) C1: =IFERROR(INDEX(A:A,MATCH(ROW()/2+0.5,B:B,0)),"") 下へコピペ。 画像は旧バージョン。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.4

VBA(マクロ)の操作方法が分からないのでVBA(マクロ)を避けている場合は 5分でわかる! Excelマクロの「超簡単な」始め方 https://diamond.jp/articles/-/338085?page=2 こちらを参考にして 標準モジュールの 「ここにマクロを書きます」と説明がある部分に以下のコードをコピペして コードの所をクリックしておいてメニューの挿入の下にある「右向きの三角」をクリックすると実行されます。 A列をもとにして直接変更します。 Sheet1を実際のシート名に書き替えて実行してください。 セルを挿入したいのでしたら以下をコピペ Sub Test() Dim mRow As Long, LastRow As Long With Sheets("Sheet1") LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For mRow = LastRow To 2 Step -1 If .Cells(mRow, "A").Value <> "" And .Cells(mRow - 1, "A").Value <> "" Then .Cells(mRow, "A").Insert Shift:=xlDown End If Next End With End Sub 行を挿入したのでしたら以下をコピペ Sub Test行() Dim mRow As Long, LastRow As Long With Sheets("Sheet1") LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For mRow = LastRow To 2 Step -1 If .Cells(mRow, "A").Value <> "" And .Cells(mRow - 1, "A").Value <> "" Then .Rows(mRow).Insert End If Next End With End Sub

回答No.3

こんな方法もあるようです。 https://youtu.be/_kz9wrIpC_w?si=e4bvYtpv2yjfj_eu&t=173

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

VBAやマクロではない回答の方が良さそうなので前回の回答の関数の回答を再掲します。 A列に直接空白セルを入れたい場合はVBAじゃないと無理だと思います。セルではなく行を挿入でしたらVBAです。 A列を変更したい場合は、以下の関数で空白セルを入れた列を新たに作ってコピーしてA列に「値貼り付け」する方法があります。 添付画像(1) 質問の画像の17日と26日の前後が空白セルなのは説明のためで本来は空白セルは無いのだとしたら B1に =A1 として B2は飛ばして B3に =IF(B2=INDIRECT("A" & ROW(A3)-(INT(ROW(A1)/2)+1)),"",INDIRECT("A" & ROW(A3)-(INT(ROW(A1)/2)+1))) として下にコピーすれば 一つ飛ばしでデータが表示されますからコピーして値貼り付けすれば間に空白のセルができます。 添付画像(2) 説明用ではなく実際に空白セルが存在するのでしたら B1に =IF(A1="","",COUNT($A$1:A1)) として下にコピー C1に =INDIRECT("A"& MATCH(ROW(B1),B:B,0)) として下にコピーしていったん途中の空白セルを詰めます D1に =C1 D2はそのまま D3に =IF(D2=INDIRECT("C" & ROW(A3)-(INT(ROW(A1)/2)+1)),"",INDIRECT("C" & ROW(A3)-(INT(ROW(A1)/2)+1))) として下にコピーすれば一つ飛ばしでデータが表示されます。

関連するQ&A