1.やりたいこと
①下表からJANのみ抜き出したい
②抜き出したJANを「JAN, JAN, JAN, …」とコンマ&半角スペース区切りで羅列したい
(実際に使った表はJANが50件ほど。今回はサンプルとして5件にした。)
2.やったこと
①余分な行を削除(手作業)
本当はこの作業も自動化したいのだけれど、今回は手作業でやりました。
VBAを使えばできるのかな??要勉強。
②関数を入力
◆使った関数◆(例:セルA2の場合)
`=MID(A2, FIND("45",A2),13)`
「セルA2中の文字列"45"を見つけて、そこから"45"を含む13文字を抽出するよ」
| 関数書式 | 意味 | 意味引用元 |
|---|---|---|
| MID(文字列, 開始位置, 文字数) | 文字列の任意の位置から指定した分の文字を取り出す | 『30時間で~』p196 |
| FIND(検索文字列, 対象, 開始位置) | 文字列を検索する(大文字と小文字を区別する) | Excel関数 |
| ※『30時間で~』=『30時間でマスターExcel2019』(実教出版株式会社) |
◆こちらの記事を参考にしました◆
③抜き出したJANをコンマ&半角スペース区切りで羅列する
◆使った関数◆
`=TEXTJOIN(", ",TRUE,F2:F6)`
「セル"F2:F6"の文字列の間に区切り記号と半角スペース", "を挿入しながらすべて連結するよ」
| 関数書式 | 意味 | 意味引用元 |
|---|---|---|
| TEXTJOIN(区切り記号, 空の文字列を無視, 文字列1, 文字列2, ..., 文字列252) | 区切り記号を挿入しながら複数の文字列を連結する | できるネット |
④関数の入ったセルをコピー&値貼付け
関数の入ったセル(上図のみどり色の点線枠)をコピー
↓
セルH2で右クリック
↓
値り貼付けのオプションで「値(V)」(上図の赤枠)をクリック
↓
値として貼付け完了!
これで目的のJAN一覧が取得できました。
3.できなかったこと
①「①余分な行を削除」の自動化。
今回は手作業で不要な行を選択→一括削除したけれど、もっと件数が増えた場合、手作業は厳しい。
「不要な行やセルを削除する」ための関数、あるいはVBAがあるのなら、使えるようになりたい。
VBAならばそのような機能がありそう。
追って調べる。
②桁数のみで抽出
今回は全て「45」から始まるJANだったので、「45から始まる13文字」と指定することで抽出できた。
今後、JANに限らず「〇桁の数字を抽出したい」という場面に遭遇する可能性あり。
「〇桁の数字」という条件で抽出することは可能なのだろうか?
VBA??