[[20210618092115]] 『並び替えについて』(エクセルビギナー) ページの最後に飛ぶ

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

 

『並び替えについて』(エクセルビギナー)

エクセル初心者です。お力を貸していただきたいです。

納期管理用のエクセルファイルを作りたいです。
今現在ですと
製品A,B,C があるとすると

製品 納期
B   6/17
A   6/18
C   6/19
A   6/19
B   6/19

これを
製品 納期
B 6/17
B 6/19
A 6/18
A 6/19
C 6/19

のように並べたいです。

言葉で説明すると、
製品ABCの中で納期が一番早いものを先頭セルに
その製品を納期順に並べる。
製品ABCの中で納期が二番目のものを選ぶ
その製品を納期順に並べる



という形のセルを作りたいです。
どうすればいいでしょうか。
ご教授お願い致します。

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


希望の形とは異なりますが、このような形式ではいかがでしょうか?
納期が昇順であるなら・・・という条件が付きます。
A:B列にデータがあるとして、
D2セルに =TRANSPOSE(UNIQUE(A2:A6))
D3セルに =FILTER($B$2:$B$6,$A$2:$A$6=D$2)
D3セルの数式を右方向にコピーします。

こんな感じのものができます。

 B      A	     C
 2021/6/17	2021/6/18	2021/6/19
 2021/6/19	2021/6/19	

(Hatch) 2021/06/18(金) 10:04


 例題だけで行くと =UNIQUE(A1:B6,false) で別の場所に表示させることはできます
 例題変わると分かりませんが

 また別方法ですが製品列と納期列を選択して納期を古い順に並べ変えをしておき
 製品列と納期列を選択して重複の削除で製品名側だけチェックいれて古い日付での
 製品名をリストにしておき ファイル→オプション→詳細設定→ユーザー設定リストの編集に
 抜き出したリストをインポートしておき製品名と納期を並べ替えするときに
 製品名側は先ほどインポートしたユーザー設定リストを選択して納期は古い順で
 並べ替えてみてはどうでしょうか

 書いてて自分でわからなくなってきた
 要はユーザー設定リストに範囲指定でリスト登録ができますということ
(なるへそ) 2021/06/18(金) 11:04

 1.別紙(Sheet2)に下の式を入れる。

  (1) A1セル =UNIQUE(Sheet1!A2:INDEX(Sheet1!A:A,LOOKUP(8^8,Sheet1!B:B,ROW(B:B))))
  (2) B1セル =MINIFS(Sheet1!B:B,Sheet1!A:A,A1#)

  <Sheet2 シート 結果図>
  行  _A_  __B__
   1  B    44364
   2  A    44365
   3  C    44366

 2.元のシート(Sheet1)に下の式を入れて、下にコピーする。

  C2セル =VLOOKUP(A2,Sheet2!A:B,2,0)&A2

  <Sheet1 シート 結果図>
  行  __A__  ___B___  ___C___
   1  製品   納期     優先度 
   2  B      6月17日  44364B 
   3  A      6月18日  44365A 
   4  C      6月19日  44366C 
   5  A      6月19日  44365A 
   6  B      6月19日  44364B 

 3.優先度を基準に並べ替える

  <Sheet1 シート 結果図>
  行  __A__  ___B___  ___C___
   1  製品   納期     優先度 
   2  B      6月17日  44364B 
   3  B      6月19日  44364B 
   4  A      6月18日  44365A 
   5  A      6月19日  44365A 
   6  C      6月19日  44366C 

(半平太) 2021/06/18(金) 11:13


ご返信ありがとうございます。半平太さんのやり方でやってみようと思います。
答えてくださった皆様にも深く感謝申し上げます。
(エクセルビギナー) 2021/06/19(土) 14:20

 解決済みになっていますが、強引に作式してみました。参考までに。。。

    A    B         C
 1 製品	納期	
 2 BB	6/17	BB         06/17
 3 BB	6/19	BB         06/19
 4 ABC	6/18	BB         06/20
 5 ABC	6/19	BB         06/22
 6 C	6/19	ABC        06/18
 7 BB	6/20	ABC        06/19
 8 C	6/21	C          06/19
 9 BB	6/22	C          06/21


 C1に このようにするのですが、製品と納期をspaceをあけて、表示しています。 

 =RIGHT(SORT(MINIFS(B$2:B$9,A2:A9,A2:A9)&LEFT(A2:A9&REPT(" ",10),10)&TEXT(B2:B9,"mm/dd")),15)

(6up) 2021/06/19(土) 15:30


 すみません。訂正させてください。

 >C1に このようにするのですが  (誤)
 C2に このようにするのですが   (正)

(6up) 2021/06/19(土) 15:35


 解決済みですが、=SORTBY()を使用すると、別々なセルに表示できますね。

                    =SORTBY(A2:B9,MINIFS(B2:B9,A2:A9,A2:A9))
                        ↓
    A    B              C       D
 1 製品	納期			
 2 BB	6/16		BB	6/16
 3 BB	6/19		BB	6/19
 4 ABC	6/18		BB	6/20
 5 ABC	6/19		BB	6/22
 6 C	6/17		C	6/17
 7 BB	6/20		C	6/21
 8 C	6/21		ABC	6/18
 9 BB	6/22		ABC	6/19

(6up) 2021/06/21(月) 18:11


SORTBY すごい!

(マナ) 2021/06/21(月) 19:42


ありがとうございます。そのやり方もスマートなので、やってみたいとおもいます!
(エクセルビギナー) 2021/06/21(月) 19:50

たとえば、最短納期がダブっているような場合は
=SORTBY(A2:B10,MINIFS(B2:B10,A2:A10,A2:A10))
とすると、以下のようになります。
このようなケースは無いのですか?
重箱の隅をつつくようで書きたくないのですが、
この数式がなかなか理解できずにいろいろ試していたら、このような疑問が出てきたもので。
製品 納期
BB 6月16日 BB 6月16日
C 6月17日 BB 6月19日
ABC 6月17日 BB 6月20日
ABC 6月18日 BB 6月22日
BB 6月19日 C 6月17日
ABC 6月19日 ABC 6月17日
BB 6月20日 ABC 6月18日
C 6月21日 ABC 6月19日
BB 6月22日 C 6月21日
(Hatch) 2021/06/22(火) 08:17

十分ありえますね。そしてこのケースは見落としするとかなり危険です。
教えていただいてありがとうございます。他に良い方法がないか考えてみます。
(エクセルビギナー) 2021/06/22(火) 08:23

えっ、半平太さんの方法は?
(Hatch) 2021/06/22(火) 08:30

これでいいのかも・・・
=SORTBY(A2:B10,MINIFS(B2:B10,A2:A10,A2:A10)&A2:A10)
6upさんと半平太さんの考え方をまとめた感じですけど。
(Hatch) 2021/06/22(火) 08:39

 大変失礼しました。

 Hatchさんのご指摘のとおりですね。
 並び替えの基準が不足していました。

 =SORTBY(A2:B9,MINIFS(B2:B9,A2:A9,A2:A9),1,A2:A9,1)
 とするものより、
 =SORTBY(A2:B9,MINIFS(B2:B9,A2:A9,A2:A9)&A2:A9)
 のほうがいいですね。

 Hatchさん、ありがとうございます。
(6up) 2021/06/22(火) 12:06


コメント返信:

[ 一覧(最新更新順) ]


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