- ベストアンサー
VBAでCSVファイルの縦横変換を実現する方法
- CSVファイルでC,D,E列を6行毎に別シートに貼り付ける方法をVBAで解説します。
- A行とB行は同じですが、C,D,E行が異なるデータを、6行目のC,D,Eを1行目のT列まで置き換える方法を学びます。
- このデータは約300行あり、毎週置き換えが必要です。VBAを使って効率的に処理する方法をご紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
関連するQ&A
- データをブロックごとに並べ替えるスクリプト
データをブロックごとに移動して並べ替えたいのですが、 うまくいくスクリプトが書けず困っています。 APR_A----- abc 1 def 2 APR_B----- abc 3 def 4 APR_C----- abc 5 def 6 APR_A----- ghi 1 jkl 2 mno 3 APR_B----- ghi 4 jkl 5 mno 6 APR_C----- ghi 7 jkl 8 mno 9 のようなフォーマットのデータがあります。 これを以下のようにフォーマットを変えたいのですが、 awkを使ってどのようにスクリプトを書いたらよいでしょうか。 元データの中で、区切りの行は常にAPR_で始まっています。 APR_で始まる行に来たら次の列に移って2列目のみprint というのを繰り返し、APR_Aに戻ってきたら、 1列目(abc,defなど)、2列目ともprintして同様に繰り返す。 各ブロックの行数はまちまちです。(最初のブロックのように2行のブロックもあれば2番目のブロックのように3行のもあります) rowtitle APR_A APR_B APR_C abc 1 3 5 def 2 4 6 ghi 1 4 7 jkl 2 5 8 mno 3 6 9 分かりにくい文章ですが、理解していただけることを願っています。 よろしくお願いします。
- 締切済み
- その他([技術者向] コンピューター)
- Excel VBAでの固定長のテキストファイル読み込み
こんにちは。 会社にてEXCELをちょろっとかじっていると言う理由から、あまり触ったことのないVBAを使って固定長のテキストファイルを読み込むプログラムを作るように言われてしまって困っています。 利用している固定長のテキストファイル中の各行の桁数は同一でなく、行によってまちまち。しかし、各行の始めの3ケタはヘッダになっています。 例) ABCTTTTTTTTTTTTTTTTKKKKKOOOOOOPPPPPPPPWWWWWWWWWWWWWWWWWWWWWWWSS XYZLLLLL <ABCとXYZがヘッダ。同じ文字が固定長で決まったあるデータ項目と考えて下さい> もちろん、1ファイルにはもっとたくさんの行がずらずら並んでおります。 中身自体は、ある伝票の内容なのですが、1ファイル中には複数の伝票内容(ヘッダABC~XYZで1伝票)が記されております。 なので、ヘッダで言うとABC,DEF,GHI...XYZとなってまたABC~が続く。 しかも、ある伝票では途中存在しないヘッダがあったり、同じヘッダが何回も繰り返されたりするものもあります。 (ABC,DEF,DEF,DEF,GHI..やABC,GHI,JKL..など) これをどうやってEXCELの各セルに貼り付けるかがどう頑張っても分かりません。どうすればよいのでしょうか?
- 締切済み
- その他MS Office製品
- csvファイルのデータ変換について
OS:windows2000pro VB:VB6.0sp5 c:\data.csv(カンマ区切) のデータ(全6列)で 1列目,2列目,3列目,4列目,5列目,6列目 [変換前(全6列)] abc,a1,aあ b2,3c,4d5e (1行目) ccc,c3,aあ い,3c,4d5e (2行目) bbc,b2,あ b2a,c3,d5e4 (3行目) [変換後(全6列)] abc,a1,"aあ b2",3c,"4d5e" (1行目) ccc,c3,"aあ い",3c,"4d5e" (2行目) bbc,b2,"あ b2a",c3,"d5e4" (3行目) 上記の様に 3列,6列目を「"・・・"」ダブルコーテイションで 囲い(変換し)、c:\data_after.csvというファイル名で 保存する為のプログラムをご教示ください よろしくお願いいたします
- ベストアンサー
- Visual Basic
- 正規表現でのパイプ(or)を減らしたいのですが
いつもお世話になっています。 正規表現のパイプ(|)は非常に遅くなるらしいので、[]内に並べるようにプログラムを修正しようと思っています。それで、 /a|b|c/ ---> [abc] のような方法は、よく紹介されているのですが、a,b,cが単独文字ではなく、単語になっているような場合、 /abc|def|ghi/ ---> [(abc)(def)(ghi)] だと多分ダメですよね(今実行環境が無く確認できません)。 それで、各々の単語を $a = 'abc'; $d = 'def'; $g = 'ghi'; のようにあらかじめ定義しておいて、 /$a|$d|$g/ ---> [$a$d$g] というように書き換えると、うまくいくのでしょうか? やり方が間違っていましたら、ご指摘いただきたく、よろしくお願いします。
- ベストアンサー
- Perl
- Excelで特定列に同じ内容がある行を削除する
下記に示しますように,A列に同じ内容がある行を削除する方法 を教えて頂けないでしょうか。 よろしくお願い致します。 _ | A B C … ―――――――――― 1 | a 1 ABC … 2 | a 2 def … 3 | a 3 ghi … 4 | a 4 JKL … 5 | b 2 QWE … 6 | b 2 asd … 7 | b 2 zxc … 8 | c 3 ASD … 9 | c 5 nmk … 10 | d 4 ZXC … 11 | d 4 tyu … : | : : : … ↓ _ | A B C … ―――――――――― 1 | a 1 ABC … 2 | b 2 QWE … 3 | c 3 ASD … 4 | d 4 ZXC … : | : : : …
- 締切済み
- その他MS Office製品
- CSVファイルの任意の列をダブルクォーテーションで囲みたいのですが・・・。
CSVファイルの任意の列をダブルクォーテーションで囲みたいのですが・・・。 例えば abc,def,ghi,jkl mno,pqr,stu,vwx ↓ abc,"def",ghi,"jkl" mno,"pqr",stu,"vwx" というように、2番目と4番目の列の文字列をダブルクォーテーションで囲む、といった具合にです。 調べてみるとVBAを使用する方法はあるようですが、EXCELやその他のフリーソフト等を使用して処理する方法はありませんでしょうか。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルで元データを残しながらコピー
エクセル2007で複数の行にまたがってある複数のデータを楽に一つの行にまとめたい。 例 A1 abc B2 def A3 ghi C4 jkl 以下省略 このB行とC行をA行に全てまとめて移動したいのですがどのようにすればいいでしょうか。 したいこと A1 abc A2 def A3 ghi A4 jkl 以下略
- ベストアンサー
- オフィス系ソフト
- エクセル関数:右側の文字列を抜き出す方法
エクセル初心者です。 文字列の抜き出す方法で悩んでいます。 たとえば、A1~A5までに下のような 文字列が順に入っているとします。 C:\abc\TEST1.DOC C:\abc\def\TEST2.DOC C:\abc\def\ghi\jkl\TEST3.DOC C:\abc\def\ghi\TEST4.DOC C:\abc\def\TEST5.DOC これらの文字列の一番右側の'\'以降の文字列 (TEST1~5.DOC)を、B1~B5のセルに 出したいと思っているんですが できるのでしょうか? RIGHT関数や、LEN関数、FIND関数を使って できそうな気がするのですが どうも良い方法が思いつきません。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- perlでのcsv形式のテキストファイルの変換
perlを使用してcsv形式のテキストファイルを下記のように変換したいと思っています。 【変換前】 10, abc , def , ghi ,jkl ----1行目 10, abc , def , aaa, bbb ----2行目 10, abc , def , ccc , ddd ----3行目 11, abc , def , eee , fff ----4行目 11, abc , def , aaa , ggg ----5行目 11, zzz , def , aaa , ggg ----6行目 12, abc , def , aaa ,ggg ----7行目 12, zzz , def, aaa , ggg ----8行目 【変換後】 10, abc , def , ghi ,jkl ----1行目 11, abc , def , eee , fff ----4行目 11, zzz , def , aaa , ggg ----6行目 12, abc , def , aaa ,ggg ----7行目 12, zzz , def, aaa , ggg ----8行目 変換内容はcsv形式のテキストファイルで、”,”で区切った先頭3列が 前の行の先頭3列と同じならその行は出力しない、といった 変換をしたいと思っております。 (例えば2行目ですと先頭3列は10, abc ,defになっており、 1行目の先頭3列と同じ文字列になっているためこの行は出力しない) 当方、Perl初心者で上記のようなことがPerlでできるかも よくわかっておりません。 そこで、上記のような変換はPerlで可能なのか、そしてもし可能であるのなら どのようにPerlで記述すればできるのか教えていただけないでしょうか。 よろしくお願いいたします。
- ベストアンサー
- Perl
お礼
返信遅くなり 申し訳ありません 回答ありがとうございます。 見事 できました!!! が、私の質問ミスでまだ出来上がってないんです。。 VBAはマクロ操作した物をVBEで開いて見て、書き換えて・・っていう程度しか した事がないので、変数の使い方がよくわかりません。