フォルダから抽出したパス名リストをcsvのセルに貼り付け[エクセル]

12月 27, 2022

後輩にある実験で得た特性値とその特性値を算出するのに用いた入力変数が対応付けられたデータの作成を依頼していて、先ほどそのデータを受け取ったのだが、受け取ったcsv(以下入力csvと呼ぶ)には入力変数は記載されているのだが、特性値が記録されたcsv名(以下実験特性csvと呼ぶ)が記載されていなかった。特性値はスカラー値ではなく、多変量時系列データで、1つの入力変数セットにつき1つのcsvが対応付けられるデータセットになっており、今回は実験を720回行ったので、入力csv1つに対して、実験特性csvが720個あるという構成になっている。そして720個の実験特性csvにはそれぞれ異なる名前が付けられている。

後輩に、なぜ入力csvに実験特性csvの名前を記載しなかったのかと聞くと、後輩は、「入力csvには縦に720個変数が並べられて記載されており、これは実験特性csvが保存されたフォルダでの実験特性csvの並び順と同じだから記載しなかった」と答えた。

私はこのとき、私と後輩以外の人が入力csv単体を見た時どうするのかとか、フォルダでのファイルの並び順が降順か昇順か分からないなど思ってしまったのだが、後輩は実験で疲れていたようなので実験特性csv名を入力csvに追加するよう言うのは心苦しかった。

しかしそのままにしておくのもどうかと思ったので、今回は、エクセルだけを用いてフォルダから読み取ったファイル名のパスリストをcsvに貼り付ける方法をブログの執筆がてら試していこうと思う。

手順1. エクスプローラーでフォルダを開く

上の通り、該当のフォルダをファイルエクスプローラーで開き、shift+右クリックを押し、「パスをコピー」を選択し、パス名のコピーを行う。具体的に、私の場合は実験特性csvの720個が保存されたフォルダでctrl+aでファイルを全選択し、shift+右クリックで「パスをコピー」した。

shift+右クリックでパスのコピーを行った画面

手順2. エクセルにパス名リストを貼り付け

ctrl+vで先ほどコピーしたパス名リストをエクセルに貼り付ける。私の場合、下記のように実験特性csvのA列にパス名リストを貼り付けた。黒塗りしているのだがB列からI列に実験の変数名が記載されている。

下の画面を見ていただくと分かるのだが、A列に貼り付けられたパス名にはC:\Users\などの余計なパス名が記載されているため、次の手順でこれを除去する。

※パス名リストをエクセルに貼り付けた際、貼り付けられたあとのファイル名が昇順に並んでいない可能性がある。貼り付けられたファイル名の並びが重要である場合は注意しよう

エクセルに貼り付けた後の画面

手順3. 余計なパス名を除去

エクセルのパス名を貼り付けた列全体を選択し「データ」タブ→「区切り位置」をクリック、後は案内に沿って入力を行う。

区切り位置指定ウィザードでの選択画面

コツとしては、ウィザード選択中に表示先に空列を指定することでデータが置き換わることを防ぐ点が挙げられる。

コツは表示先で空列を指定すること

結果

入力列についていた余計なパスC:\Users\などが\の記号で分割して出力することに成功した。後は出力列の最後尾のファイル名のみをコピーして変数列と合わせるなど煮るなり焼くなり好きにして使う。

エクセル

Posted by vastee