『LEFT関数で抜き出した時間を昇順で並べ替えたい』(おもち大好き) シフト表を作成しております。 専用アプリでシフトを管理しているのですが、 そのアプリで出力したシフト表は大変見づらく、 不評なのでExcelを使用し、改善されたものを スタッフへ提供する予定です。 その為にアプリで表示される人名、出勤時間、退勤時間を Excelへコピーし、そこから作成します。 コピーすると、 A列に人名、B列に9:00〜17:00という形で勤務時間が現れるので IF関数、ISERROR関数、LEFT関数、RIGHT関数、FIND関数をネストし C列に勤務開始時間として9:00、D列に勤務終了時間として17:00と抽出しました。 そのようにして表示したC.D列をC列優先昇順で並べ替えを行ったところ びくとも動きません。何度行っても結果変わらず。 作成したC.D列を値のみコピーした場合は並べ替えが出来るので "関数により抽出した時間"という値は並べ替えできないということなのでしょうか? また、並べ替えする方法があるのでしたら是非ご教授下さい。 何卒宜しくお願いします。 Excel Ver.2003 OS Windows XP ---- 先ずは、その数式をご提示いただかないと、何とも言えません。 極端な話、=Row() と云う数式をA1セルからA3セルまで入れたとします。 こうなりますけど、それを降順で並べ替えたとしても表面上何も変わりません。   ↓      何故なら、並べた結果がまた1,2,3と云う値になるからです。 行 _A_ 1 1 2 2 3 3 (半平太) 2013/11/04(月) 14:39 ---- 数式のセル参照を シート名+セル参照にする ?????   (GobGob) 2013/11/04(月) 14:50 ---- 例。(Sheet1) A B C D 1 01〜10 01 10 2 02〜15 02 15 3 01〜05 01 05 4 02〜09 02 09 C1 =LEFT(A1,2) D1 =RIGHT(A1,2) 下へコピー。 この状態でC:D列昇順並び替え ⇒ 変化なし。 C1 =LEFT(Sheet1!A1,2) D1 =RIGHT(Sheet1!A1,2) 下へコピー。 こうすると A B C D 1 01〜10 01 05 2 02〜15 01 10 3 01〜05 02 09 4 02〜09 02 15 こうなるよ。 (A列はそのまんま)   (GobGob) 2013/11/04(月) 15:00 ---- 「9:00〜17:00」 こんな感じなら 抽出後シリアル値に変換したほうがいいね。 例 =LEFT(Sheet1!B1,FIND("〜",Sheet1!B1)-1)*1 ^^^^   (GobGob) 2013/11/04(月) 16:28 ---- GodGod氏の式通りに入力したら解決できました。 私の拙い文章から完璧な式を組み立てていただいてありがとうございました。 また、半平太氏の云う通り式を提示せず質問をしてしまいすみませんでした。 今更ですが私が組み立てた式は =IF(ISERROR(LEFT(B8,FIND("〜",B8)-1)*1),"",LEFT(B8,FIND("〜",B8)-1)*1) です。 本当にありがとうございました。 (おもちだいすき) 2013/11/05(火) 20:42