[[20190610111957]] 『重複数値の非表示について』(エムエム) ページの最後に飛ぶ

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

 

『重複数値の非表示について』(エムエム)

毎月の職員データをExcelで処理しています。毎月職員の出入りがありますので、年間集計時に毎月の職員番号を検索し、小さい順に並べ名前を表記したいと思っています。(列は「月」、行は「職員数」、データは「職員番号」です。)

《基本データ》

    A    B    C    D  
1 1001 1001 1001 1003
2 1003 1003 1003 1005
3 1004 1010 1005 1010
4 1005 1011 1010 1011
5 1010 1012 1011 1012
6 1011 1015 1015 1015

関数 SMALLで集計の結果
  A
1 1001
2 1001
3 1001
4 1003
5 1003
6 1003
7 1003
8 1004
9 1005
(以下省略)

《集計したいフォーム》
  A
1 1001
2 1003
3 1004
4 1005
5 1010
6 1011
7 1012
8 1015
(以下省略)

このような処理ができる関数等があれば、よろしくご教示ください。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 作業列を使う方法(基本データの列数と同じだけ作業列を使う)
 例として基本データのF列からI列を作業列とする。
 F1セルに
 =COUNTIF($A$1:A$6,A1)
 と入力して右及び下へフィルコピーする。
(ねむねむ) 2019/06/10(月) 12:45

 集計用シートのA1セルに
 =IFERROR(SMALL(IF(基本データ!$F$1:$I$6=1,基本データ!$A$1:$D$6,""),ROW(A1)),"")
 と入力してShiftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK)
 その後、下へフィルコピーではどうか?
(ねむねむ) 2019/06/10(月) 12:48

 作業列を使わない場合。
 集計シートの集計開始したいセルに
 =IFERROR(SMALL(IF(COUNTIF(INDIRECT("基本データ!A1:"&ADDRESS(6,COLUMN($A:$D))),基本データ!$A$1:$D$6)=1,基本データ!$A$1:$D$6,""),ROW(A1)),"")
 と入力してShift+Ctrl+Enterで確定後、下へフィルコピー。
(ねむねむ) 2019/06/10(月) 13:10

 >列は「月」、行は「職員数」、データは「職員番号」です。

 ↑ 意味が分からないので無視しています。

 基本データが Sheet1 だとして

 ■集計シート
 A1 =MIN(Sheet1!A1:D6)

 A2 =IF(OR(A1="",MAX(Sheet1!$A$1:$D$6)=A1),"",SMALL(Sheet1!$A$1:$D$6,COUNTIF(Sheet1!$A$1:$D$6,"<="&A1)+1))

 普通に Enter で確定し、A2を下にコピー

 参考まで
(笑) 2019/06/10(月) 13:33

(笑)さんでよろしいのでしょうか?
ありがとうございました。
こちらのほうが簡単にできそうですので、この方法でやってみます。

(エムエム) 2019/06/10(月) 13:48


コメント返信:

[ 一覧(最新更新順) ]


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