• 締切済み

vlookup

エクセル関数 超初心者です。 数式教えてください。 列A 列B 赤 白 青 赤 黄 青 桃 桃 を次のように 並べ替えたいのですが。 列A 列B 赤 赤 青 青 黄    白 桃 桃 どのように並べ替えればいいですか? 教えてgoo    

みんなの回答

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.2

作業列を使う方法です。 1)C列にA列、B列を縦に並べる    ※)コピー&ペーストしてください。 2)C列の重複を削除してD列に並べる    ※)まず、1行目を挿入し、C1セルに"見出し"と入力      「データ」→「フィルター」→      「フィルターオプションの設定」→      「抽出先」を「指定した範囲内」にチェック      「リスト範囲」を「$C:$C」      「抽出する範囲」を「$D:$D」      「重複するレコードは無視する」にチェック      「OK」 3)1行目を削除 4)E1セルに   =IF(ISERROR(VLOOKUP($D1,A:A,1,FALSE))=TRUE,"",VLOOKUP($D1,A:A,1,FALSE))   と入力し、E列F列の以下のセルにコピー&ペースト 5)E、F列をコピーして、「編集」→「形式を選択して貼り付け」   →「値」にチェックして「OK」すれば、値が固定されます。 以上の操作をマクロにしてみました。 興味は無いかもしれませんが、参考までに。 Sub test1()   Dim ALastRow As Long   Dim BLastRow As Long   Dim DLastRow As Long   Dim r As Long, c As Long   Dim FindCell As Range      '表示領域の初期クリア   Range("C:IV").Clear            'C列にA列、B列を縦に並べる   ALastRow = Cells(Rows.Count, "A").End(xlUp).Row   BLastRow = Cells(Rows.Count, "B").End(xlUp).Row   Range("A1:A" & ALastRow).Copy _     Destination:=Range("C1")   Range("B1:B" & BLastRow).Copy _     Destination:=Range("C" & ALastRow + 1)   'ダミーの見出し行追加   Rows(1).Insert Shift:=xlDown   Range("C1").Value = "見出し"   'C列の重複を削除してD列に並べる   Range("C:C").AdvancedFilter _     Action:=xlFilterCopy, CopyToRange:=Columns("D:D"), Unique:=True   'ダミーの見出し行削除   Rows(1).Delete      'E,F列にVLOOKUP関数を代入   DLastRow = Cells(Rows.Count, "D").End(xlUp).Row   Range("E1:F" & DLastRow).Formula = _    "=IF(ISERROR(VLOOKUP($D1,A:A,1,FALSE))=TRUE,"""",VLOOKUP($D1,A:A,1,FALSE))"   '作業列のC,D列を非表示   Columns("C:D").Hidden = True End Sub さらに、VLOOKUP関数の代わりにFindメソッドを使った例です。 Sub test2()   Dim ALastRow As Long   Dim BLastRow As Long   Dim DLastRow As Long   Dim r As Long, c As Long   Dim FindCell As Range      '表示領域の初期クリア   Range("C:IV").Clear            'C列にA列、B列を縦に並べる   ALastRow = Cells(Rows.Count, "A").End(xlUp).Row   BLastRow = Cells(Rows.Count, "B").End(xlUp).Row   Range("A1:A" & ALastRow).Copy _     Destination:=Range("C1")   Range("B1:B" & BLastRow).Copy _     Destination:=Range("C" & ALastRow + 1)        'ダミーの見出し行追加   Rows(1).Insert Shift:=xlDown   Range("C1").Value = "見出し"   'C列の重複を削除してD列に並べる   Range("C:C").AdvancedFilter _     Action:=xlFilterCopy, CopyToRange:=Columns("D:D"), Unique:=True   'ダミーの見出し行削除   Rows(1).Delete      'D列をキーワードにA、B列を検索し、存在すればそれぞれE、F列に表示   DLastRow = Cells(Rows.Count, "D").End(xlUp).Row   For c = 0 To 1    For r = 1 To DLastRow     Set FindCell = Range("A1:A" & ALastRow).Offset(, c).Find(Range("D" & r))     If Not FindCell Is Nothing Then       Cells(r, "E").Offset(, c).Value = Range("D" & r).Value     End If    Next r   Next c   '作業列のC,D列を非表示   Columns("C:D").Hidden = True End Sub

回答No.1

ワークシートメニューバーのツールからオプションをクリック→ リストの項目で並べたい順に入力します 例えば・・・ 赤 青 黄 白 ・ ・ のように縦に入力していきます 最後に「OK」をクリックしてワークシートメニューバーの「並べ替え」をクリック→ 下のオプションをクリック→ 並べ替え順序の指定の標準をクリックして一番下に出てくる赤、青、黄、白、・・・をクリック「OK」→ 「OK」で並べ替えが出来ます A列、B列に同時に並べ替えをしたいのでしたら両方の列をドラッグして並べ替えをクリックして操作してあげると同時に並べ替えができます

関連するQ&A