• ベストアンサー

エクセルのソート(並び替え)における不可解な現象

エクセルで例えば下記のような列があるとします。 守口 守口 森脇 守口 山本 これを昇順で並び替えると 守口 守口 守口 森脇 山本 になるハズですが、 守口 守口 森脇 山本 守口 となります。 しかし試しにこの状態で「上の守口と下の守口が同じなら0、 違うなら1を返す」ようif関数を組むと、0が返されます。 つまり二つの守口は同一と認識されているのだと思います。 そしてもう一つ、試しに上の守口を下の守口に貼り付けてから 並び替えると、 守口 守口 守口 森脇 山本 となりますので、やはり上の守口と下の守口の性質がどこか 違っているのかと思うのですが…一体何が違うのでしょうか? なお、ここでは守口という単語を例にご説明していますが、 他の単語でも同様の現象が起こることがあります。

  • 20411
  • お礼率52% (55/104)

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

セルに設定されている「ふりがな」で並べ替えを行なっているのでは? メニューの[書式]-[ふりがな]の、[編集]や[表示/非表示]で確認してみてください。 並べ替えの詳細な条件設定で、ふりがなを使わない並べ替えを行う事も可能だったハズ。

20411
質問者

お礼

詳細なご回答ありがとうございます。

その他の回答 (4)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.5

=PHONETIC(A1) でふりがなを取得できます。 この関数の結果が元の文字列(漢字)で表示された場合は 振り仮名情報がありません。 編集して振り仮名情報を与えてやるか、セルにふりがな を入力してVBAで一括で振り仮名情報を与えるなどします。

20411
質問者

お礼

詳細なご回答ありがとうございます。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

同じ名前でも、手作業で入力した場合と他のアプリケーションなどから コピーしてきた場合とでは振り仮名情報が違う可能性があります。 オプションで 「ふりがなを使わない」にチェックしたら 同じ名前はかたまってソートされます。 でも、 「守口」は「しゅこう」とみなされて全然思いもしない順で ソートされる可能性があります。 書式→ふりがな→編集 でふりがな情報を編集できます。

回答No.3

  並び替えは「読み」でされます 書式でふりがなを表示させたら並びのおかしい「守口」の振り仮名が他と違ってるのが判ると思います。  

20411
質問者

お礼

ご回答ありがとうございます。 ※ご回答頂いておきながら申し訳ありませんが、 ポイントは別の方に付与します。本当に申し訳ありません。。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

書式>ふりがな でふりがなを表示してみても同じでしょうか?

20411
質問者

お礼

ご回答ありがとうございます。 ※ご回答頂いておきながら申し訳ありませんが、 ポイントは別の方に付与します。本当に申し訳ありません。。

関連するQ&A

  • 並び替え機能を使わずに関数で並び替える

         A列 B列 C列  1行目 甲  9  商品G 2行目 乙  4  商品F 上の表をB列の昇順で並びかえ、下のように再配置するにはどのような関数を書けば良いでしょうか。並び替え機能を使わず、関数で上の表の下に下の表を配置します。      A列 B列 C列  1行目 4  乙  商品F 2行目 9  甲  商品G

  • エクセルのデータの並び替え

    エクセルバージョン2002です。 並び替えの昇順降順で、並び替えの基準列から対象範囲迄選択して並び替えを実行しても並び替えが実行されません。 M列のM2より下に数式を組んで他の列より抜き出したデータとなります。 データと数式は、以下の通りです。 並び替えで、昇順降順出来る様に出来たらと思います。 ご教授お願い致します。 宜しくお願い致します。 変化量(M列) -0.0 0.02 -0.2 0.01 -0.1 -0.1 0.00 -0.2 -0.0 0.16 -0.0 0.02 0 0 -0.0 0.00 0.00 =IF(ISNUMBER(VALUE(MID(F1,1,4))),MID(F1,1,4),IF(ISNUMBER(VALUE(MID(F1,1,1))),MID(F1,1,1),"")) F列のデータ 変化量及び変化率 -- (--%) 0 0.02 (3.77%) -- (--%) 0.00 (0.00%) 0.16 (7.77%) 0.00 (0.00%) -0.02 (-22.22%) -- (--%) 0 -0.01 (-4.55%) -0.15 (-14.85%) 0 0.01 (10.00%) -- (--%) -- (--%) -0.12 (-16.00%) -0.05 (-14.29%) -0.23 (-16.67%) -0.01 (-11.11%) 0.02 (3.23%) 0.00 (0.00%) -0.24 (-6.72%)

  • エクセルでこんなことが!セルには何が入っている?

    エクセル2000で式を作ったところ、どうしてもわからない現象が起きて困っています。 L列に他のシートから列をコポーしました。 M列に、=IF(L1>0,TRUE,FALSE) を下までドラック N列に、=IF(L1="",TRUE,FALSE) を下までドラック すると、 MもNも「TRUE」なのです! L列に入っているのは「""」で、かつ0より大きいということになります。いったい何が入っているのでしょうか? ためしに、L列のセルを選択してデリートすると、そこだけはMは「FALSE」になります。 こんなことってあるんでしょうか?

  • エクセル2003 並び替えとマクロ

    OSはウィンドウズXPです。質門は、 1.シートを保護するとマクロが動かないこと 2.マクロの実行前にブックを新しく保存したいことです。 ワークシートは  B---略-----L---------N -------O   1 所在   コード  所有者  備考   2 東京    1    甲 3 埼玉    2    乙    ***   マクロはボタンで作動するようにして以下のようになってます。 Private Sub 所有者ソート_Click() タイトル = "選択" メッセージ = "所有者で並べ替えます" スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal yesno = MsgBox(メッセージ, スタイル, タイトル) If yesno = vbYes Then 上 = 5 左 = 2 右 = 25 '右端 25=X列 下 = Range(Cells(上, 左), Cells(上, 左)).End(xlDown).Row Range(Cells(上, 左), Cells(下, 右)).Select Selection.Sort _ Key1:=Range("N1") _ , Order1:=xlAscending _ , Header:=xlGuess _ , MatchCase:=False _ , Orientation:=xlTopToBottom _ , SortMethod:=xlPinYin End If End Sub B列からX列までデータがあり、VLOOKUP関数でリストから参照させたりしてます。この関数の入ったセルは変更したくないのでロックしてます。保護したまま並び替えできるとベストですが、できますか? さらに並び替えのミスで(たとえば選択範囲がN列までになってしまい備考欄が誰のかわからなくなった等)もとに戻したいとき、マクロだと"元に戻す"がきかないので、作業前の状態を保存しておきたいです。 ちなみにエクセルは初心者、マクロは初心者以下です。 素直にマクロを使わずにやったほうがよいですか?

  • データの並び替え

    Excel2000を使っています。 まず見てください!   A  B C  D E 1  あ   あ い う 2  い   え お か 3  う   き く け 4  え   こ 5  お 6  か 7  き 8  く 9  け 10 こ 上に書いたように、A列のように並んでるものを C,D,E列のように並び替えたいのですが、 =INDIRECT("A"&ROUNDUP(ROW(1:1)/1,0))で いろいろ数字を入れ替えてやってみたのですが、うまくいきません。 数が多いので、ずらっとコピーしたいのです。上記の関数も教わったもので、それぞれの単語の意味を理解してないので応用も利きません。 どなたか知恵をお貸しください。 ついでに、高度な関数の覚え方も教えていただけたらありがたいです。 VLOOKUPやHLOOKUPなど一つ一つは使えても、組み合わせるとまったくわからなくなってしまいます。 どうかよろしくお願いします。

  • エクセル2003の、関数を教えてください。

    エクセルの関数で、三つの条件を満たし、なおかつその中の1つは除く数式を探しています。 たとえば、A列  B列  C列      担当 売上月 区分      山本 1月   市      田中 2月   町      鈴木 済    国 としますと、担当が山本で、区分が市 となっている 済を除いた数 がいくつなのか? を数えたい場合、どんな関数を使えばいいのでしょうか? ここで教えていただいた方に、下記の方法を教えていただきやってみたのですがうまくいきません・・・何かがいけないのでしょう・・・ 1.D列に[判定]などの項目で、以下の数式を記述。  =IF(A2="山本",IF(B2<>"済",IF(C2="市","対象",""),""),"")   ※2行目(D2)への記述例です。 2.1の数式をD2から下方向へコピー。   ※データ終了行まで 3.(例えば)E列の1行目などに、以下の数式を記述。  =COUNTIF(D2:D100,"対象")   ※データが100行存在する場合の記述例です。 これで、3.の  =COUNTIF(D2:D100,"対象")  を貼り付けましたが 0 と出てしまいます

  • Excelでの累計

    C列に、=SUM($B$1:B1) の式です。(下へ続く) 上記の式で、A列は上から下へ日付が続きます。 毎日の累計を出すのですが、入力する数字が無い時は、その日は、 c列に累計を表示したくない場合は、どのようなIF関数になるのでしょうか? また、一年分、日付のみ最初に作成すると、一年先まで、入力終了時点での累計が表示されてしまいます。 このような場合、例えば、数日後まで、入力を終えて、その数日後は、c列は、表示しないIF関数はあるのでしょうか? ご存知の方、よろしくお願いします。

  • エクセルと日付の関数と並び替え

    エクセル初心者です。 日付の勉強をしているのですが 今、下の画像のようなデータを作成しました。 一番左の列が、別のデータベースから転記した日付を シリアル値に変換したものです。 それを真ん中の列にコピーして、日付に変換しました。 そのデータの中から、YEAR関数とMONTH関数を使って 年と月のみの日付にしたものが、3列目です。 ここで、疑問なのですが、3列目を昇順に並び替えたときに きちんと昇順に並び替えができませんでした。 9月、10月、11月ときれいに順番に並べるには何か 複雑なセル設定が必要なのでしょうか。 教えてください。

  • Excel : 関数での分岐

    こんにちは。よろしくお願いします。 エクセルで英単語帳を作ったのですが、復習すべき日にちを決めるとき、D列に今日の日付、E列に1~7の整数、F列に関数を入れるとして、 1→1日後にやる 2→3日後にやる 3→5日後にやる 4→7日後にやる 5→13日後にやる 6→30日後にやる 7→60日後にやる というような設定を、IF関数を使って =IF(E2=1,D2+1,IF(E2=2,D2+3,IF(E2=3,D2+5,IF(E2=4,D2+7,IF(E2=5,D2+13,IF(E2=6,D2+30,IF(E2=7,D2+60,"入力し直し"))))))) のようなことやっているのですが、こういう関数の使い方は、壊れやすい(暴走しやすい)のではないかと不安です。(今のところ普通に動いてはいます。) このままデータが増えればこわれる可能性はあるのでしょうか。 また、関数を使ったもっと賢い方法があるのでしょうか。 マクロのことは分からないのでそれを使わない方法で、 関数だけを使ったより良い方法があれば教えてください。 分かりにくい文章ですいません。 よろしくお願いします。

  • エクセルの数式についてお尋ねします。

    数千個の単語帳を逐次ソート、整理しています。 =IF(($A9=$A10)*AND($B9=$B10),"★","○ ") A列に英単語とB列にそれに対応する日本語を入力しました(2行目以下)。 数千個の単語帳ですので、重複があります。それで、データ並び替えで整列させたあと、上下の同一セルをチェック、異なれば○、同一であれば★をC列に表示させました。 上は、セルC9の数式です。 今度は、C列を見ていくのですが、これが面倒ですので、セルC1に、その下のC列上の★マークの数を表示させたいのですが、可能でしょうか。 C列(2行目以下)には、上の数式が入っています。 よろしくお願いします。

専門家に質問してみよう