- ベストアンサー
数値を参照した並び替え
A列に25364、69785、58963等、ランダムな数値が入っています。 その情報とは別に、B列「同じように数字が入っている列」、C列「関係ないテキストが入っている」、D列「同じくテキストが入っている」・・・I列まであります。 B列にA列と同じ数字が入っているものは、B列~I列をA列のその数字と同じ行のB列~I列に表示させたいのですが、可能でしょうか。 関数でも違っても構いません。新しいシートを使って張り替えても構いません。 わかりにくければ補足します。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A列のランダムな数字に重複はありますか? B列にある数字は必ずA列に存在しますか? 最終的に形成された表の並び順に注文はありますか?
その他の回答 (3)
並び替えというより、シート2からシート1へ必要なデータの転記ですよね? > シート1のB列~I列のその数値の行にシート2のその数値のA列~H列を貼り付ける。 これだとシート1のA列B列が同じデータになって意味が無いと思うので、 シート2のB列~H列を、シート1のB列以降に持ってくれば良いかと。 データが2行目からあるとして、 シート1のB2=VLOOKUP($A2,Sheet2!$A:$H,COLUMN(B1),FALSE) H列までフィルドラッグ。 下へフィルドラッグ。 並べ替えしておく必要はありません。
- ape5
- ベストアンサー率57% (85/148)
サンプルのマクロを以下に書いておきます。 使い方は、 1.基準となる1枚目のシートの番号を全部選択しておく。 2.サンプルプログラム中で"Sheet2"を質問者さんのシート名に変更しておく。 ---------------------------------------------- Sub Sample1() Dim a As Range Dim i As Long Dim j As Long j = 0 For Each a In Selection j = j + 1 With Worksheets("Sheet2") i = 1 Do While .Cells(i, 1).Value <> "" If a.Value = .Cells(i, 1).Value Then .Range(.Cells(i, 1), .Cells(i, 8)).Copy (ActiveSheet.Cells(j, 2)) Exit Do End If i = i + 1 Loop End With Next a End Sub ------------------------------------------ 何か不具合がありましたらレスください。
- web2525
- ベストアンサー率42% (1219/2850)
シート2の表をA列を基準に昇順に並び替え あとはVLOKUP関数(完全一致)で検索すれば出来そうです。 シート2のA列に存在しない数値の検索はエラーになるのでエラー処理が必要です。
お礼
お返事が遅くなり申し訳ございません。 上記の方法で無事できました。 ありがとうございました。
お礼
説明が足りず、申し訳ございません。 A列は重複しません。 B列にある数字はA列にない場合もありますし、A列と同じ数字が重複してある場合もあります。重複する場合は、どれか一つが表示されればいいです。 ない場合は、そのB列~I列のデータは必要ないのでなくなっても構いません。 最終的に形成された表の並びは、できればA列の元の並びがいいですが、無理であればどんなんでも構いません。 宜しくお願いします。
補足
何度もすみません。 同じような感じなのですが、 シート1のA列に、数値が入っていて、 シート2のA列~H列に並び替えたい数値・テキスト入っていて、 シート2のA列の数値がシート1のA列の数値と同じものがあれば、シート1のB列~I列のその数値の行にシート2のその数値のA列~H列を貼り付ける。 という方法で教えていただけますか?