【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

エクセル初心者です。

エクセル2007を使用しております。
エクセルで取引先一覧を作成しています。連絡先が多いので、ふりがなにて並べ替えをしています。連絡先が増える度に、並べ替えをしていて、とても不便です。ふりがなを入れたら自動的に表全体が並べ替え出来る方法が有れば教えて下さい。

   A     B   C
1 会社名 ふりがな 住所
2 ㈱石田  いしだ 北海道
3 ㈲向井  むかい 東京都

といった表を作成しております。出来れば数式で教えて頂きたいです。
宜しくお願い致します。

A 回答 (4件)

えと、データを入力したら、フリガナのセルをどこか1つ選択して「A→Z」のボタン押すだけだと思うのですが…


クイックアクセスツールバーにボタン配置しておいては?
    • good
    • 1

No.2です。



>出来れば数式で教えて頂きたいです
を見逃していました。

同一Sheetでは難しいので、元データがSheet1の2行目以降にデータがあり、Sheet2に表示させるとします。

Sheet1のD列を作業用の列として使用します。
Sheet1のD2セルに
=IF(B2="","",COUNTIF(B$2:B$1000,"<"&B2)+COUNTIF(B$2:B2,B2))
という数式を入れフィルハンドルでずぃ~~~!っとしっかり下へコピーしておいてください。

そしてSheet2のA2セルに
=IFERROR(INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!$D:$D,0)),"")
という数式を入れC2セルまでフィルハンドルでコピー!
そのまま下へずぃ~~~!とコピー!

これで何とかご希望通りにならないでしょうか?m(_ _)m
    • good
    • 1

こんにちは!


No.1さんも仰っている通り、
データが増えるたびに並び替え(一つ一つではなく、すべてのデータ入力後)を行えば解決だと思うのですが、
これではお役に立たないので、VBAでやってみました。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところい
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)A~C列にデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("A:C")) Is Nothing Or Target.Count > 1 Then Exit Sub
If WorksheetFunction.CountA(Cells(Target.Row, "A").Resize(, 3)) = 3 Then
Range("A1").CurrentRegion.Sort key1:=Range("B1"), order1:=xlAscending, Header:=xlYes
End If
End Sub 'この行まで

※ A~C列すべてが入力された時点でマクロが実行されます。

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 1

「ふりがなにての並べ替え」を「選択した範囲のデータを並べ替え」で行っているのでしょうか?


それが「不便」というほどの物かが認識の差だと思うのですが。
範囲を選択して最優先にふりがなの列を選んでクリックするだけなので、
そんな大変には思えないんですが。もし、これを簡素化したいのでしたらキー操作をマクロに
したら如何でしょうか?
選択範囲を列方向にかなり長めもしくは最末端までにしとけば良いと思います。

もし、「選択した範囲のデータを並べ替え」をご存じないのでしたら、
↓ここを参照してください。
http://121ware.com/qasearch/1007/app/servlet/rel …
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報