[[20150817110620]] 『配列から条件に合致したデータを小さい順に抽出し』(エムエム) ページの最後に飛ぶ

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

 

『配列から条件に合致したデータを小さい順に抽出し表示する』(エムエム)

初めて利用させて頂きます。
下記のデーターを下段の完成型のようなデータにしたいと思っています。
基本CDの配列データの中から、事業所CDに合致し、かつ、基本CDの小さい順にデータを抽出したいのです、配列データと合致するデータ検索の関数は分かっているつもりですが、更に合致データを小さい順に並べるという2つの関数の組み合わせ方がわかりません。
ご指導のほどよろしくお願いいたします。
*基本CDは、事業所CDと職員CDを組み合わせたものです。

 ≪データ≫					
 	事業所CD 略称	職員CD	職員名	基本CD
 1	15 	KS	10009 	SSS	15.100091 
 5	15 	KS	10012 	AAA	15.100121 
 6	13 	KN	10012 	AAA	13.100122 
 13	14 	KT	10016 	KAKA	14.100161 
 17	32 	TN	31004 	NAK	32.310041 
 18	12 	YS	31004 	NAK	12.310042 
 19	12 	YS	31004 	NAK	12.310043 
 20	14 	KT	31004 	NAK	14.310044 
 21	12 	YS	10020 	YAM	12.100201 
 22	12 	YS	10020 	YAM	12.100202 
 25	15 	KS	10006 	KOB	15.100061 
 26	31 	KR	10006 	KOB	31.100062 
 27	13 	KN	10006 	KOB	13.100063 
 28	14 	KT	10006 	KOB	14.100064 
 29	15 	KS	10015 	KAN	15.100151 
 30	31 	KR	10015 	KAN	31.100152 

 ≪完成≫		
 事業所	順位	基本CD
 12	1	12.100201 
 	2	12.100202 
 	3	12.310042 
 	4	12.310043 
 13	1	13.100063 
 	2	13.100122 
 14	1	14.100064 
 	2	14.100161 
 	3	14.310044 
 15	1	15.100061 
 	2	15.100091 
 	3	15.100121 
 	4	15.100151 
 31	1	31.100062 
 	2	31.100152 
 32	1	32.310041 

< 使用 Excel:Excel2010、使用 OS:Windows7 >


こんにちは

基本CDをコピーして昇順でソートしてから、事業所、順位を数式でセットした方が楽のような
気がします。

(ウッシ) 2015/08/17(月) 11:40


この表で作業は完了ではなく、並べ替えられた基本CDをキーとして他の作業を行います。
出来れば途中に手作業を入れず、すべて自動的に完了させたいと思っています。
よろしくお願いします。
(エムエム) 2015/08/17(月) 11:53

説明が足りなかったかもしれませんので補足します。
○データ件数は300件くらいで変動します。
○事業所内の職員数(データ数)も毎回変動します。
(エムエム) 2015/08/17(月) 12:01

 >>出来れば途中に手作業を入れず、すべて自動的に完了させたいと思っています。 

 アップされた例は、「たまたま」基本CDの数値の順序が、最終形の順序ですけど、優先キーとしては
 事務所CDが第一番なんでしょうね。

 いずれにしても、回答側で、コードを書いて、はいどうぞ。で、(エムエム)さんから
 「できました。解決です」なんて流れが一番早いのかもしれませんが、それでいいのですか?

 というか、(ウッシ)さんが言われるような操作をすれば、とにかく自助努力で、最終形が作れるはずですね。
 であれば、まず、その操作をマクロ記録してみる。そこからスタートして、固定領域の変数化等、できない部分に関してSOSをだす。

 こんな段取りというのは(エムエム)さんにとっては考えられないアプローチなんでしょうか?

(β) 2015/08/17(月) 12:10


 ところで、アップされた事例の、データですけど、一番左側の 1,5,6,13,・・・というのは
 行番号なんですよね?
 それともデータの一部ですか?

 行番号だとすれば、なぜ、とびとびなんですか?
 データの一部だとすれば、ここは、どういう意味がある列なんですか?

(β) 2015/08/17(月) 12:17


関数の操作も手作業には変わらないのです。
ウッシさんのやり方を関数のみでやると
=SMALL($E$1:$E$16,ROW(A1))
オートフィル

というようなものです。

(デイト) 2015/08/17(月) 12:25


いろいろとありがとうございます。

ウッシさんの言われているような暫定データを作成し、マクロを記録して並べ替え、次の作業に入っていく方法は、一応考えてみました。
出来れば、関数の組み合わせで処理で切り場と思い質問させて頂きました。

βさんの指摘されたデータはご指摘の通り行番号です。欠番になる理由は、1人の職員が4個づつの番号を持っていますが、その時使用しなかったものを行を削除してupしたため欠番として処理なっています。

デイトさんの方法はトライしてみます。
(エムエム) 2015/08/17(月) 12:44


 ピボットテーブルじゃ駄目なの?
 
(GobGob) 2015/08/17(月) 13:03

こんにちは

そこまで関数に拘る必要が良く分からないですけど、
Sheet1からSheet2へという前提で、

Sheet2のセルA2に、
=IFERROR(IF(COUNTIF($A$1:A1,SMALL(Sheet1!B:B,ROW(A1)))=0,SMALL(Sheet1!B:B,ROW(A1)),""),"")
で下方にフィルコピー

Sheet2のセルB2に 1
Sheet2のセルB3に
=IF(C3="","",IF(A3<>"",1,B2+1))
で下方にフィルコピー

Sheet2のセルC2に
=IFERROR(SMALL(Sheet1!F:F,ROW(A1)),"")
で下方にフィルコピー

とかで、どうでしょうか?

(ウッシ) 2015/08/17(月) 13:33


ウッシさん
ありがとうございました。期待通りの形が出来ました。
ご示唆頂いたものはsheetを2枚使用していますので、これを1枚のワークシートとして使用し、他の作業へ発展させてみます。
本当にありがとうございました。
(エムエム) 2015/08/17(月) 14:03

 > 欠番になる理由は、1人の職員が4個づつの番号を持っていますが、
 > その時使用しなかったものを行を削除してupしたため欠番として処理なっています。 

 この意味がわからないんだけど、無視していいのなら、、、

	A	B	C	D	E	F	G	H	I
1	事業所CD	略称	職員CD	職員名	基本CD		事業所	順位	基本CD
2	15	KS	10009	SSS	15.100091		12	1	12.100201
3	15	KS	10012	AAA	15.100121		 	2	12.100202
4	13	KN	10012	AAA	13.100122		 	3	12.310042
5	14	KT	10016	KAKA	14.100161		 	4	12.310043
6	32	TN	31004	NAK	32.310041		13	1	13.100063
7	12	YS	31004	NAK	12.310042		 	2	13.100122
8	12	YS	31004	NAK	12.310043		14	1	14.100064
9	14	KT	31004	NAK	14.310044		 	2	14.100161
10	12	YS	10020	YAM	12.100201		 	3	14.310044
(以下略)

 G2 =IF(I2="","",INT(I2))
 H2 =IF(G2="","",IF(G2=G1,H1+1,1))
 I2 =IFERROR(SMALL(E:E,ROW(A1)),"")

 下へフィルコピー

 G列には値が全部埋まるけど、先頭だけ表示したいんだったら
 条件付き書式で、数式を =G2=G1 として、フォント色を白にする。
(笑) 2015/08/17(月) 14:30

ウッシさん
ありがとうございました。何とか形になりました。
先ほどの例で、シートを2つに分ける理由がわかりません。同一シート内でやると事業所CDがすべて表示されます。数式のチェックも行いましたが、理由が良く分かりません。
お手数かけますが、再度ご教示ください。
(エムエム) 2015/08/17(月) 16:03

こんにちは

同じシートなら(笑)さんのコードで試してみてはどうですか?

一応直すなら、
=IFERROR(IF(COUNTIF($A$1:A1の$A$1:A1を
このコードをセットした列(例えばJ列のセルJ2なら)に合わせて
$J$1:J1
に変更しましたか?

(ウッシ) 2015/08/17(月) 16:09


ウッシさん、(笑さん)
ウッシさんのご指摘通りして、直りました。
本当にいろいろとありがとうございました。

これで今回の質問を終わらせて頂きます。
今後ともよろしくお願いいたします。
(エムエム) 2015/08/17(月) 16:21


コメント返信:

[ 一覧(最新更新順) ]


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