コツやテクニックについてTIPS

【WRAYCAM】1つのセルに2つの計測結果が混在する場合のデータ取り出し方法【Excel】

現行WRAYCAMシリーズ用制御ソフトウェアMicroStudioには「垂直線」という機能があり、垂直の十字線(4点垂直線)やT字線(3点垂直線)を使用し、画像上での計測が行えます。

楕円形の標本の長径・短径を1セットで計測が出来る便利な機能なのですが、計測データをExcelにエクスポートした際、垂直線の1本目・2本目の値が1セル内にまとまってしまう仕様となっています。

用途によっては問題なくご利用いただけますが、多くの場合はそれぞれのデータが別セルになっていたほうが使いやすいと考えられます。しかしながら、ソフトウェアの仕様更新は多くの時間を要するため、今回はExcelシート上で「1セルに混在したデータを分ける方法」を解説していきます。

1. 垂直線での計測を行う

まず、垂直線での計測を行います。

(1)の垂直線をクリックし、「4点」を選択した後、画像上で計測を行います。計測データは自動的に(2)の計測シートに保存されていきます。

2. 計測シートを表示させ、Excelへエクスポートする

計測シートの左側にある「Excelにエクスポート」をクリックすると、計測シートのデータがExcelブックに作成されます。

Excelブック(ワークシート)が作成されました。
単純にデータを取得・エクスポートするだけであればこの操作までで完了です。

ただし、エクスポートしただけだと、上画像のようにB列のセルに1本目の線長・2本目の線長が混在した状態になっていて、長径だけ・短径だけといったデータの取り出しにはもう少し操作が必要です。

3. 関数を使ってデータを取り出す

残念ながらデータのエクスポート機能は1セル内に混在したものが作成される仕様となっており、それ以外には現状選択肢がありません。

そこで、Excelブックにエクスポート後、関数を用いて使いやすい形に修正していきます。
今回は3つの関数を使用して、データを分割していきます。

3-1. LEFT関数:セルの左端から指定した字数の文字列を取り出す

1つ目の関数は「LEFT関数」です。LEFT関数は「セル内の左端からn文字目までの文字列を取り出す」関数です。セル内に以下のとおり入力します。

=LEFT(対象文字列(対象セル),取り出したい文字数)

使用例を見てみましょう。

一覧の最初の値が入力されているB2セルの中から、1本目の線長

を取り出します。
対象セルの入力値に「B2」、取り出したい文字数は「45.48」の5文字なので「5」を入力します。

1本目の線長だけが取り出せました。

3-2. FIND関数:セル内の特定の文字列が何文字目にあるか探す

LEFT関数で指定する文字数が固定の場合は問題ありませんが、計測した線長の桁数が異なる場合(100.56と55.28など)、セルによって取り出す文字数が異なってきます。

取り出し文字数の増減がある場合の対応方法はいくつかありますが、今回のデータは1本目・2本目の線長の値の間が「,」で区切られているため、この「,」の位置を基準値として利用することにします。

こういった「セル内の特定の文字がn番目にある」という情報を抽出するのが「FIND関数」です。入力は次のようになります。

=FIND(検索する文字列,対象セル,[開始位置])

以下入力例です。

今回検索対象とする文字列は「,」ですので、検索する文字列には「,」を入力します。なお、関数式内で文字列を指定する場合、””(ダブルクォーテーション)で囲む必要があるため、入力は「“,”」となります。

対象セルはB2を指定します。

最後の項目[開始位置]は任意の入力項目のため、セルの左端からの文字数を調べる場合には入力不要です。セル内の中間地点からの文字数を調べたい場合、例えば5文字目から数えてn番目、というような情報が必要な場合には「5」を入力します。

「,」はセル内の6番目にある、という情報が得られました。1本目の線長の桁数が変わった場合には、この結果が変動します。

3-3. MID関数:セル内の指定した字数位置から指定した字数の文字列を取り出す

2本目の線長を取り出す方法です。

セル右端からの文字列を返す「RIGHT関数」でもいいですが、今回は中間地点からの文字列を取得する「MID関数」を使用します。入力は次のとおりです。

=MID(対象文字列(対象セル),取得開始位置,文字数)

使用例を見ていきます。

対象セルは「B2」、取得したいデータは「22.83」のため、開始位置は8文字目(,の後に半角スペースがあるため)の「8」、文字数は5文字ですが、桁数の変動を考え「10」を入力します。

文字数の過剰分は無視されるため、少し多めに指定しておくと桁数が変動した場合にも対応できます。

2本目の線長が取り出せました。

3-4. 関数を組み合わせてデータを取り出す

前述した3つの関数を組み合わせることで、「桁数が変動した場合にも1本目・2本目の線長をそれぞれ別のセルに取り出す」ということが可能です。実際に入力していきます。

関数はそれぞれ別のセルを使用しても構いませんが、今回は1セル内に複数の関数を入力する「ネスト関数」という方法で進めています。

3-4-1. 1本目の線長を取得する

まず1本目の線長データを取得します。

1本目の線長は必ず左端から始まるのでLEFT関数、文字数は変動の可能性があるためFIND関数を用いて取得します。

入力は次のようになります。

=LEFT(対象セル,FIND(検索文字列,対象セル)-1)

B2セル内の「,」の位置を取得し、左端からその1文字前(-1)までの文字列を取得することで、1本目の線長が取り出せます。

1本目の線長データが取得できました。

3-4-2. 2本目の線長を取得する

次は2本目の線長データの取得です。

データ取得開始位置は変動の可能性があるためFIND関数を用いて取得し、その地点から10文字をMID関数によって取り出します。入力は次のようになります。

=MID(対象セル,FIND(検索文字列,対象セル)+2,10,)

B2セル内の「,」位置を取得、2本目線長開始位置は「,」の2文字後のため+2、そこから10文字を取得することで2本目の線長が取り出せます。

2本目の線長データが取り出せました。

3-4-3. オートフィル機能で他のセルにも式を適用する

B2セルに対してのデータ取り出し作業が完了したので、つづいてその他のセルに対して同じ式を適用します。
説明は割愛しますが、対象セルを相対参照で指定しているため、Excelのオートフィル機能を使用することで簡単に他セルにも適用できます。

オートフィル機能は、まず先ほど関数式を入力した2つのセル(D2・E2)を選択し、セルの右下(の部分)をした方向にドラッグします。

他のセルに対しても、同様のデータが取得できました。