![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
表に入力してあるよみがなを並び替えたいのですが、スペースが間に入っているものと入っていないものがあるので、次のような式を使ってスペースをとりました。
=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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
EXCELで、結合されたセルに連続...
-
エクセル ボタンを押すとセルの...
-
エクセルでセルをクリックして“...
-
エクセルで片方のセルに入力し...
-
セルの値を取得してSQL文に組み...
-
Excel セルを結合したものを抽...
-
VBAで結合したセルがクリアでき...
-
エクセルでたくさんのセルを小...
-
Excelでnullになるような式のセ...
-
EXCEL VBAでたくさんのURLの一...
-
Excel 離れたセルへの連続デー...
-
セルを結合した場合の関数(COU...
-
「数式は隣接したセルを使用し...
-
エクセルで作業した日の日付を残す
-
Excelの表に自動でナンバリング...
-
セル内の一部に別セルを差し込む
-
曜日を判定して、曜日ごとに特...
-
vba 結合されたセルの列番号を...
-
エクセル 結合セル内に空白なら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelでSUBTOTAL関数を設定した...
-
エクセル ボタンを押すとセルの...
-
EXCELで、結合されたセルに連続...
-
セルを結合した場合の関数(COU...
-
エクセルで片方のセルに入力し...
-
VBAで結合したセルがクリアでき...
-
Excel 離れたセルへの連続デー...
-
セルの値を取得してSQL文に組み...
-
エクセルで作業した日の日付を残す
-
VBAで困っています。
-
エクセル 結合セル内に空白なら...
-
Excelでnullになるような式のセ...
-
エクセルでたくさんのセルを小...
-
Excelの表に自動でナンバリング...
-
Excelのカウントアップボタンに...
-
Excel セルを結合したものを抽...
-
EXCEL セル結合したセルを参照...
-
エクセルでセルをクリックして“...
-
「数式は隣接したセルを使用し...
-
【EXCEL】条件に合致するセルの...
おすすめ情報