![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセル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)は式は固定ですので、どこのセルから式を始めてもこの記入は変更ありません。住所録データの列により数式変更して下さい。
抽出データに自動で罫線は引きませんので、罫線はご自身で。
結果は画像参照下さい。
![「住所録から特定住所を別シートに抽出分類で」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/2/1330952_5497e1c909d18/M.jpg)
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ランキング
-
IFとIFS関数
-
Excelを無料で使うには? パソ...
-
セルの数を求めたい
-
エクセルの数式バーのフォント...
-
Excelの表示についての質問
-
再質問です。マクロの修正箇所...
-
データチェックを行うエクセル...
-
Excelに詳しい方! B列が「日...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelで50個のセルに同じ文字を...
-
Excelの数式について教えてくだ...
-
Excel VBAで全ての矢印を赤色に...
-
エクセル関数を使って
-
祝日と土曜、日曜の合計をカウ...
-
xlsxファイルを保存する際にPDF...
-
Excelについて
-
エクセルVBA、別ブックへ転記す...
-
エクセルで「ページレイアウト...
-
2列に入っているデータを1列...
-
【ExcelVBA】名前を付けて保存→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報