- ベストアンサー
エクセルの関数について
たとえば、列Aに甲120または150列Bに500列Cに甲120-500と表示させているんですが、データを昇順に並べ替えるとき、甲が入っているとうまく並べかえることができません。甲120→甲1200→甲200→甲2000とういふうになってしまいます。これを解消する方法ありますか?または、いったん甲と数字をばらばらにして(その関数も教えてください)甲と本番と枝番を各々結合させることはできますか?(甲がない大字の分と枝番がない場合もあります) よろしくお願いします。 列A 列B 列C 本番 枝番 地番 甲120 50 甲120-50 1500 25 1500-25 2540 2540 甲1352 甲1352
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
=IF(AND(LEN(A2),LEN(B2)),A2&"-"&B2,A2&B2) で本番+枝番=地番にできます。 並べ替えを考えるなら1列追加 列A 列B 列C 列D 甲 本番 枝番 地番 甲 120 50 甲120-50 1500 25 1500-25 2540 2540 甲 1352 甲1352 の様にすればいいのでは? こちらの場合は =IF(AND(LEN(B2),LEN(C2)),A2&B2&"-"&C2,A2&B2&C2)
その他の回答 (4)
- JaritenCat
- ベストアンサー率37% (122/322)
#3の補足です。 列A、列Bを結合して列Cをつくる =A1&IF(ISBLANK(B1),"","-"&B1) 説明:まずAはそのまま表示、Bに何もなければそれで終わり、Bが空セルじゃなければ"-"とBを表示。 文字の連結は、CONCATENATEでも&でもいいです。。。
- imogasi
- ベストアンサー率27% (4737/17069)
失敗の記。 漢字がある列はA,C列で、B列は通常の数字ですね。 普通は甲123を桁を合わせて甲 123とか 甲0000123のようにデータをそろえてつくり、ソートするのです。やって見ました (例データ)A列とB列 丙23455 丙0023455 甲123 甲0000123 甲1 甲0000001 乙3456 乙0003456 123455 0123455 1245 0001245 123 0000123 12 0000012 B列は =IF(ISNUMBER(A1)," "&MID("0000000",1,7-LEN(A1))&A1,LEFT(A1,1)&MID("0000000",1,8-LEN(A1))&RIGHT(A1,LEN(A1)-1)) で出しました。スペースにするときは゛0000000゛をスペース7桁にすれば良い。 しかしこれをソートすると 12 0000012 123 0000123 1245 0001245 123455 0123455 乙3456 乙0003456 甲1 甲0000001 甲123 甲0000123 丙23455 丙0023455 となって、甲乙丙の順に並ばない。降順にしても同じ。 ですからこの順に並べたいなら、甲=1,乙=2、丙=3 と置換えた列をソートキー用の列として作らないといけない(注)。甲乙丙の3つならまだなんとかなるが、多くなると大変。それにしてもC列用にもう1列必要です。 このケースは面どくさい例ですね。 (注)1列に甲、乙、丙だけの列を作り、ソートのオプションの「甲、乙、丙、丁・・」を指定してソートする方法がある。これがベターかも。しかしA列で2列、C列で2列になってしまう。 なお上記B列はP付きの書体「以外」 を使って見てください。すっきり並びます。 (結論) 第1文字が数字出なければ、1文字だけある列にセットする。 残りを数字にするか、上記のように0かスペースを先頭部に埋めて桁ぞろえする列を作る。C列も同じ。 最後に下3桁でソートし上2桁でソートする。 A1+A2+B+C1+C2の5列です。
- JaritenCat
- ベストアンサー率37% (122/322)
甲+数字を別々のセル(セル1とセル2)に分ける ・セルが数字じゃなかったら、セル1に最初の文字、セル2には2文字目以降を入れる ・セルが数字だったら、セル1は空欄、セル2は数字を入れる セル1 =IF(ISNUMBER(A1),"",LEFT(A1,1)) セル2 =IF(ISNUMBER(A1), A1, RIGHT(A1,LEN(A1)-1)) 二つのセルをつなぐ =A1&A2
お礼
IFとLENにCONCATENATE関数を組み合わせればいいのですか?
- elmclose
- ベストアンサー率31% (353/1104)
D1に次の数式を入れてみてください。 =VALUE(RIGHT(A1,LEN(A1)-1)) そして、これをD列の各セルにコピーしてください。 これは、つまり「甲」を分離して、数値のみを取り出しています。従って、D列をキーとして昇順に並べ替えを行なえば、甲の本番順に並べることができます。 甲が入っているものと入っていないものとが混在している場合や、甲のほかに乙とか丙も入っている場合は、頭の一文字によって場合わけする(=if()を用いる)などして、所望の順序を得ることができます。 さらに質問があれば、書いてください。
お礼
VALUE関数とLEN関数の使用方法がいまいち分からなかったので、参考になりました。まだまだ関数初心者なので一から作ってみます。ありがとうございました
お礼
LEN関数とIF関数を組み合わせればいいのですね。参考にさせていただきます。ありがとうございました