『データの切り取り、貼り付け、削除について』(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.