« Googleスプレッドシート上で文字列を翻訳する関数 | トップページ | 2019年の初ウグイス »

セル内改行ごとに文章を分ける。

この記事は自分用の覚え書きです。

■macOS Mojave
バージョン 10.14.3
■ Office365 Business サブスクリプション
Excel for Mac バージョン 16.22(190211)

M.K さん。

職場に Mac が入ってきましたね。慣れていないので、使っているとなんか変な気分です。
いろいろ話を聞いていると、どうも今後は Mac になっていくような……。

うちの社内でバリバリとエクセルを使うというのなら、Windows版エクセルのほうがよいと思うのですが。

社内のPCがどうなるかなんて僕らにはどうにもならない話です。不平不満は飲み込んで、粛々と従うしかないですね。

とはいえ、愚痴を言いたくなるもので——Mac版エクセルは、致命的ではないですがどこか雑な感じがします。
なにより、Windows版には実装されている「データの取得」がありません。

これには驚きました。
Excel for Mac のユーザーはずっとこの環境を強いられていたんですね。今もまだ……。

米マイクロソフトのサイトにある "excel.uservoice" の "Add PowerPivot to Mac excel" というカテゴリーには、「早く実装してください!」といった声がたくさん寄せられています。
「データの取得」が実装されるのはいつになるやら——です。

そういえば、Office365サブスクリプションですよ。お金を定期的に取っておいて今まで放置——実装されるのはいつになるかわからない——なんていうのは……マイクロソフトもなかなか太いことをするなあと思います。

大人の事情がいろいろあるんでしょうね。

とまあ、セル内改行をしている文章を、それぞれ別のセルに分ける件です。
1つの段落内に「。」が複数箇所あるので、「。」を区切り文字付きの「。/」といった感じに置換するやり方では、改行ごとに分けることはできません。

Hukusuumaru_wo_kugirimojituki_ni_ku

■考え方
Windows版でもそうですが、セル内改行は改行コードを伴っています。目には見えませんが。
だとしたら、改行コードそのものを区切り文字に置き換えてやれば、エクセルの「区切り位置」の機能を使って、セル内改行ごとに分けることができます。

■手順
ここでは、CHAR 関数と SUBSTITUE 関数を使っています。

Cellnai_kaigyouwo_tikan

1. CHAR 関数で改行コードを生成
=CHAR(10) の数式で改行コードを生成できます。
Windows版エクセルと同じです。

Excel for Mac では「CHAR(13) が改行コードになる」との記述がネットでは見当たりますが、私の手元では CHAR(10) で改行コードを生成できています。

Excel for Mac のバージョンによって違うのかもしません。そのあたりは私にはわかりません。

2. SUBSTITUE 関数でそれを区切り文字(上図では半角の / )に置換
何をしているかがより理解しやすいように、作業列で CHAR 関数と SUBSTITUE 関数を分けました。(セル B2 と C2 )

セル A2 のなかにある改行コードが、セル C2 では / になっています。

区切り文字として使える字数は1文字。
仮に、SUBSTITUE 関数で改行コードを // に置き換えても、「区切り位置」の機能では使えない。

3. SUBSTITUE 関数が返してきた結果( C2 )をコピーして、任意のセルに「値貼り付け」。
C2 のままでは「区切り位置」の機能は使えないので、隣のセル( D2 )に値貼り付けしています。

4. セル D2 を選択しておいて、「データ」タブの「区切り位置」をクリック

5. 「区切り記号付き」にチェックを入れて「次へ」

01kugiriiti

6. 「その他:」をチェックして隣の欄に区切りとして使う文字を入力し、「次へ」
区切り文字は全角と半角を区別する。
SUBSTITUE 関数で改行コードを半角の / に置換しているので、ここでは 半角の / を入力している。

02kugiriiti

7. 今回扱っているのは単なる文字列なので、列のデータ形式は「標準」のままでよい。
「表示先」で任意のセル参照を入力。(図では E2 )

03kugiriiti

8. 「完了」をクリックするとセル D2 の文字列が別々のセルに分かれる。

|

« Googleスプレッドシート上で文字列を翻訳する関数 | トップページ | 2019年の初ウグイス »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: セル内改行ごとに文章を分ける。:

« Googleスプレッドシート上で文字列を翻訳する関数 | トップページ | 2019年の初ウグイス »