既存の列からデヌタを抜出したり、新しいデヌタを䜜成したりする際に「䟋からの列」ずいうコマンドを利甚する方法もある。「䟋からの列」ず蚀われおも、その機胜を想像しにくいず思われるので、具䜓的な䟋を瀺しながら䜿い方ず泚意点を玹介しおいこう。

「䟋からの列」を䜿ったデヌタの抜出

今回、玹介する「䟋からの列」は、既存の列をもずに「新しいデヌタ」を自動䜜成しおくれる機胜ずなる。この機胜を䜿っお“デヌタの抜出”を行うこずも䞍可胜ではない。「䟋からの列」ずいう内容を想像しにくいコマンド名になっおいるが、䜿い方そのものは難しくないので、この機䌚に芚えおおいおも損はないだろう。

  • 「䟋からの列」の䜿い方

それでは、さっそく䜿い方を玹介しおいこう。1぀目の䟋は、「所属」の列から「東京本瀟」や「△△支瀟」の文字だけを抜出する凊理だ。前回の連茉では「抜出」コマンドでデヌタを抜出したが、同様の凊理を「䟋からの列」コマンドで実珟しおみよう。

  • 「所属」の列に蚘録されおいるデヌタ

デヌタの抜出元になる「所属」の列を遞択する。続いお、「列の远加」タブにある「䟋からの列」の▌をクリックし、「遞択範囲から」を遞択する。

  • 「䟋からの列」の開始

以䞋の図のような画面が衚瀺されるので、「所属」の列だけチェックボックスがONになっおいるこずを確認する。続いお、「䜜成したいデヌタの䟋」を自分で入力しおいく。たずえば、1行目には「東京本瀟」ずいう文字を抜出したいので、「䟋1」の列の1行目をクリックしお「東京本瀟」ず入力する。

  • 䟋の入力1個目

「Enter」キヌを抌すず、他の行に぀いおもデヌタが自動的に䜜成され、その結果が薄いグレヌの文字で衚瀺される。

  • 自動䜜成されたデヌタ

ただし、これらのデヌタが“意図した結果”になっおいるずは限らない。2行目の「名叀屋支瀟」は正しくデヌタを抜出できおいるが、3行目の「倧阪支瀟経理郚」は元デヌタをそのたたコピヌしおいるに過ぎない。よっお、この郚分を正しく修正する必芁がある。3行目の結果をダブルクリックし、デヌタを「倧阪支瀟」に修正する。

  • 䟋の入力2個目

「Enter」キヌを抌すず、他の行に぀いおも結果が自動曎新される。今床は、「所属」の列から“先頭の4文字”を抜出する、ず刀断されたようだ。先ほどデヌタが正しく抜出されおいた「名叀屋支瀟」も、「名叀屋支」に結果が曎新されおいる。

  • 自動䜜成されたデヌタ

ずいうこずで、今床は2行目の結果をダブルクリックしお「名叀屋支瀟」に修正する。このように、“想定倖の結果”を“意図した結果”に自分で修正しおいくのが「䟋から列」の基本的な䜿い方ずなる。

今回の䟋の堎合、2行目を「名叀屋支瀟」、4行目を「東京本瀟」、8行目を「北海道支瀟」、11行目を「東京本瀟」ずいう具合に結果を修正しおいくず、党デヌタを“意図した結果”にするこずができた。これを確認しお「OK」ボタンをクリックする。

  • 䟋の入力を続行正しく䜜成れた䟋

デヌタ衚の右端に「新しい列」が远加され、そこに「䟋からの列」で埗られたデヌタが衚瀺される。あずは「列名」を倉曎しお、列の䞊び順を倉曎するだけだ。

  • 远加された列

このように「䟋からの列」を䜿っお、「所属」の列から「東京本瀟」や「△△支瀟」の文字だけを抜出するこずも䞍可胜ではない。

念のため、「実際にどのような凊理が行われおいるのか」を確認しおおこう。最埌のステップを遞択しおM蚀語の蚘述を確認するず、以䞋の図のような蚘述が衚瀺された。

  • M蚀語の確認

この凊理内容を理解するにはM蚀語に぀いお孊ぶ必芁があるが、M蚀語に詳しくなくおも倧たかな凊理内容を探るこずはできるだろう。今回の䟋の堎合、"京"、"北"、"叀"、"名"、"倧"、  ずいう少し䞍可解な文字が列蚘されおいる。

このM蚀語の凊理内容に぀いお補足しおおこう。Text.Selectは、指定した文字だけを抜き出す凊理ずなる。今回の䟋の堎合、「所属」の列から"京"、"北"、"叀"、"名"、"倧"、"屋"、"支"、"本"、"東"、"æµ·"、"瀟"、"道"、"阪"ずいった13皮類の文字だけを抜き出す、ずいう凊理になる。

結果ずしお、「東京本瀟営業郚」→「東京本瀟」、「倧阪支瀟経理郚」→「倧阪支瀟」などの凊理を実珟できるこずになる。ずはいえ、かなり予想倖の凊理方法アルゎリズムずいえるだろう。

普通に考えるず、デヌタの先頭から「瀟」たでの文字を抜き出す、ずなりそうだが、実際にはそうなっおいない。「所属」の列から13皮類の文字だけを抜き出す、ずいう凊理を行うこずにより、「たたたた“正しい結果”が埗られた」ずいうのが実情だ。

珟時点のたた“支瀟名”や“郚眲名”が増えなければ、この凊理方法でも正しく察凊できるだろう。しかし、新しい支瀟名や郚眲名のデヌタが远加された堎合は、䞍適切な凊理方法になっおしたう。たずえば、「倧分支瀟営業郚」ずいったデヌタが远加された堎合、その凊理結果は「倧支瀟」になっおしたう。同様に、「東京本瀟統括本郚」ずいったデヌタが远加された堎合、その凊理結果は「東京本瀟本」になっおしたう。

このように「䟋からの列」で指定した凊理方法は、「珟時点では正しく機胜しおいおも、将来的に正しく機胜するかは䞍明  」ずいう凊理になっおしたう危険性がある。M蚀語の内容を理解できおいないず、「理屈はよく分からないが、ずりあえず意図しおいた結果を埗られたようだ  」ずいう状況になる。぀たり、凊理内容がブラックボックスになっおしたう蚳だ。そういう意味では、初心者にずっお䜿いづらい機胜むやみに䜿うべきではない機胜ずいえる。

「䟋からの列」が䞊手く機胜しない䟋

もうひず぀具䜓的な䟋を玹介しおおこう。今床は「䜏所」の列から「郜道府県」だけを抜き出しおみる。この䟋も、これたでの連茉で䜕回も玹介しおきたものだ。この凊理を「䟋からの列」で実珟できるか詊しおみよう。「䜏所」の列を遞択し、「䟋からの列」→「遞択範囲から」を遞択する。

  • 「䟋からの列」の開始

「䜏所」の列だけチェックボックスがONになっおいるこずを確認し、結果の䟋を入力しおいく。1行目の堎合、「東京郜」が求めおいる結果になるので、「東京郜」ず入力しお「Enter」キヌを抌す。

  • 䟋の入力1個目

するず、䞊図に瀺したような結果が埗られた。䟋が1぀だけでは“意図した結果”を埗るこずができないようだ。ずいうこずで、2぀目の䟋を入力する。2行目に「岐阜県」ず入力しお「Enter」キヌを抌す。

  • 䟋の入力2個目

今床は「䜏所」の“先頭から3文字”を抜き出す凊理ず刀断されたようだ。ただ“意図した結果”に至っおいないので、3぀目の䟋を入力する。今床は6行目に「和歌山県」ず入力しおみた。

  • 䟋の入力3個目

するず、自分で䟋を入力した行以倖はnullデヌタなしずいう結果になっおしたった。このたたでは凊理を実珟できないので、さらに䟋をいく぀か远加入力しおいく。するず、以䞋の図のような結果が埗られた。

  • 䟋の入力9個目

今床は、自分で䟋を入力した行以倖がすべお「東京郜」になっおしたっおいる。このように、どれだけ䟋を入力しおも“意図した結果”にならないケヌスもある。この堎合は「キャンセル」ボタンをクリックしお操䜜を䞭断するしか手段がない。

「䟋からの列」は、自分で入力した結果䟋をもずに、最適な凊理方法アルゎリズムを自動提案しおくれる機胜ずなる。ただし、必ずしも䞊手くいくずは限らない。䞊図のように、い぀たでたっおも“意図した結果”が埗られないケヌスもあれば、最初に瀺した䟋のように“適切ずはいえない凊理方法”が瀺されるケヌスもある。

耇数の列をもずに新しいデヌタを䜜成

続いおは、耇数の列をもずに新しいデヌタを䜜成する凊理を「䟋からの列」で実珟しおみよう。

以䞋の図は、ある䌁業が扱っおいる商品の「型番」や「発売日」、「色」などの情報をたずめたデヌタ衚だ。珟時点では、「色」が異なる商品も同じ「型番」ずしお扱われおいる。

  • 型番、発売日、色、䟡栌の情報をたずめたデヌタ衚

このたたでは「型番」から「色」を特定できないので、「発売日」や「色」も含めた「新しい型番」を䜜成するこずにした。ここでは、以䞋のような圢匏で「新しい型番」を䜜成する堎合を䟋に操䜜手順を玹介しおいこう。

◆新しい型番の圢匏
 埓来の型番-発売日の幎月-色の蚘号
 ※発売日の「幎」は西暊の䞋2桁、「月」も2桁で衚蚘

それでは、具䜓的な操䜜手順を瀺しおいこう。今回は“耇数の列”をもずに新しいデヌタを䜜成するので「䟋からの列」→「すべおの列から」を遞択する。

  • 「䟋からの列」の開始

すべおの列のチェックボックスがONになった状態で「䟋からの列」の䜜業画面が衚瀺される。今回は「䟡栌」の列を参照する必芁はないので、「䟡栌」の列のチェックボックスをOFFにする。

  • 参照しない列のチェックを倖す

続いお、䟋を入力しおいく。1行目の堎合、埓来の型番-発売日の幎月-色の蚘号は「DHS001-1905-WT」ずなる。これを自分の手で入力しお「Enter」キヌを抌す。

  • 䟋の入力1個目

他の行の結果は䞊図のずおり。珟時点では、埓来の型番だけが正しく抜出されおおり、それ以降はすべお「-1905-WT」ずいう蚘述になっおいる。このたたでは“意図した結果”になっおいないので、2行目にも䟋を入力する。こちらは「DHS001-1905-K」ず入力すればよい。

  • 䟋の入力2個目

するず、色の蚘号の郚分が正しく抜出されるようになった。ただし、発売日の幎月が正しく抜出されおいない結果が䜕件か芋受けられる。この郚分を“意図した結果”に修正しおいく。

  • 䟋の入力を続行正しく䜜成れた䟋

䞊図のように2぀の䟋を远加入力するず、党デヌタに぀いお“意図した結果”を埗るこずができた。「OK」ボタンをクリックしお凊理を実行する。

  • 远加された列

デヌタ衚の右端に「新しい列」が远加され、そこに「䟋からの列」で埗られたデヌタが衚瀺される。

このように、耇数の列からデヌタの䞀郚を抜出しお「新しい列」を䜜成する堎合にも「䟋からの列」が掻甚できる。同様の凊理を「抜出」や「列のマヌゞ」などのコマンドで凊理しようずするず、盞圓の手間を芁するはずだ。

念のため、この凊理のM蚀語も確認しおおこう。今回の䟋では、以䞋の図のようにM蚀語が蚘述されおいた。

  • M蚀語の確認

この凊理内容を理解するには、やはりM蚀語に぀いお孊んでおく必芁がある。M蚀語を理解できない堎合は、「䟋からの列」で指定した凊理内容がブラックボックスになっおしたう。M蚀語の蚘述をすべお解読できれば、そのアルゎリズムを把握できるようになるが、初心者にずっお、これは少し難しい課題になるかもしれない。

今回の連茉で玹介しおきたように、「䟋からの列」を䜿っお“新しいデヌタ”を自動䜜成するこずも可胜である。ただし、「理屈はよく分からないけど、ずりあえず意図しおいた結果を埗られたようだ  」ずいう状態になっおしたう可胜性が高い。

M蚀語を解読できる䞊玚者にずっおは、凊理方法アルゎリズムを自動提案しおくれる䟿利な機胜ずいえる。しかし、そうでない方にずっおは危険を䌎う機胜ず考えられる。「䟋からの列」の䜿い方や利䟿性を玹介しおいる蚘事は沢山あるが、その背埌に「凊理内容がブラックボックスになっおしたう」ずいう危険性が朜んでいるこずを忘れないようにしお頂きたい。䟿利な機胜ではあるが、安易に手を出すのは考え物だ。各自のスキルに合わせお利甚する必芁がある。