表に入力してあるよみがなを並び替えたいのですが、スペースが間に入っているものと入っていないものがあるので、次のような式を使ってスペースをとりました。
=IF(読み仮名データセル="","",IF(ISERROR(LEFT(読み仮名データセル,SEARCH(" ",読み仮名データセル,1))),読み仮名データセル,LEFT(読み仮名データセル,SEARCH(" ",読み仮名データセル,1)-1)&RIGHT(読み仮名データセル,LEN(読み仮名データセル)-SEARCH(" ",読み仮名データセル,1))))
回りくどい式ですが、もし読み仮名のデータがあれば、スペースの位置を検索して、スペースがなければそのまま読み仮名を表示、あればスペースの右と左だけを結合して表示する、というものです。
これを 名簿表のずっと右の方で作業して、スペース無しの読み仮名を書き出しました。
この読み仮名の一覧を、もとの読み仮名のところに「値だけ貼り付け」して、並び替えをしたのですが、なぜか以下のようになってしまいます。
最初のデータ
「 」(スペース)
あおのあおこ
えんどうえつ
うちだうちこ
かきだかきこ
いむらいまこ
「 」(スペース)
これを並び替えしてみると、
「 」(スペース)
「 」(スペース)
あおのあおこ
いむらいまこ
うちだうちこ
えんどうえつ
かきだかきこ
となってしまいます。
本当は、「 」(スペース)には列の一番最後に言って欲しいのですが・・・。
こうなって欲しい・・
あおのあおこ
いむらいまこ
うちだうちこ
えんどうえつ
かきだかきこ
「 」(スペース)
「 」(スペース)
なにかいい方法はあるでしょうか?
No.7ベストアンサー
- 回答日時:
計算式が入っている空白のセルをnullにします。
空白セルのある列の最上段のセルを
1クリックしてからマクロを開始してください。
一度でも使用したことのあるセルを最終行と
するので、ごみが下の方にあるとそこまで
処理します。使っていないセルが表外にある
時は削除して、上書保存後に使ってください。
ごみは時間がかかるという程度の問題ですが。
これなら行を指定しなくても全部処理します。
Range("A1").Select
などで開始位置を指定すればマクロから自動です。
ちなみに空白を取り除くものは下の関数もあります。
=SUBSTITUTE(A1," ","")置き換え
Sub 計算式をnullに()
開始位置 = ActiveCell.Address
現在行 = ActiveCell.Row
現在列 = ActiveCell.Column
最終位置 = ActiveSheet.Cells.SpecialCells(xlLastCell).Address
最終行 = ActiveCell.Row
最終列 = ActiveCell.Column
For I = 現在行 To 最終行
If LenB(Cells(I, 現在列)) = 0 Then
Cells(I, 現在列) = Null
End If
Next
Range(Cells(現在行, 現在列), Cells(最終行, 現在列)).Select
End Sub
マクロの使い方などは質問ください。
さっそく試してみました。
何故か
Cells(I, 現在列) = Null
ではうまくいきませんでしたが、
Cells(I, 現在列).ClearContents
にしたところ、並び替えが思い通りに動くようになりました。
ありがとうございました。
No.6
- 回答日時:
スペースの場合は適当な漢字を入れておくっていうのは、
=IF(読み仮名のセル="","一",SUBSTITUTE(読み仮名のセル," ",""))
のような感じです。「一」は漢数字の1です。
これで、読み仮名のセルに何も入っていない場合は「一」と表示が出ます。
これで並べ替えをすると、「一」の入っているセルは実際にひらがなで
読み仮名が入っているセルより下に行きます。
表示は下のようになります。
一
あおのあおこ
えんどうえつ
うちだうちこ
かきだかきこ
いむらいまこ
一
No.5
- 回答日時:
毎回あるということでしたら
マクロで作られてはいかがですか。
並べ替えてから、
スペースだけ最下段へ移動
というようなものを。
マクロでも可ですか。
マクロを使ったことはありますか。
作り方は質問ください。
この回答への補足
今回もマクロを使っているのですが、VBAは使ったことがないので マクロの編集は手探り状態です。
(^_^; アハハ…
もし 「 値の貼り付け 」をした後の ""を貼り付けたセルだけ、もう一度選択して、「デリート」をかけられたら、解決するのですが、そういうこともできますでしょうか?(手作業で そういうセルを選択して「デリート」をすると、並び替えがうまくいくことがわかったので)
No.4
- 回答日時:
最初に降順で並び替えて空白データを後ろに持っていって、次に空白以外のデータを昇順で並び替えるってのはどうでしょう?
No.3
- 回答日時:
どうしても文字よりもスペースが上に来てしまうので、
1.あとで自分で入れ替える
2.スペースの場合は適当な漢字を入れておく
3.スペース部分には全角のスペース1つ、読み仮名が入力されている場合は
読み仮名の前に半角スペースを入れて
データ→並べ替え→オプション→大文字と小文字を区別するにチェック
などしか無いと思います。
あと、スペースを除くには、
=SUBSTITUTE(読み仮名データセル," ","")
で簡単に出来ます。
この回答への補足
データ量が多く、かつエクセル初心者が扱えるように、なるべく手作業は減らしたいのです。
名簿用のスペースは毎月150件ほどを用意してあり、毎回漢字をいれたり 入れ替えをするのは避けたいと思っています。
また、私の立てた式をごらんいただきましたように、スペース部分には""、つまり空白を指定してあるので、何も入っていないはずなのに、上記のような結果になってしまうのです。何もない=""セルをコピーして「値を貼り付け」すると、どうも何かがセルに代入されてしまうのでしょうか・・?教えていただいた、=SUBSTITUTE(読み仮名データセル," ","") という式も試してみましたが やはり同じ結果になりました。
No.2
- 回答日時:
これはスペースだけ(スペースのデータが存在する)のセルがあるということですよね?
それならば、このスペースだけのセルを空セルにすればいいです。
具体的には、スペース(” ”)をヌル(””)にすれば可能です。
この回答への補足
私の立てた式をごらんいただきましたように、参照先の読み仮名データセルが空白セルの場合には、""つまり空セルとするように指定してあるのです。
普通の空白セルは並べ替えの時には最後尾にいくのに、なぜか この場合は最前列にきてしまうのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/12 09:24
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) エクセルを活用して受注表を作成中ですが関数が分からなく困ってました。 1 2022/07/22 09:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
セルを結合した場合の関数(COU...
-
EXCELで、結合されたセルに連続...
-
エクセル ボタンを押すとセルの...
-
Excel 離れたセルへの連続デー...
-
VBAで結合したセルがクリアでき...
-
エクセルでチェックボックスを...
-
エクセルで片方のセルに入力し...
-
エクセルでセルをクリックして“...
-
EXCEL VBAでたくさんのURLの一...
-
Excel セルを結合したものを抽...
-
Excelの表に自動でナンバリング...
-
Excelのカウントアップボタンに...
-
エクセルVBAでセルのFormulaHid...
-
セルの値を取得してSQL文に組み...
-
Excelの関数を教えてください。
-
エクセル 結合セル内に空白なら...
-
エクセルでたくさんのセルを小...
-
結合セルのデータ消去でエラー...
-
Excel2007 セルの削除について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
エクセル ボタンを押すとセルの...
-
EXCELで、結合されたセルに連続...
-
セルを結合した場合の関数(COU...
-
エクセルで片方のセルに入力し...
-
Excel 離れたセルへの連続デー...
-
VBAで結合したセルがクリアでき...
-
セルの値を取得してSQL文に組み...
-
Excelの表に自動でナンバリング...
-
エクセルでセルをクリックして“...
-
Excelのカウントアップボタンに...
-
エクセル 結合セル内に空白なら...
-
Excel セルを結合したものを抽...
-
VBAで困っています。
-
Excel2007 セルの削除について
-
【EXCEL】条件に合致するセルの...
-
エクセルでたくさんのセルを小...
-
エクセルで作業した日の日付を残す
-
Excelでnullになるような式のセ...
-
EXCEL VLOOKUP的コメント自動表示
おすすめ情報