以下のように、メールなどで送られてきた文章(B2:D16)から特定の値を表形式で抽出(F3:G7)する方法について紹介していきます。

簡易的な文章から表形式で抽出
元々の文章が以下の内容の場合、抽出対象(商品名:数量)以外にも不要な文章が含まれています。(赤文字)
| 〇〇様 お世話になっております。 今月の弊社商品在庫状況を以下の通りご報告いたします。 サウンドビー:5 タイムウォッチ:8 タブレットプロ:15 ビートスタジオ:6 ペンマスター:18 ご確認のほど、よろしくお願いいたします。 何かご不明点や追加のご要望がございましたら、お気軽にお知らせください。 |
そのため、まずは抽出対象の文章のみをシートに貼り付けて、そこから表形式になるように数式で抽出していきます。

文章を表形式で抽出する場合、抽出するルールを決める必要があります。
今回の場合は、以下のようなルールになります。
| ・「:」で列を区切る ・「(改行)」で行を区切る |
このルール通りに抽出するためには、TEXTSPLIT関数を活用します。
実際に活用した数式は、以下になります。
=TEXTSPLIT(B2,":",CHAR(10))
// B2:抽出元の文章が入力されたセル
// ":":列の区切り文字
// CHAR(10):行の区切り文字(改行はCHAR関数を用いて表現)
上記の数式を抽出先の表の先頭セル(E3)に入力することで、以下のように表形式で抽出することができます。

とはいえ、メールなどの文書から特定の文章を毎回抽出するのは面倒です。
そのため、文章を全て貼り付けるだけで、対象の値を表形式で抽出する方法についても紹介していきます。
本文全体から対象のみを表形式で抽出
本文全体が以下のようにパターン化している場合(赤文字)は、簡単な数式を加えるだけで、対象の範囲の抽出までを自動で行うことができます。
| 〇〇様 お世話になっております。 今月の弊社商品在庫状況を以下の通りご報告いたします。 サウンドビー:5 タイムウォッチ:8 タブレットプロ:15 ビートスタジオ:6 ペンマスター:18 ご確認のほど、よろしくお願いいたします。 何かご不明点や追加のご要望がございましたら、お気軽にお知らせください。 |
まずは、この本文のままシートに貼り付けて、先ほどの数式で抽出してみます。
=TEXTSPLIT(B2,":",CHAR(10))

そうすると、以下の赤枠の箇所が不要になります。

抽出された表の上から5行、下から3行が不要になるので、この不要な行を数式で除外します。
表から不要な行を除外する場合、DROP関数を活用すると良いです。
実際に活用した数式は、以下になります。
=DROP(DROP(TEXTSPLIT(B2,":",CHAR(10)),5),-3)
// DROP(…,-3):「…」の末尾から3行を除外
// DROP(…,5):「…」の先頭から5行を除外
上記の数式を抽出先の表の先頭セル(E3)に入力することで、以下のように不要な行を除外した表形式で抽出することができます。



























































































