- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
添附圖參照(Excel 2019) 1.1行目に行挿入を實行して、新規1行目を何等かの項目行と  ̄ ̄する。(此処では、列A、列B、…、列L として措く) 2.式 =IF(LEN(A2)-LEN(SUBSTITUTE(A2,"-","")),A2,L1)  ̄ ̄を入力したセル L2 をズズーッと下方に(此処では36行目  ̄ ̄迄)オートフィル 其の結果を添附圖左に示した。 3.列L全體を選擇⇒Ctrl+C⇒選擇された儘の L列内でマウス  ̄ ̄の右クリック⇒[貼り付けのオプション]直下の[123](値)  ̄ ̄アイコンをツン 4.列範圍 A:L 全體を選擇⇒Tabキーをツン、ツン、ツン、…  ̄ ̄ してアクティブセルを L内に移動⇒Alt+ASA を實行 其の結果を添附圖右に示した。
その他の回答 (5)
- SI299792
- ベストアンサー率47% (780/1631)
済みません、数式は C1: =LEFT(INDEX(A:A,FLOOR(ROW()-1,5)+1),3)&TEXT(MID(INDEX(A:A,FLOOR(ROW()-1,5)+1),4,2),"00") でしたす。 今後、データが増えた時の為に、もっと下まで数式を入れておきたい場合、 C1: =IF(AND(A1="",A2=""),"ÿ",LEFT(INDEX(A:A,FLOOR(ROW()-1,5)+1),3)&TEXT(MID(INDEX(A:A,FLOOR(ROW()-1,5)+1),4,2),"00")) 数式を直しておきました。 この状態で並べ替えをしてみて下さい。
お礼
何度もありがとうございます。結果としては、同じ状態になりました。A1-27・・・B1-30・・・とC列に表示されました。C1に関数をコピペしてオ-トフィルしたのですが、できませんでした。申し訳ありません。
- SI299792
- ベストアンサー率47% (780/1631)
てっきり「m2」はB列に入っていると思いました。 C1: =LEFT(INDEX(A:A,FLOOR(ROW(),5)+1),3)&TEXT(MID(INDEX(A:A,FLOOR(ROW(),5)+1),4,2),"00") にして下さい。 9 が2 に代わるだけです。 ところで、左側の数字が1桁、右側の数字が1~2桁でいいですか。
お礼
再度の回答ありがとうございます。 上手くいかないのでEXCELをアップロ-ドします。見て頂けるとありがたいです。回答して頂いたお二人の名前を各シ-トにしました。宜しくお願い致します。 https://drive.google.com/file/d/1UWywtrMgrp5Xn0DCA1IqqQR2aRdNdpCJ/view?usp=sharing
- imogasi
- ベストアンサー率27% (4737/17069)
#1です。 もう一度やってみてください。 (1)本当の自分のデータでやりたいと言う気持ちはわかりますが、 それを抑えて 私の挙げたデータで遣ってみてください。 (2)新しいシートの、A列にデータを、回答者のの例を、そのまま使って、手打ちする。 (1)特に留意点は、第I行は空白行を挿入して、空白行にする。 B列B2セルに、私の書いた、IF文の関数式を入れる。 ーーー (3)A列+B列を範囲指定して、コピーし CTRL+V ->コピーのショットカットキー CTRL+ALT+V ー>形式を選択して貼り付けの窓が出る そこで V(値)を選択する。 Enterキー これで、A,B列はB列の関数式が消えて、結果の値だけ複写される。 (4)A,B列を範囲指定して、データー並び替えを選び、 ソートキーはB列を指定する。 この結果を、見てください。 ーー (5)それから自分のデータのシートの場合はどうれば良いか、 、考えて、類推してやってください。 この問題は難しい点がある課題と思う。だから質問したのは判るが、あきらめずにやってほしい。 私の方法でやると、結果がおかしいなら、お詫びするが、「判りません」では、侘しい。
お礼
再度の回答ありがとうございます。 上手くいかないのでEXCELをアップロ-ドします。見て頂けるとありがたいです。回答して頂いたお二人の名前を各シ-トにしました。宜しくお願い致します。 https://drive.google.com/file/d/1UWywtrMgrp5Xn0DCA1IqqQR2aRdNdpCJ/view?usp=sharing
- SI299792
- ベストアンサー率47% (780/1631)
データが4行、空白1行固定とします。 簡単な方法として C1: =LEFT(INDEX(A:A,FLOOR(ROW(),5)+1),3)&TEXT(MID(INDEX(A:A,FLOOR(ROW(),5)+1),4,9),"00") 下へコピペ。 C列でソート。 A1-27 は左の数字は1桁、右の数字は最大2桁を想定しています。 左が2桁以上になる時は、補足して下さい。 右が3桁になる時は、"000" にします。 頻繁に使うので関数にしてソートしなくてもいいようにしたい場合も、補足して下さい。
補足
回答ありがとうございます。 C1にコピペしてソ-トしましたら、下記のようになりました。 https://photos.app.goo.gl/xQPM1RjbHG4oQYSD8 私が操作を間違えているかもしれません。
- imogasi
- ベストアンサー率27% (4737/17069)
多分、エクセル関数でということだろう。VBAなどなら、やり方は広がるが。 例データ A列 B列は下記関数の結果 A2:B20 だい1行目は、訳があって空白行にすること。 A1-23 A1-23 x A1-23 s A1-23 d A1-23 A1-23 B1-25 B1-25 a B1-25 d B1-25 fg B1-25 B1-25 C2-16 C2-16 a C2-16 s C2-16 C2-16 A2-25 A1-25 fg A1-25 d A1-25 g A1-25 h A1-25 A1-25 B2の関数は =IF(A1="",A2,B1) B列でなくても空き列であればよい。 下方向に、データ最終行+1行(空白だろう)まで式を複写。結果上記B列。 このデータ部分A,B列を、同じ場所に、値のみ複写。 目的は、B列の関数式を消すこと。 ーー データのある行を範囲指定して、 データー並べ替えーB列 並びかえ(ソート)は、関数でもできなくはないが、関数でやるのは 適してない。操作で済ますことを勧める。 ーー 結果 A1-23 A1-23 x A1-23 s A1-23 d A1-23 A1-23 A1-25 A1-25 fg A1-25 d A1-25 g A1-25 h A1-25 B1-25 B1-25 a B1-25 d B1-25 fg B1-25 B1-25 C2-16 C2-16 a C2-16 s C2-16 C2-16
お礼
回答ありがとうございます。 Excel初心者で、どうすればよいのかわかりませんでした。 If関数はコピペして、ソ-トしましたが、それ以降がよく分かりませんでした。知識が足りなくて申し訳ありません。
お礼
A1-1の次がA1-10 A1-11..となりましたが、他は完璧にできました。ありがとうございます。とても助かりました。