人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセル2007を使用しています。ある文字が含まれているセルを、となりのセルへ移動する方法を教えて下さい。

AAA
ABA
AAA
AAB
BAA
AAA



AAA ABA
AAA AAB
AAA BAA

●質問者: surippa20
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●100ポイント ベストアンサー

こういうのは マクロでやります。

Sub 実行()
 Dim a As Long
 Dim b As Long
 
 ある特定文字 = "B"
 開始行 = 1
 
 b = 開始行
 
 For a = 開始行 To Rows.Count
 If Cells(a, 1) = "" Then Exit For
 
 If InStr(Cells(a, 1), ある特定文字) > 0 Then
 Cells(b, 2) = Cells(a, 1)
 Cells(a, 1).Delete Shift:=xlUp
 b = b + 1
 a = a - 1
 End If
 Next a

End Sub

ある特定文字 = "B"
開始行 = 1

こちらを 使用する状態にあわせて変更してください。
また同一シートのところに マクロを記述してください。


surippa20さんのコメント
できました。早々に助かりました。ありがとうございました。

2 ● gong1971
●50ポイント

特にそういった機能は無いかと思います。
私が質問の内容を処理する場合、次のように処理します。

※A1:A6に文字が入力されているとします

1. C1に =ISERROR(FIND("B",A1)) と入力する
2. C1をコピーし、C2:C6に貼り付ける
3. C1を選択し、ドラッグでA6まで範囲選択する
(※ C1が白く、その他のセルが水色で範囲選択される)
4. 並べ替えとフィルターから降順で並べ替える
5. C列でFALSEとなっている行のA列のデータを、
範囲選択し、切り取って、B列に貼り付ける
6. 不要なC列を削除する


指定する文字列は、手順1.の数式で "B" の箇所を変更してください。

手順3.でC1から選択を開始しています。これは選択を開始したセルが
アクティブセル(白く表示)となり、手順4.の並べ替えの際に、
アクティブセルの列を基準に並べ替えが行われます。

不明な点があれば、コメントでお知らせください。


surippa20さんのコメント
早々にご回答ありがとうございました。対象のものがFALSEでしっかり表示されました。並び替えのあとを見て数千行あり選択をしていくのが少しきびしいかもしれませんが、大変参考になりました。早々にご回答をいただき助かりました。ありがとうございました。

gong1971さんのコメント
既に解決済みのようですが… 大量にデータがある場合、C1を選択後、ShiftキーとCtrlキーを押しながら、 ↓ボタン、←ボタンと押すと一気に範囲選択されます。 以上、ご参考までに。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ