- ベストアンサー
エクセルで行揃えをする方法
- エクセルで行を揃える方法について教えてください。
- A列にIDが入っており、B列とC列にそれぞれ値が入っている状態です。
- 先頭の数値に合わせて表を整理したいのですが、どのような方法がありますか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
作業列を作って対応します。 D1セルには次の式を入力してE1セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(B1="","",MATCH(LEFT(B1,2),$A$1:$A$10,0)) F1セルには次の式を入力してG1セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COUNTIF(D$1:D$10,ROW(A1))=0,"",INDEX(B$1:B$10,MATCH(ROW(A1),D$1:D$10,0))) 最後にF1セルからG10セルを範囲として選択してコピーし、その後にB1セルを選択してから「形式を選択して貼り付け」で「値」にチェックを付けて貼り付けます。 D列からG列は削除します。
その他の回答 (4)
- MackyNo1
- ベストアンサー率53% (1521/2850)
以下の式を入力して右方向に1つ下方向に10行分オートフィルコピーしてください。 =INDEX(B:B,MIN(INDEX((LEFT(B$1:B$10,2)<>TEXT(ROW(A1),"00"))*100+ROW(B$1:B$10),)))&""
お礼
ありがとうございます。他の方をベストアンサーに選んでから、MackyNo1様の解答に気づきました。お答えいただいた方法でも実現しました。列数が少なくて済む分、こちらのほうが時間が短縮できました、ありがとうございます!
- watabe007
- ベストアンサー率62% (476/760)
>B列に01黒、04白、10赤、C列と4行、さらにC列には02大、05小、06中、08中・・・ こんにちは、マクロで行うのなら Sub Test() Dim c As Range, n As Long Dim v(1 To 10, 1 To 2) For Each c In Range("B1:C10").SpecialCells(2) n = Left(c.Value, 2) v(n, c.Column - 1) = c.Value Next Range("B1:C10").Value = v End Sub
お礼
マクロは使い慣れていないので、試してみたいと思います。ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
A1からA10に数字で1,2,3…10まで入れておきます。 B列とC列にアナタの今のデータが記入されています。 Excel2007以降を使っている場合: D1に =IFERROR(VLOOKUP(TEXT($A1,"00")&"*",B:B,1,FALSE),"") と記入し下にコピー,E列にもコピーします。 Excel2003以前を使っている場合: D1は =IF(COUNTIF(B:B,TEXT($A1,"00")&"*"),VLOOKUP(TEXT($A1,"00")&"*",B:B,1,FALSE),"") になります。 ご相談投稿では,ご利用のソフトのバージョンまでキチンと明記することを覚えてください。
お礼
ありがとうございます。現在会社ではKingsoft Spreadsheet2010を使っており、エクセルで試せていないので、自宅にあるエクセル2007で試してみます。
- aokii
- ベストアンサー率23% (5210/22062)
意味不明ですが、VLOOKUP関数、あるいは並べ替え機能、を使って整理するのはいかがでしょう。
お礼
説明不足と、質問の文章がすこしおかしかったですね。ありがとうございました、他の回答者様のを参考に試してみます。
お礼
ありがとうございます。この方法でやりたいことができました。説明不足にも関わらず的確な解答ありがとうございました!