• ベストアンサー

エクセルで数列の上位桁のみ取り出し並べ替える

エクセルで A1セルに 43782615 とあるとします。 それの上位4桁 4378 をB1セルに取り出し  その後 C1セルに 若い順番 2378 に並べ替えて表示するにはどうしたら良いでしょうか? あと 5桁、6桁を取り出す方法も教えていただきたいです。 ちなみに、関数のみで実現したいです。 詳しい方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

A列にデータが有るとしてB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",LEFT(A1,4)*1) 4ケタを取り出すのでLEFT関数の引数を4にしています。5ケタでしたら引数を5としてLEFT(A1,5)のようにします。 なお、LEFT関数で取り出した数字は文字列として取り出されますので数値に変換するために1を掛けています。 C1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",SMALL(B:B,ROW(A1))) 上の式では数値が小さい方から大きい方に並びます。 反対にする場合には次の式になります。 =IF(A1="","",LARGE(B:B,ROW(A1)))

gekikaraou
質問者

補足

早速の回答ありがとうございます! =IF(A1="","",LEFT(U45,4)*1) でやってみました、お見事出来ました。 17468523 が 1746 に。 それで、並べ替えの部分ですが、上記の様に U45セルを参照していますので数式を次のように変えました。 =IF(U45="","",SMALL(B:B,ROW(U45))) そしたら一桁で 1 と出てしまいました。 これはどこがいけないんでしょうか?

その他の回答 (4)

回答No.5

値のrank付け後に関連するセルの数値を1セル内に http://okwave.jp/qa/q7822154.html で同じようなこと行っている。 =SUMPRODUCT(SMALL(MID(A1,{1,2,3,4},1)*1,{1,2,3,4}),10^{3,2,1,0}) 解説がNo.3のmike_gさんの回答 なぜ、同じ質問をする? エクセルで数列の上位桁のみ取り出し並べ替える http://okwave.jp/qa/q7824129.html

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No2です。 2問目が勘違いをしていました。 C1セルに表示させるためには作業列を4ケタの場合でしたらD列からG列に作ります。 D1セルには次の式を入力してG1ですまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(LEN($B1)<>4,"",MID($B1,COLUMN(A1),1)*1) その後にC1セルには次の式を入力して下方にドラッグコピーします。 =IF(LEN(B1)<>4,"",SMALL(D1:J1,1)&SMALL(D1:J1,2)&SMALL(D1:J1,3)&SMALL(D1:J1,4)) これで数値に0が含まれている場合での、1が4つ並ぶ場合でも正しく表示されます。

gekikaraou
質問者

補足

再度のご回答ありがとうございます。 追加で画像を添付する方法が解らなかったので、新たに質問をさせて頂きました。 お手数かと思いますが、よろしければお願いいたします。 http://oshiete.goo.ne.jp/qa/7824129.html

noname#204879
noname#204879
回答No.3

添付図参照 範囲 C1:F1 を選択して、配列数式 {=VALUE(MID($A1,{1,2,3,4},1))} を入力 範囲 G1:J1 を選択して、配列数式 {=SMALL($C1:$F1,{1,2,3,4})} を入力 セル B1 に式 =G1*1000+H1*100+I1*10+J1 を入力

gekikaraou
質問者

お礼

ありがとうございます。 今回は、1セル内にという条件がありましたので他の回答を参考にさせて頂きましたが、こちらも有効な方法ですね。 参考にさせていただきます。 ありがとうございました!

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.1

取り出すのは B1に=LEFT(A1,4)です最後の数字は桁数ですから変えればどんな桁数でもOKです。 ちなみに右からなら=right(A1,○)で右から○桁抽出です。 =MID(A1,2,3)だと左から2桁目から3つ抽出を意味します。 並べ替えは、よく分かりません。 もしかすると、関数では出来ないかもしれません。

gekikaraou
質問者

お礼

ご回答ありがとうございます。 関数を知っていればいろんな事が出来ますね。 このシート以外は使うことがないので教えていただいて助かります。

関連するQ&A