[[20031030182105]] 『抽出したデータに連番を付与したい』(nana) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『抽出したデータに連番を付与したい』(nana)

 こんばんは。またまたお世話になります。
 列が10行くらい、行が9,000行ほどあるリストの1つのデータをオートフィルタで抽出
 したものが5,000行くらいあります。その抽出した5,000行のデータに連番を付与した
 いのですが、うまくいきません。
 自分で作業を行ったのは、抽出したデータを 編集→ジャンプ→可視セルにしてから
 コピーし、別シートに貼り付け、連番をふります。連番をふったデータを元のデータ
 に戻して貼り付けても、折り畳んであるデータにも番号が付与されてうまくいきませ
 ん。元のデータで抽出し、連番が付与できれば理想ですが、そのような方法はあるの
 でしょうか?宜しくお願いします。


 数値で空白がない列を対象に =SUBTOTAL(2,A$2:A2)を敷設しますと、
 このようになりますが、ご要望とマッチしますでしょうか?(LOOKUP)

   A  B
1 AA BB
2  5  1 ←=SUBTOTAL(2,A$2:A2)
3  3  2
4  5  3
5  7  4
6  5  5

 (AUTO FILTER) SELECT ONLY 5
   A  B
1 AA BB
2  5  1
4  5  2
6  5  3


 いろいろな物を抽出した時に応用はききませんが、ひとつならば下記の様な方法はどうでしょうか?
 実は自分が質問した内容で納得したものなのですが(^_^)
[[20030819202206]]『countif関数の意味を教えて下さい』(みーこ)
 D4からで検索したい内容があるとき
 if("抽出したい内容",countif($d$4:d4),"抽出したい内容"),"")
 (みーこ)
 何故?リンクしないのでしょう?やり方まちがっていますか?


 こちら事務局です。
 先頭に何か入っているとリンクにならないのです、ごめんなさい。
(kazu)


 すいません。ありがとうございました。先頭から[をいれればいいのですか。(みーこ)


 nanaです。質問が悪くてすみません。
 オートフィルタで抽出したデータというのは文字列になっています。たとえば9,000行
 あるうちの抽出したデータは「東京都」という文字列が約5,000件あります。その5,000
 ある「東京都」の文字列を「A00001〜A00005000」というような番号に変換したいので
 すが。オートフィルタで抽出しなくても違う方法で東京都を抽出して番号に変換ができ
 ればいいのですが。
 抽出したデータを取り出してオートフィルでコピーして連番にするのはできますが、
 10列で5000行のリストの中で抽出したデータを連番に変換するのは難しいでしょう
 か?


 東京都の列をA列としますと、
 K2に=TEXT(SUBTOTAL(3,A$2:A2),"""A0000""0")としまして、
 これをK5001までフィルドラッグすることでは、どうでしょう? (LOOKUP)

   A    K
 1 AA   連番
 2 東京都 A00001
 3 東京都 A00002
 5 東京都 A00003
  …   …

 nanaです。こんばんは。
 どうもありがとうございます。抽出したセルにLOOKUPさんの提示して下さった関数を
 コピーし、貼り付けてみたのですが、コピーしたら下記のような番号が付与されまし
 た。オートフィルタで折り畳んであるセルは無視されています。抽出されたリストに
 表示されているデータだけを集計するというこんな関数があったのですね。
 これで連番になればいいのですが。あともう少しと言うところだと思いますが、どこか
 やり方が間違っていましたでしょうか?

 A5   A00000
 A6   A00001
 A7   A00002
 A8   A00004
 A9   A00004
 A10  A00006
 A11  A00006
 A12  A00007
 A13  A00009
 A14  A00009
 A15  A000011
 A16  A000011
 A17  A000013
 A18  A000013
 A19  A000015
 A20  A000015
 A21  A000016
 A22  A000018
 A23  A000018
 A24  A000020
 A24  A000020

 こちらでは、回答のとおりなのですが。。
 A$2:A2のところは、東京都の列にしていますか? (LOOKUP)


 おはようございます。LOOKUPさん、通りすがりの者さん、どうもありがとうございま
 す。今、LOOKUPさんの提示して下さったものを再度やってみて、長い書き込みをして
 いたのですが、衝突してしまったみたいで、消えてしまいました。すみません。
 出勤時間となってしまいましたので、今晩帰ってから再度やってみます。またご報告
 させていただきますので、宜しくお願いします。(nana)

 東京都だけ連番を振るものは、K2以下に
 =TEXT(IF(A2="東京都",COUNTIF(A$2:A2,"東京都"),""),"""A0000""0")
 でしょうが、このようなことをお望みなのでしょうか?

 オートフィルタで各種選択しながら、それぞれの連番を表示させるものが、
 私の回答です。

 また、別シートに東京都だけ抽出し、抽出後に連番でしたら、手作業では、
 抽出条件を入力し、抽出し表示させるシートにマウスの焦点を置き、データ、
 フィルタ、フィルタオプションの設定で、抽出先を指定した範囲とし実行し、
 抽出後に連続データで連番を作成されるのもよいように思います。
 フィルタオプションの設定は、データ量の制限があったように思います。
 リミットを上回る場合には、分割して処理することが必要です。 (LOOKUP)

 そうそう、上の、=TEXT(IF(A2="東京都".... のことを言っておられるのではないですか。
 これがいいですね。ぼくのは忘れて下さい。
 それで、上の方を見ると、すでにそのことをみーこさんが書いておられました。
 不必要に愚かなことを書きましてすみません。(通りすがりの者)

 いろいろありがとうございます。
 通りすがりの者さんのおしゃる通り全部表示の状態で抽出した東京都だけに連番を
 ふりたいのです。私のやり方が悪のかもしれないのですが、LOOKUPさんの教えて下
 さった=TEXT(SUBTOTAL(3,A$2:A2),"""A0000""0")
 =TEXT(IF(A2="東京都",COUNTIF(A$2:A2,"東京都"),""),"""A0000""0")
 の式をA2に「東京都」と入力して抽出したデータ東京都の先頭セルをアクティブに
 して貼り付けし、抽出した東京都にオートフィルでコピーたのですが、連番には表示
 されていなくて、オートフィルタを解除して全表示してみると、折り畳まれたセルも
 しっかり認識して連番がふられていました。きっと私のやり方がどこかまだ違ってい
 いるのですよね?
 それから、SUBTOTAL関数について教えていただきたいのですが、(3,A$2:A2)の3と
 A$2:A2の意味どのような解釈になるのでしょうか?すみません。本などで調べたの
 ですがわからなかったので、初歩的な質問で申し訳ありませんが宜しくお願いします。

 通りすがりの者さんのおっしゃった並べ替えをしてやってみました。
 >row() を入れ、尻までコピーし、その全体を選択して、上記と同じ、Ctrl+c 及び 
 Alt+esv エンターを押しておく
 とやってみようとしたのですが、esvキーがみつかりません。いろいろ調べてみたの
 ですが、わかりませんでした。このキーはどこにあるのでしょうか?
 esvキーがわかなかったので、元のリスト9000行を単純に1から連番をふり、並べ替え
 た東京都に連番をふり、元のリストの連番どおりにさらに並べ替えてやってみました
 ら、思ったとおりにできました。ありがとうございます。なんか難しく考えすぎて
 いたように思います。いろいろなやり方があるのですよね。私はオートフィルタで
 抽出したデータに連番をふることだけしか考えられなかったのです。

 また、LOOKUPさんの提示して下さった
 >オートフィルタで各種選択しながら、それぞれの連番を表示させる
 ということができるようになると作業量が少なくなって、今後にも活かせる
 と思うのですが、私の間違い発見を宜しくお願いします。
 (nana)

 まず、表のレイアウトを教えていただけませんでしょうか?
 不具合のごようすですが、どのようにされたのかが判りかねます。

 また、=SUBTOTAL関数の97のヘルプです。

 SUBTOTAL(集計方法, 範囲1, 範囲2, ...)

 集計方法   リストの集計に使用する関数を、1 〜 11 の番号で指定します。

 集計方法	関数
 1	AVERAGE 関数
 2	COUNT 関数
 3	COUNTA 関数
 4	MAX 関数
 5	MIN 関数
 6	PRODUCT 関数
 7	STDEV 関数
 8	STDEVP 関数
 9	SUM 関数
10	VAR 関数
11	VARP 関数
 範囲1, 範囲2,   集計するリストの範囲を 1 〜 29 個まで指定します。(LOOKUP) 

 どうもありがとうございます。SUBTOTAL関数についてはヘルプで調べたのですが、
 意味がわかりませんでした。3というのはCOUNTA 関数で集計すると言う意味なの
 ですね。わかりました。ありがとうございます。
 表のレイアウトは式に合わせまして、A2セルに「東京都」と入力しました。
 3行目が項目名、A列に抽出したデータがあります。東京都だけを抽出した場合、
 A5が抽出の先頭セルになりますので、そのセルにコピーした式を貼り付けしました。
 あとは抽出したセルの最後までオートフィルでコピーしました。
 宜しくお願いします。(nana)

 東京都の列をA列としますと、
 K2に=TEXT(SUBTOTAL(3,A$2:A2),"""A0000""0")としまして、
 これをK5001までフィルドラッグすることでは、どうでしょう? (LOOKUP)

   A    K
 1 AA   連番
 2 東京都 A00001
 3 東京都 A00002
 5 東京都 A00003
  …   …
 前に回答させていただきました、上のものが理解されていないようです。
 詳述しますので、ご確認ください。A列とB列で説明させていただきます。

 1.A1に見出しを入力し、A2からA9まで下のようにデータを配置します。

 2.B1に見出しを入力し、B2に=TEXT(SUBTOTAL(3,A$2:A2),"""A0000""0")と
  として、これをB9までフィルドラッグします。

  このようになるでしょう?

    A    B
 1 県名  連番	
 2 東京都 A00001
 3 東京都 A00002
 4 埼玉県 A00003
 5 東京都 A00004
 6 埼玉県 A00005
 7 埼玉県 A00006
 8 群馬県 A00007
 9 群馬県 A00008

 3.ここで、A1:A9を選択して、データ、フィルタ、オートフィルタとします。

 4.A1の県名 ▼をクリックし、東京都を選択すると、

   A    B
 1 県名  連番	
 2 東京都 A00001
 3 東京都 A00002
 5 東京都 A00003

 と表示し、

 5.A1の県名 ▼をクリックし、群馬県を選択すると、

   A    B
 1 県名  連番	
 8 群馬県 A00001
 9 群馬県 A00002

 と、表示したものだけで連番が採番されるでしょう?

 ご希望は、このようなことなのではないでしょうか? (LOOKUP)

 LOOKUPさん、どうもありがとうございます。
 わたしが行っていたものは最初にオートフィルタで東京都を抽出して、その抽出
 したデータの先頭セルにLOOKUPさんの教えて下さった式を貼り付けていました。
 >オートフィルタで各種選択しながら、それぞれの連番を表示させる 
 というものが今、理解できました。こんなことができるのですね!とても
 勉強になりました。
 ただ、私が行いたかったのはリストが10列の9,000行くらいある大きなものです
 ので、オートフィルタで抽出したデータの5,000行ある「東京都」をA00001から
 A00005000番までに連番をふって置き換えたかったのです。その置き換えたA00001
 からA00005000のデータがオートフィルタを解除して全表示した時に連番になって
 いるようにしたかったのです。
 説明が悪くて申し訳ありません。今回教えて頂いていろいろ勉強になりました。
 どうもありがとうございました。またわからないことがあったら質問させて頂き
 ますので宜しくお願いします。(nana)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.