スプレッドシートで住所ソート スプレッドシートで住所をソートすると、枝番が2桁のとかが混じっていると、変な順番でソートされるケースがある 住所 備考 六本木1-4-36 六本木1-8-12 六本木2-34-30 六本木3-21-24 ここと 六本木3-4-31 ここが入れ替わって欲しい 六本木7-8-5 それを綺麗にソートする方法 以下の3つの関数を3つのセルに設定する =VALUE(REGEXEXTRACT(A1,"[0-9]+")) =VALUE(REGEXEXTRACT(A1,"-([0-9]+)-")) =VALUE(REGEXEXTRACT(A1,"-([0-9]+)$")) これを設定することで、枝番順に住所を分割する事が出来る。 REGEXEXTRACT関数を採用しているので、正規表現使える人だったら、XXX丁目みたいなパターンにも対応できるはず。 漢数字も似たような手法で抜き出して、更に正規表現を使って変換すればいい。 ポイントとなるのは、VALUE関数を使っていること。 これにより抽出した文字列を数値化して綺麗にソート出来るようにしている。 VALUE関数を使っていないと非常に頭の悪いソートになる。 最終的にソートするとこうなる 住所 B列 C列 D列 六本木1-4-36 1 4 36 六本木1-8-12 1 8 12 六本木2-34-30 2 34 30 六本木3-4-31 3 4 31 六本木3-21-24 3 21 24 六本木7-8-5 7 8 5 もし、住所ソートで悩んだ時は参考にして欲しい。 エクセルではREGEXEXTRACT関数が無いので、この方法は採用できないので、あしからず。 (データだけスプレッドシートにコピペして、ソートし直してからコピペするのが一番速い)