『データの切り取り、貼り付け、削除について』(mik)
ETCのデータ明細(A2)を切り取って、B1に貼り付け、
空白になったA2行を上方向に削除
これをETCデータ売上の時に繰り返したいです。
たまにA7のように違うデータがあります。
よろしくお願い致します。
A B
1 ETCカード売上
2 チガサキカイガン チガサキカイガ
3 ETCカード売上
4 タチバナ タチバナ
5 ETCカード売上
6 イシバシ イシバシ
7 APPLE COM BILL
8 ETCカード売上
9 チガサキ チガサキ
< 使用 Excel:Excel2016、使用 OS:Windows11 >
Option Explicit
Sub test()
Dim i As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
With Cells(i, "A")
If .Offset(-1, 0) = "ETCカード売上" Then
.Offset(-1, 1) = .Value
.EntireRow.Delete
End If
End With
Next
End Sub
(あ) 2025/08/17(日) 18:26:05
Sub test()
Dim a, i&, n&
With Range("a1", Range("a" & Rows.Count).End(xlUp)(2))
a = .Value: ReDim b(1 To UBound(a, 1), 1 To 2)
For i = 1 To UBound(a, 1) - 1
If (a(i, 1) Like "ETC*売上") * (Not a(i + 1, 1) Like "*[!ヲ-゚ ]*") Then
n = n + 1: b(n, 1) = a(i, 1): b(n, 2) = a(i + 1, 1)
End If
Next
If n Then .Resize(, 2) = b
End With
End Sub
(jindon) 2025/08/17(日) 18:36:19
簡単にできないかな?と思っておりましたが、
やはりVBAを使うのが早いですね!
ご丁寧にコーディングまでして頂きましてとっても助かりました。
ありがとうございました。
(mik) 2025/08/17(日) 18:58:22
既に解決済みのようですが、念のため VBAを使わない方針の案です。 簡単な式とオートフィルタで対応します。
(ETCカード売上に相当するものだけを抽出する前提です。 元データはそれなりに意味があるものでしょうから、そのまま残す前提です。)
【シートレイアウト】
A列 B列 E列
1行目 ETCカード売上
2 ETCカード売上 チガサキカイガン チガサキカイガ
3 チガサキカイガン チガサキカイガ
4 ETCカード売上 タチバナ タチバナ
5 タチバナ タチバナ
6 ETCカード売上 イシバシ イシバシ
7 イシバシ イシバシ
8 APPLE COM BILL
9 ETCカード売上 チガサキ チガサキ
10 チガサキ チガサキ
【手順】
・E1セルに "ETCカード売上"をセットします。
・式設定
B2セル =IF(A2=$E$1,A3,"")
以下のセルにコピーペイスト
・オートフィルタで A列が"ETCカード売上"のものだけ抽出
・他のセル範囲にA:B列をコピーして値貼り付け
とすればよいかと。
【結果】 別シートに転記する前提です。 A列 B列 1 ETCカード売上 チガサキカイガン チガサキカイガ 2 ETCカード売上 タチバナ タチバナ 3 ETCカード売上 イシバシ イシバシ 4 ETCカード売上 チガサキ チガサキ
(xyz) 2025/08/18(月) 13:27:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.