- 締切済み
オートフィルターを使い1個上の数値を抽出したい
横8列 縦100列の表で各列の数字の中からオートフィルタを使い各列の1個上の数字を抽出する方法をお教えていただければ幸いです。 1 |2|3 |4|5|6|7|8| 5 4 6 7 8 9 10 13 ←この列は無視 2 2 4 7 8 8 7 6 3 5 5 6 9 6 8 6 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 1 2 3 4 5 5 5 5 4 5 5 4 5 6 7 8 3 6 7 8 9 9 5 4 2 3 3 4 5 8 8 9 Excelソフトはあまり使えず簡単な方法をお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 各行(A列~H列)までで重複するデータを表示したい!ということですよね? お望みのオートフィルタや関数ではなくVBAになってしまいますが・・・ 一例です。 各行の9列目(I列)以降に表示させるようにしています。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row '※注 For j = 1 To 8 If WorksheetFunction.CountIf(Range(Cells(i, 1), Cells(i, 8)), Cells(i, j)) > 1 Then Cells(i, Columns.Count).End(xlToLeft).Offset(, 1) = Cells(i, j) End If Next j Next i For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For j = Cells(i, Columns.Count).End(xlToLeft).Column To 9 Step -1 If WorksheetFunction.CountIf(Range(Cells(i, 9), Cells(i, j)), Cells(i, j)) > 1 Then Cells(i, j).Delete (xlToLeft) End If Next j Next i End Sub 'この行まで 尚、1行目~100行目までと決まっているのであれば ※注 の行を >For i = 1 To 100 に変更してみてください。 以上、的外れならごめんなさいね。m(__)m
- nayuta_lot
- ベストアンサー率64% (133/205)
こんにちは 横8列 縦100列 → 横8列 縦100行ですよね 『各列の1個上の数字』ってなんですか? なんらかの条件で抽出した行の1つ上の行の数字、なら想像できないこともないですが 列の上っていう表現は、意味がわかりません。 いずれにしても、オートフィルターで何を抽出したいのか条件が明確ではありません。 >5 4 6 7 8 9 10 13 ←この列は無視 → 8列目は対象にしないという意味でしょうか? ご自身は理解しているのでしょうが、省略せずに、具体的に質問しないと伝わりませんよ?
お礼
ご指摘いただき有難うございます。表現がうまくできずごめんなさい。
- imogasi
- ベストアンサー率27% (4737/17069)
どういう内容の質問かよくわからない。エクセルが出来る・出来ないとか言う前に、質問表現のスキルをよくする必要がある。 データ例を挙げたのは良いが >各列の1個上の数字を抽出する とはなに? 望みの結果も質問に挙げておけば、読者が推測してくれるかも。 A列で2と3のどちらでも該当する行は残して表示をしたいのか? ーー それなら▼をクリックして、「オプション」を選び 2 と等しい ORにチェックを入れる 4 と等しい OK で2と4の行が出る 結果 2 3 4 5 6 4 5 5 4 5 2 3 3 4 5 こういうことか?
お礼
うまく表現ができずごめんなさい。これに懲りずまた質問します。少し時間をください、有難うございました。
お礼
早々と回答いただきありがとうございます。これで試して見ます。