[[20170511222643]] 『CONCATENATTEを並び替える』(pinkfloyd) ページの最後に飛ぶ

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

 

『CONCATENATTEを並び替える』(pinkfloyd)

B3〜N3まで1〜13の数値を入力します。同じ数字は入りません。
B5〜B58まで3つの数値の組合せがCONCATENATEで入るようになっています。
 B5 =CONCATENATE(D3," ",H3," ",F3)

  B6 =CONCATENATE(I3," ",A3," ",M3)
B58までCONCATENATEです。
現状、B5〜B58をD5に値でコピーしてから昇順という作業を繰り返していますが、作業量が多いのでこの作業でかなり効率の悪さを感じています。
B3〜N3の入力だけでD5〜D58の並び替えまで終わらせる方法(関数)があればご教授ください。
よろしくお願いします。

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


質問の意味がいまいち理解できてないのですが、SMALLまたはLARGE関数を組み込めばいけるような気がします。
(カリーニン) 2017/05/11(木) 23:53

カリーニン様、わかりにくい文章で申し訳ありませんでした。A3間違いでした、B3です。
例: B3〜N3に 3 11 6 2 13 1 9 8 10 4 12 5 7だとした場合
B5はCONCATENATE(D3," ",H3," ",F3)なので 6 9 13です。B6はCONCATENATE(I3," ",B3," ",M3)で 8 3 5。
数式のままでは昇順できないので、B5〜B58をD5〜D58に値でコピーしてから昇順してます。
SMALLはすでに試してみたのですがエラーが出てしまいます。

(pinkfloyd) 2017/05/12(金) 00:37


 >B3〜N3まで1〜13の数値を入力します。同じ数字は入りません。

 本当に数値なんですか?

 下の二つを昇順にすると「13・・」の方が「2・・」より上に来ますけど、それでいいんですか?

 13 3 4
 2 3 4

 それでいい場合

 D5セル =INDEX(B$5:B$58,MATCH(ROW(A1),INDEX(COUNTIF(B$5:B$58,"<"&B$5:B$58)+1,0),0))

 これをD58までコピー

(半平太) 2017/05/12(金) 09:05


O列とP列を作業列とする方法(ソートの基準がよくわかりませんが)
O5=VALUE(CONCATENATE(TEXT(LEFT(B5,FIND(" ",B5)-1),"00"),TEXT(MID(B5,FIND(" ",B5)+1,2),"00"),TEXT(RIGHT(B5,2),"00")))
P5=RANK(O5,O$5:O$58,1)
D5=INDEX(B$5:B$58,MATCH(ROW()-4,P$5:P$58,0))
として下にコピー

(mm) 2017/05/12(金) 12:52


半平太様、有難うございます。難しい数式で理解できていませんが入力してみました。
D5セルは問題ないと思われます。
コピーしたD6以降がうまくいきません。実際の結果は以下の通りです。

3 11 6 2 13 1 9 8 10 4 12 5 7
 B      D
3 13 9   11 1 3
3 13 12  11 1 3
3 13 5   11 2 12
3 13 7   11 2 12
3 9 13   11 6 10
3 9 5    3 1 6
3 9 7    3 10 6  
3 8 2    11 6 5
3 8 1    3 4 6
3 8 9    3 4 6
3 4 6    3 4 6
3 4 13   6 4 2
3 12 13  2 3 1
3 12 1   6 13 3
3 6 8    6 13 2
3 2 9    6 11 5
3 1 6    6 3 12
3 10 6   11 1 3
11 6 10  11 1 3
11 6 5   11 2 13
11 6 7   11 2 5
11 2 13  11 2 13
11 2 12  11 6 5
11 2 5   11 13 2
11 13 2  #N/A
11 13 4  #N/A
11 3 10  #N/A
11 1 3   #N/A
11 10 2  #N/A
6 3 10   #N/A
6 3 12   #N/A
6 3 5    #N/A
6 11 12  #N/A
6 11 5   #N/A
6 1 12   #N/A  
6 1 5    #N/A
6 13 3   #N/A
6 13 2   #N/A
6 4 11   #N/A
6 4 2    #N/A
2 3 1    #N/A
2 3 8    #N/A
2 3 4    #N/A
2 3 12   #N/A
2 11 13  #N/A
2 11 4   #N/A
2 11 12  #N/A
2 4 6    #N/A
13 11 6  #N/A
13 11 2  #N/A
13 11 1  #N/A
13 11 4  #N/A
13 11 12  #N/A
9 6 3    3 13 9
何度も確認したので入力ミスはないと思いますが、何が原因なのでしょうか。

あとコピーで数値の件は、日付文字列が含まれていますの表示が出ます。とりあえず並び替えはできるので2桁の13などが上に来てしまうのは慣れでカバーしている現状です。これも解決できれば有り難いのですが、今は作業の効率をUPが優先です。

お手数をお掛けして申し訳ありませんでした。

mm様、有難うございます。
結論から言うと、出来ました!
計算式入力時は何をしているのかさっぱりでしたが、結果を見ると、OでまとめてPで順位をつけDに反映させているのがよくわかりました。
本当に助かりました。ありがとうございました。

(pinkfloyd) 2017/05/12(金) 14:24


 >何度も確認したので入力ミスはないと思いますが、何が原因なのでしょうか。

 入力ミスしか考えられないです。

 ただ、今となっては、そんなこと言っても始まりません。
 そういう問題も一気に解決しなかったら、効率アップとは言い難いです。
  ↓
 >2桁の13などが上に来てしまうのは慣れでカバーしている現状です。
 >これも解決できれば有り難いのですが、今は作業の効率をUPが優先です。

 D5セルに下式を入力して、下にコピー
 (念のため、結果図を掲示します。長すぎるのであとで消去しますけど)

  =TEXT(SMALL(INDEX(SUBSTITUTE($B$5:$B$58," ",":")*1,0),ROW(Z1)),"h m s")

 <結果図>

  行 ____B____  _C_  ____D____
   5  3 13 9          2 3 1    
   6  3 13 12         2 3 4    
   7  3 13 5          2 3 8    
   8  3 13 7          2 3 12   
   9  3 9 13          2 4 6    
  10  3 9 5           2 11 4   
  11  3 9 7           2 11 12  
  12  3 8 2           2 11 13  
  13  3 8 1           3 1 6    
  14  3 8 9           3 2 9    
  15  3 4 6           3 4 6    
  16  3 4 13          3 4 13   
  17  3 12 13         3 6 8    
  18  3 12 1          3 8 1    
  19  3 6 8           3 8 2    
  20  3 2 9           3 8 9    
  21  3 1 6           3 9 5    
  22  3 10 6          3 9 7    
  23  11 6 10         3 9 13   
  24  11 6 5          3 10 6   
  25  11 6 7          3 12 1   
  26  11 2 13         3 12 13  
  27  11 2 12         3 13 5   
  28  11 2 5          3 13 7   
  29  11 13 2         3 13 9   
  30  11 13 4         3 13 12  
  31  11 3 10         6 1 5    
  32  11 1 3          6 1 12   
  33  11 10 2         6 3 5    
  34  6 3 10          6 3 10   
  35  6 3 12          6 3 12   
  36  6 3 5           6 4 2    
  37  6 11 12         6 4 11   
  38  6 11 5          6 11 5   
  39  6 1 12          6 11 12  
  40  6 1 5           6 13 2   
  41  6 13 3          6 13 3   
  42  6 13 2          9 6 3    
  43  6 4 11          11 1 3   
  44  6 4 2           11 2 5   
  45  2 3 1           11 2 12  
  46  2 3 8           11 2 13  
  47  2 3 4           11 3 10  
  48  2 3 12          11 6 5   
  49  2 11 13         11 6 7   
  50  2 11 4          11 6 10  
  51  2 11 12         11 10 2  
  52  2 4 6           11 13 2  
  53  13 11 6         11 13 4  
  54  13 11 2         13 11 1  
  55  13 11 1         13 11 2  
  56  13 11 4         13 11 4  
  57  13 11 12        13 11 6  
  58  9 6 3           13 11 12 

(半平太) 2017/05/12(金) 16:00


コメント返信:

[ 一覧(最新更新順) ]


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