3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Excel関数】文字列の中からJAN(13桁の数字)だけを複数抽出したい&そのJANをコンマ区切りで並べたい(MID/FIND/TEXTJOIN)

Last updated at Posted at 2021-10-22

1.やりたいこと

①下表からJANのみ抜き出したい
②抜き出したJANを「JAN, JAN, JAN, …」とコンマ&半角スペース区切りで羅列したい

1.png (実際に使った表はJANが50件ほど。今回はサンプルとして5件にした。)

2.やったこと

①余分な行を削除(手作業)

3.png 本当はこの作業も自動化したいのだけれど、今回は手作業でやりました。 VBAを使えばできるのかな??要勉強。

②関数を入力

5.png ◆使った関数◆(例:セルA2の場合) `=MID(A2, FIND("45",A2),13)` 「セルA2中の文字列"45"を見つけて、そこから"45"を含む13文字を抽出するよ」
関数書式 意味 意味引用元
MID(文字列, 開始位置, 文字数) 文字列の任意の位置から指定した分の文字を取り出す 『30時間で~』p196
FIND(検索文字列, 対象, 開始位置) 文字列を検索する(大文字と小文字を区別する) Excel関数
※『30時間で~』=『30時間でマスターExcel2019』(実教出版株式会社)

◆こちらの記事を参考にしました◆

③抜き出したJANをコンマ&半角スペース区切りで羅列する

7.png ◆使った関数◆ `=TEXTJOIN(", ",TRUE,F2:F6)` 「セル"F2:F6"の文字列の間に区切り記号と半角スペース", "を挿入しながらすべて連結するよ」
関数書式 意味 意味引用元
TEXTJOIN(区切り記号, 空の文字列を無視, 文字列1, 文字列2, ..., 文字列252) 区切り記号を挿入しながら複数の文字列を連結する できるネット

④関数の入ったセルをコピー&値貼付け

8.png 関数の入ったセル(上図のみどり色の点線枠)をコピー  ↓ セルH2で右クリック ↓ 値り貼付けのオプションで「値(V)」(上図の赤枠)をクリック ↓ 値として貼付け完了!

これで目的のJAN一覧が取得できました。

3.できなかったこと

①「①余分な行を削除」の自動化。

今回は手作業で不要な行を選択→一括削除したけれど、もっと件数が増えた場合、手作業は厳しい。
「不要な行やセルを削除する」ための関数、あるいはVBAがあるのなら、使えるようになりたい。
VBAならばそのような機能がありそう。
追って調べる。

②桁数のみで抽出

今回は全て「45」から始まるJANだったので、「45から始まる13文字」と指定することで抽出できた。
今後、JANに限らず「〇桁の数字を抽出したい」という場面に遭遇する可能性あり。
「〇桁の数字」という条件で抽出することは可能なのだろうか?
VBA??

3
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?