アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelの並び替えで、日付、時間、項目Bの順で並び替え
項目Aに特定の文字が入っていた場合は、優先的に一番最後にまわしたいのですが
どのように並び替え条件を指定すればいいのでしょうか?
※一番最後にまわすときも、日付、時間の順にしたいです。

■並び替えルール
日付、時間は昇順
項目Aは、海の人は最後に回す
項目Bは電話、メールの順(ユーザー設定済)

日付時間項目A項目B
1/110:00山電話
1/19:00山メール
1/112:00海電話
1/111:00海電話
1/18:00山メール

↓一発で下の順に並び替えたいのです。

日付時間項目A項目B
1/110:00山電話
1/18:00山メール
1/19:00山メール
1/111:00海電話
1/112:00海電話

A 回答 (5件)

日付は最優先でその後は山、海の順、電話、メールの順のようですね。

それぞれの項目に重みを付けて数値に置き換えます。それをもとに並び替えをすればよいでしょう。
例えば1行目は項目名としてE1セルには並び替えとでも文字を入力し、E2セルには次の式を入力し、下方にオートフィルドラッグします。

=IF(A2="","",A2+IF(C2="山",0.1,0.2)+IF(D2="電話",0.01,0.02)+B2*0.001)

E列の表示形式は標準にします。

次にA1セルからE列の最後の行までを範囲として選択したのちに、「並べ替えとフィルタ」から「ユーザー設定の並べ替え」を選択し、表示の画面で最優先されるキーに「並べ替え」とし「昇順」にしてOKすればよいでしょう。
    • good
    • 1

このようなケースでは複数回の並べ替え操作を行います。



まず項目Aに特定の文字が入っていた場合は、優先的に一番最後にまわしたい並べ替え操作を先に実行し、その後、日付、時間、項目Bの順で並び替えます。

最初の項目Aに特定の文字(海)が入っていた場合にデータの最後に並べ替える操作は、以下のようにするのが簡単です。

項目Aで並べ替え操作を行うと、並べ替える特定の値(海)のセルの行がまとまって表示されます。
このデータ範囲だけを選択し、選択範囲の周囲にカーソルをおいてShiftキーを押しながら一番下の行にドラッグします。
    • good
    • 0

例示の日付・時間がどこで切れているかが良く分かりませんが、すべて1/1として見ました。



わたしならば作業列を設けます。

1)E2セルに =IF(C2="海",1,0)

2)F2セルに =IF(D2="メール",1,0)

3)G2セルに =E2*10+F2

4)E2:G2範囲を選択し、データの一番下まで引っ張る

5)A1からデータ最終部分までを選択し、Alt + D 、S (並び替え画面へ)

6)最優先されるキー 列G 昇順、 2番目に優先のキー 列A 昇順、 3番目に優先のキー 列B 昇順 、データ範囲の先頭行 タイトル行

7)OK


ご意向にそぐってますか。
    • good
    • 0

今のままの値では並べ替えが困難ということなら、並べやすくなる項目群を別列に作ることです。



1つの案として、
例えば、
「もともとの値」から
「日付&時間」、「山か海」、「電話かメール」の3つ群を作る

「日付&時間」はそのままでも順にできるのでそのまま使う、
ただし、YYYY/MM/DD-hh:mm:ssといった固定長に変更させる。
「1/19:」は「1/1 9:」「1/19」の違いをつける必要がある。

「山か海」で順番を変えたいので
「山」は「0山」、「海」は「1海」とグループ分けしておけば自然と「山」が前になる。
順番がわかるようマーキングできれば良い。「0山」「1海」は「0」「1」でも。

「電話かメール」も同じく
「電話」は「0電話」、「メール」は「1メール」とグループ分けしておけば自然と「電話」が前になる。

1/110:00山電話 → 1/110:00山電話 01/01-10:00 0山 0電話
1/19:00山メール → 1/19:00山メール 01/01-09:00 0山 1メール
1/112:00海電話 → 1/112:00海電話 01/01-12:00 1海 0電話
1/111:00海電話 → 1/111:00海電話 01/01-11:00 1海 0電話
1/18:00山メール → 1/18:00山メール 01/01-08:00 0山 1メール
少なくともこうすれば並べることができるようになりませんか?。

実際のデータから特定の文字があるかどうかはinstr関数で可能です。
1件目で言えば、
instr(1,"A1"、"山")の結果は「9」・・・・9文字目にある
instr(1,"A1"、"海")の結果は「0」・・・・ない

ほかにもVBA使ったりいろいろ手段はありそうです。
    • good
    • 0

日時、海山、電話メールでセルは分かれていますか?


分かれていれば、「データ」-「並び替え」(昇順又は降順で並び替えのボタンではない)で
1 海山
2 電話メール
3 日時
を指定すればいいだけだと思いますが。

分かれていない場合は、分ける方法をまず検討すべきかと・・・
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています