

過去に同じような質問があり試しましたが、うまく出来ませんでしたので、教えて頂けないでしょうか。(エクセル2003を使用)
日付 時間 数値
10/9 9:00 3
10/9 9:01 2
10/9 9:03 5
10/9 9:05 2
上記の図のように、時間(分)が入力されているデータを、下記の図のように歯抜けデータを埋めて挿入するには、どうしたらよろしいでしょうか?
日付 時間 数値
10/9 9:00 3
10/9 9:01 2
10/9 9:02 ←挿入したいデータ
10/9 9:03 5
10/9 9:04 ←挿入したいデータ
10/9 9:05 2
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
マッチング法
(1)Sheet1に1分刻みの時刻を作る(下記では600分、変えれば増やせる)
(2)Sheet2から、Sheet1へ、もし同じ時刻があれば、Sheet2のB列の
データを、Sheet1のB列に持ってゆく。
同じ時刻がSheet2に無ければ、Sheet1のB列のその行を飛ばしている。
ーーー
Sub test01()
lst = 600 '600分間
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
'--Sheet1のA列に1分刻みの表作成
For i = 1 To lst
sh1.Cells(i, 1) = TimeSerial(9, i, 0)
Next i
'-----両シートをマッチング
k = 1
i = 1
cmp:
If i > lst Or Cells(k, "A") = "" Then GoTo endr
If sh1.Cells(i, "a") = sh2.Cells(k, "a") Then GoTo eql
If sh1.Cells(i, "a") > sh2.Cells(k, "a") Then GoTo high
If sh1.Cells(i, "a") < sh2.Cells(k, "a") Then GoTo low
GoTo cmp:
'--
eql:
sh1.Cells(i, "B") = sh2.Cells(k, "B")
i = i + 1
k = k + 1
GoTo cmp
high:
GoTo endr
low:
i = i + 1
GoTo cmp
'--終わり
endr:
End Sub
Sheet2のほうで、少数のデータでしかテストできてないので、よろしく。
上記がうまくうごくのは、Sheet1のA列は、エクセルの正式の時刻入力(時刻シリアル値)であることは、絶対条件です。
No.1
- 回答日時:
こんにちは。
以下は、同じ日付の判定のみです。それ以外はできませんので、もし違うようでしたら、範囲の部分を手書きで書き換えてください。
そのデータの使い方にもよりますが、たとえば、フィルハンドルでコピーしたものを、並べ替えなどでしても、データは、浮動小数点誤差が発生しているので、見かけの表示と内容が食い違ってしまっていることがあります。Text関数などで作る方法もあるかと思いますが、今回は、マクロを使いました。
'標準モジュール
Sub TestEnterRows()
Dim r As Range
Dim i As Long
Dim m As Long
Dim n As Long
'範囲
Set r = Range("B2", Range("B65536").End(xlUp))
For i = r.Count To 2 Step -1
'整数比較
n = TimeValue(r.Cells(i, 1).Text) * 24 * 60
m = TimeValue(r.Cells(i - 1, 1).Text) * 24 * 60 + 1
If m <> n Then
r.Cells(i, 1).EntireRow.Insert
r.Cells(i, 1).Value = (TimeValue(r.Cells(i + 1, 1).Text) * 24 * 60 - 1) / _
(24 * 60)
r.Cells(i, 1).Offset(, -1).Value = r.Cells(i + 1, 1).Offset(, -1).Value
a = r.Cells(i, 1).Address
i = i + 1
End If
Next i
Set r = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- USBメモリー・SDカード・フラッシュメモリー 銀行が振込データの受け渡しに未だにFDを使っている理由は「FDDがAドライブ固定だから」って本当? 11 2022/06/02 03:53
- Excel(エクセル) Excelのマクロを教えていただけないでしょうか? 1 2023/07/06 19:56
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(Microsoft Office) 関数を教えてください 1 2022/12/13 15:56
- 会社・職場 Excel、Googleスプレッドシートなどへのデータ入力 2 2023/07/06 05:59
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) [スライサー]に関して、 1 2022/05/24 21:07
- ドライブ・ストレージ SSDを追加したら昔のHDDがおかしくなった 4 2023/03/23 13:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA インデックスの境...
-
Excelマクロで空白セルを詰めて...
-
Excel で行を指定回数だけコピ...
-
エクセル2007で、マクロで、結...
-
VBA:同じ文字列データの比...
-
エクセル:VBAで月変わりで、自...
-
Excelでデータの抽出&別シート...
-
セルの一部を任意の条件で貼り...
-
エクセルVBA 別シートの複数の...
-
Excel・VBAで同じものだけを表...
-
Excel VBAでシート内全体に非表...
-
VBA 最終行取得からの繰り返し貼付
-
エクセルVBAで 2種のリストを...
-
vbaでコントロールブレイク
-
機種変更時にデータは見られる?
-
スマホ機種変更で旧機種のGoogl...
-
携帯修理出して戻ってきたら、L...
-
故障?ウィルス?
-
中古携帯電話について
-
ソフトバンクアクオス携帯で動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel で行を指定回数だけコピ...
-
Excel VBA インデックスの境...
-
VBA:同じ文字列データの比...
-
エクセル:VBAで月変わりで、自...
-
Excelマクロで空白セルを詰めて...
-
excelの差込印刷で可視セルだけ...
-
VBA別シートの最終行の下行へ貼...
-
エクセルVBAで 2種のリストを...
-
VBAで条件が一致する行のデータ...
-
Excelマクロ データが上書きさ...
-
WorkbooksとWorksheetsを簡単に...
-
VBA 貼付先範囲(行)がいっぱ...
-
ExcelVBAで改ページを追加したい
-
【WORD差し込み印刷】複数レコ...
-
エクセルVBAで SendKeys "{TAB}"
-
Excel VBAでシート内全体に非表...
-
Excel VBA :2回目以降実行で貼...
-
Excel VBA 複数条件にマッチし...
-
エクセル2007で、マクロで、結...
-
Excel VBA元データから別シー...
おすすめ情報