OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

CSVをエクセルでアップデートしたいのですが

  • 困ってます
  • 質問No.134733
  • 閲覧数47
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 88% (347/394)

現在、ホームページに設置したデータベース検索CGIに入れてある会員名簿のcsvファイルがあるんですが、
これがエクセルで

会員番号  氏名   郵便番号   住所             TEL
 1   鎌倉太郎 123-0001 東京都中央区架空町2-21-13 03-5123-0125
 2   市原三郎 456-0001 東京都中央区架空町1-51-13 03-5123-0125
 3   山田洋子 789-0001 東京都中央区架空町3-28-11 03-5123-0125
 4   船橋香織 876-0001 東京都中央区架空町4-24-14 03-5123-0125
 5   相模大介 321-0001 東京都中央区架空町5-21-10 03-5123-0125
 6   川崎花子 888-0001 東京都中央区架空町1-11-11 03-5123-0125

と表示されるようになっているとします。
ここに、更新されたデータだけ抽出された

 2   市原三郎 456-0001 東京都新宿区番外町4-55-66 03-5123-0125
 4   浜松香織 876-0001 静岡県三島市新天町5-12-10 052-123-0125
 6   川崎花子 444-0001 千葉県松戸市某乃町5-21-10 047-523-0125

というcsvファイルが友人からメールで届いたとしたら、このデータを読み込むことや、それに準じるいくつかの簡単な操作だけで、同じ会員番号のデータだけ上書きされるようにする事って出来ないでしょうか?

私はエクセルに関しては殆ど無知で、csvファイルを表として見たり、ソートしたりするためにしか使ったことがない人間なので、もし私が望んでいる事が可能でしたら、メニューバーの「○○」から「×××」という項目に入って…などと、ステップを具体的に教えて頂けるとありがたいのですが…。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 64% (33/51)

あんなアドバイスだけでは無責任な気がするので、一例を…
今回は 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 はどっかから調達してくださいね^^;。

こんな回答をここでしてよかったかな?(>_<)
お礼コメント
MORGEN

お礼率 88% (347/394)

完璧なお助けのご回答を頂きました!どうもありがとうございました!!
gawkはVectorで簡単に見つかりましたので早速試させていただきましたが、本当ですねぇ、出来てしまいました。
まさに求めていたのはこれです!!
確かに、どなたからもなかなかお答えを頂けなかったのは「エクセルで簡単に」というのが無理ということなんだろうなとは思い初めていました。
しかしまあ、データを整理する時って、こういう処理が必要になることってよくあるような気がするんですが、Excelにはそういう処理をする機能って備わっていないんですね。
Accessとかなら出来るのかなとも少しは思ったんですが、そういうアドバイスもどなたからも頂いていませんしやっぱりダメなんでしょうね。

いやぁ、教えて頂いたスクリプト、他にも、例えばビデオライブラリの管理とか色んな事に流用できそうですし、とてもありがたいです!
私は普段は殆どMacしか触らないのでプロンプトなんて縁のない人間ですが、そんな私でも迷わずに操作できました。
バッチファイルを作ってしまったので、これからは作業は一発。夢のようです。
これだけのヘルプを頂いて、ポイントでしかお答えできないのが歯がゆいですが、この度は本当にありがとうございました!
投稿日時 - 2001-09-16 01:14:13
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 64% (33/51)

なかなか回答がつかないのは、この作業をEXCELでやらせるにしても そんな簡単にはいかないからでしょう。少なくともマクロやユーザ関数 が必要になるかと思います。 この程度の文字列操作なら、簡単なスクリプトやアプリケーションを 作ったほうが早いですよ。 前者なら秀丸等のマクロを使う手もありますし、後者ならVBとかPerl とか…いろいろな方法があると思います。 周りに多少でも開発詳 ...続きを読む
なかなか回答がつかないのは、この作業をEXCELでやらせるにしても
そんな簡単にはいかないからでしょう。少なくともマクロやユーザ関数
が必要になるかと思います。

この程度の文字列操作なら、簡単なスクリプトやアプリケーションを
作ったほうが早いですよ。

前者なら秀丸等のマクロを使う手もありますし、後者ならVBとかPerl
とか…いろいろな方法があると思います。

周りに多少でも開発詳しい人が居れば、頼んでみてはどうでしょう?
(私だったら作ってあげると思います^^;)
お礼コメント
MORGEN

お礼率 88% (347/394)

こちらのアドバイスにもポイントを付けさせて頂きたいところなのに、良回答と同じ方のお答えに次点って付けられないんですね。
「こうすれば出来ますよ」という簡単な方法が無くても、「そんなに簡単には行かないでしょう」というお答えだけでも頂けたことはありがたいんですが…
それにしても、結果的に本当にスクリプトを書いて頂けるとは!
重ねてお礼申し上げます!
投稿日時 - 2001-09-16 01:21:53

このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ