エクセル2010で作成した住所録にある特定の町名をグルーピングして別のシートに分類したいのです。シート1の住所録本体のA列は氏名、B列は町名と丁目(〇〇町◆丁目)、C列は番地を入力します。その他の列にもいくつか入力項目があります。やりたいことは、B列の町名と丁目を入力すると自動的に他のシートにグルーピングして分類できるようにしたいのです。分類の際、次のような場合があります。たとえば、A町1丁目とB町2丁目が同じグループ、つまり同じシートに分類する必要があります。また、単独でC町3丁目は一つのグループとして分類する場合ももちろんあります。マクロ等、エクセルの専門的な知識はもちあわせていません。関数の組み合わせでできそうな気がしていますが、なにぶん技量不足のためわかりません。どなたかご教授ねがいます。宜しくお願いします。
No.4ベストアンサー
- 回答日時:
例えば元の表がシート1に有るとしてA3セルから下方に氏名が、B3セルから下方に町名と丁目がC3セルから下方に番地が入力されているとします。
F列まで利用されているとしてG列から右の列は作業列します。G1セルから右の方向にはグルーピングしてそれぞれを異なったシートに表示させるときのシート名を入力します。例えばSheet2、Sheet3、・・・・ などと入力します。
G2セルから右横方向のセルにはA町1丁目などと入力します。同じグループに二つの町名が入る場合にはA町1丁目/B町2丁目などと/を入れて入力します。ここでは2つの町名までを1グループとして処理できる方法を示します。
そのためにG3セルには次の式を入力して右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。
=IF(COUNTIF(G$2,"*/*")>0,IF(COUNTIF($B3,"*"&LEFT(G$2,FIND("/",G$2)-1)&"*")+COUNTIF($B3,"*"&MID(G$2,FIND("/",G$2)+1,10)&"*")>0,MAX(G$2:G2)+1,""),IF(COUNTIF($B3,G$2)>0,MAX(G$2:G2)+1,""))
これで同じグループに所属する場合には1から順に番号が表示されます。
そこでお求めの表ですがグループごとに表示させるシートについて(シート1を除く)Ctrlキーを押しながらそれぞれの名前のシート見出しをクリックして同じ作業グループを作ります。
そのうちのあるシートが画面にあるわけですがそのシートのA1セルにはそのシートのシート名を例えばSheet2のように入力します。
2行目にはシート1と同じ項目名を入力します。
A3セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(A$2="","",IFERROR(INDEX(Sheet1!$A:$F,MATCH(ROW(A1),INDEX(Sheet1!$A:$XX,1,MATCH($A$1,Sheet1!$1:$1,0)):INDEX(Sheet1!$A:$XX,1000,MATCH($A$1,Sheet1!$1:$1,0)),0),COLUMN(A1)),""))
2行目には必ず項目名を入力ことが必要です。
最後にシート1を選択することで作業グループを解除します。
シート1を除く他のシートについてA1セルにシート1で決めたグループごとのシート名を入力することで、そのグループだけのデータが表示されることになります。
No.3
- 回答日時:
住所録データがsheet1にあり、sheet1に作業列として数式を挿入する事とします。
データ抽出はsheet2に行い、町名検索は2住所まで可能とし、町名リストを入力規則のリストからドロップダウンリストから取得出来るものとします。
1.住所リスト1、2をセルA6~B6に作成するものとした。
2.セルA2に入力規則のリストで住所リスト1によるドロップダウンリストを作成します。
ドロップダウンリストの作成方法は下記参照。(他のシートのデータでドロップダウンリストを作成する事は可能ですが、その場合は、他のシートで住所リスト1のデータ範囲を名前の定義を行う必要があります。)
http://kokoro.kir.jp/excel/list-name.html
3.検索住所2セルB1に数式=IF(VLOOKUP(A2,A6:B14,2,0)="","",VLOOKUP(A2,A6:B14,2,0))
4.sheet1の住所録データの任意の列に作業列を作成する。今回はD列に作成する事とした。
セルD2に式=IF(Sheet2!$B$2<>"",IF(OR(B2=Sheet2!$B$2,B2=Sheet2!$A$2),ROW(),""),IF(B2=Sheet2!$A$2,ROW(),""))
住所録データがある行までフィルコピー
5.sheet2のデータ抽出関数を入力
氏名欄D2式=IF(COUNT(Sheet1!$D:$D)<ROW(Sheet1!A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$D:$D,ROW(Sheet1!A1))))
町名欄E2式=IF(COUNT(Sheet1!$D:$D)<ROW(Sheet1!A1),"",INDEX(Sheet1!B:B,SMALL(Sheet1!$D:$D,ROW(Sheet1!A1))))
番地欄F2式=IF(COUNT(Sheet1!$D:$D)<ROW(Sheet1!A1),"",INDEX(Sheet1!C:C,SMALL(Sheet1!$D:$D,ROW(Sheet1!A1))))
D2~F2を必要行下記にフィルコピー
ROW(Sheet1!A1)は式は固定ですので、どこのセルから式を始めてもこの記入は変更ありません。住所録データの列により数式変更して下さい。
抽出データに自動で罫線は引きませんので、罫線はご自身で。
結果は画像参照下さい。
No.2
- 回答日時:
失礼ながら、質問で返します。
> たとえば、A町1丁目とB町2丁目が同じグループ、
> つまり同じシートに分類する必要があります。
> また、単独でC町3丁目は一つのグループとして分類する場合ももちろんあります。
との事ですが、「グループの分類」はどのような条件の下で行われているのでしょうか?
例えば「グループ」と冠した列で分類されているのであれば、
フィルタ→「グループ」で抽出→コピー→別シートにペースト
の流れで処理を行うのが一番確実で早い方法と言えると思います。
コレが無い、つまり力技で判断しているとすると、かなり厄介です。
一つ一つフィルタをかけてコピー、フィルタをかけてコピー・・と繰り返す必要があります。
エクセルには「A町1丁目とB町2丁目は同一、C町3丁目は別」と判断できないからです。
(人の手でも一緒ですね。何かしらルールが無いと分類は不可能です。)
ですので、関数の組み合わせでは「お望みの処理はできません」と言うのが直接の回答です。
No.1
- 回答日時:
エクセルのフィルターオプションという機能をご存知でしょうか。
とりあえず
http://www.eurus.dti.ne.jp/yoneyama/Excel/filter …
を参考にしてください。
別シートにB列の抽出条件を複数記入できるシートを準備すればOKだと思います。
とりあえず、上記サイトをじっくり勉強してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) 指定した条件でTRANSPOSE関数を使う 5 2023/08/18 19:45
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- その他(Microsoft Office) EXCELの1行を1枚の用紙にそれぞれ印刷したい。 3 2022/10/10 11:35
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
【関数】先頭だけにある、半角...
-
エクセル 白黒印刷で白線を印刷...
-
Excelのチェックボックスの使い...
-
【関数】適切な文字数の数字を...
-
Excelのpivotについて質問です
-
Excel ピボットテーブルで日付...
-
LOOKUP関数を使えばいいのでし...
-
エクセル関数を教えてください
-
エクセルのセルに同じ大きさの...
-
UNIQUE関数が使えないバージョ...
-
excelの不要な行の削除ができな...
-
エクセルで「-0.0」と表示さ...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの関数について教えて...
-
Aというブックの1というシート...
-
【マクロ】シート名を取得する...
-
VBA Private Sub Worksheet_Cha...
-
VBA、Excelのworkbook.open に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報