- ベストアンサー
CSVをエクセルでアップデートする方法
- CSVファイルをエクセルで読み込み、会員番号のデータだけ上書きする方法について教えてください。
- エクセルに関する知識がない私でも、簡単な操作で更新データを抽出し、元のデータを上書きすることは可能でしょうか?具体的な手順を教えてください。
- 友人から届いた更新データをエクセルに反映させる方法を教えてください。会員番号が同じデータのみを更新したいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あんなアドバイスだけでは無責任な気がするので、一例を… 今回は awk を使ってます。 元ファイルを original.csv、更新データを diff.csv とします。 以下のスクリプトファイルを update.awk として保存します。 --ここから--- BEGIN { FS="," } { if ( data[ $1 ]++ == 0 ) { lines[ ++count ] = $0 number[ $1 ] = count } else { lines[ number[ $1 ] ] = $0 } } END { for ( i = 1; i <= count; i++ ) print lines[ i ] } ---ここまで--- で、プロンプトから gawk -f update.awk original.csv update.csv > result.csv で結果ファイル result.csv が出来上がりです。 あ、gawk.exe はどっかから調達してくださいね^^;。 こんな回答をここでしてよかったかな?(>_<)
その他の回答 (1)
- s-mariko
- ベストアンサー率64% (33/51)
なかなか回答がつかないのは、この作業をEXCELでやらせるにしても そんな簡単にはいかないからでしょう。少なくともマクロやユーザ関数 が必要になるかと思います。 この程度の文字列操作なら、簡単なスクリプトやアプリケーションを 作ったほうが早いですよ。 前者なら秀丸等のマクロを使う手もありますし、後者ならVBとかPerl とか…いろいろな方法があると思います。 周りに多少でも開発詳しい人が居れば、頼んでみてはどうでしょう? (私だったら作ってあげると思います^^;)
お礼
こちらのアドバイスにもポイントを付けさせて頂きたいところなのに、良回答と同じ方のお答えに次点って付けられないんですね。 「こうすれば出来ますよ」という簡単な方法が無くても、「そんなに簡単には行かないでしょう」というお答えだけでも頂けたことはありがたいんですが… それにしても、結果的に本当にスクリプトを書いて頂けるとは! 重ねてお礼申し上げます!
お礼
完璧なお助けのご回答を頂きました!どうもありがとうございました!! gawkはVectorで簡単に見つかりましたので早速試させていただきましたが、本当ですねぇ、出来てしまいました。 まさに求めていたのはこれです!! 確かに、どなたからもなかなかお答えを頂けなかったのは「エクセルで簡単に」というのが無理ということなんだろうなとは思い初めていました。 しかしまあ、データを整理する時って、こういう処理が必要になることってよくあるような気がするんですが、Excelにはそういう処理をする機能って備わっていないんですね。 Accessとかなら出来るのかなとも少しは思ったんですが、そういうアドバイスもどなたからも頂いていませんしやっぱりダメなんでしょうね。 いやぁ、教えて頂いたスクリプト、他にも、例えばビデオライブラリの管理とか色んな事に流用できそうですし、とてもありがたいです! 私は普段は殆どMacしか触らないのでプロンプトなんて縁のない人間ですが、そんな私でも迷わずに操作できました。 バッチファイルを作ってしまったので、これからは作業は一発。夢のようです。 これだけのヘルプを頂いて、ポイントでしかお答えできないのが歯がゆいですが、この度は本当にありがとうございました!