• ベストアンサー

ExcelでXMLっぽいファイルの編集をしたい

ExcelでXMLもどきの編集をしたいと考えています。 XMLもどきのファイルの内容は以下のようになっています。  <rule parameter1="みかん" parameter2="とまと" parameter3="あずき" />  <rule parameter1="りんご" parameter3="だいず" parameter4="わかめ" />  <rule parameter1="もも" parameter2="きゅうり" parameter5="ミルク" /> これらの情報の中から、" " 内の文字列を抽出して、パラメータ毎に 分類して以下のように整理しようとしています。  parameter1 parameter2 parameter3 parameter4 parameter5  みかん とまと あずき  りんご だいず わかめ  もも きゅうり ミルク 関数やマクロを利用して、これらの作業を簡単に行う方法はないでしょうか? お知恵をお貸しください。

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

  • ベストアンサー
  • iriyak
  • ベストアンサー率48% (40/82)
回答No.3

こんにちは。 ANo.1 さんの紹介されている XSL 変換機能を提供しているソフトウェアと Excel を組み合わせて、XML ファイルの更新運用をデザインされてはいかがでしょうか。 XSL 変換機能を提供しているソフトウェア例 ・XMLEDITOR .NET

参考URL:
http://www.xmleditor.jp/
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

昨日から正規表現にはまっていますので、その線で回答いたします。 Sub test() Dim regEX As Variant Dim Matches As Variant Dim match As Variant Dim matchString As String Dim targetString As String Dim subMatch As Object Dim i As Long targetString = readTextFile("C:\Documents and Settings\?????\My Documents\hoge.txt") matchString = "(parameter\d)=""(\S*)""" Set regEX = CreateObject("VBScript.RegExp") regEX.MultiLine = True regEX.Pattern = matchString regEX.ignorecase = True regEX.Global = True Set Matches = regEX.Execute(targetString) i = 1 For Each match In Matches If match.submatches.Count > 0 Then ActiveSheet.Cells(i, 1).Value = match.submatches.Item(0) ActiveSheet.Cells(i, 2).Value = match.submatches.Item(1) i = i + 1 End If Next match Set Matches = Nothing Set regEX = Nothing End Sub Private Function readTextFile(fileName As String) As String Dim FSO As Object Dim buf As String Set FSO = CreateObject("Scripting.FileSystemObject") With FSO.getfile(fileName).OpenAsTextStream buf = .ReadAll readTextFile = buf .Close End With Set FSO = Nothing End Function 処理結果 ....................A................B 1........parameter1..........みかん 2........parameter2..........とまと 3........parameter3..........あずき 4........parameter1..........りんご 5........parameter3..........だいず 6........parameter4..........わかめ 7........parameter1..........もも 8........parameter2..........きゅうり 9........parameter5..........ミルク ご質問の形とは異なりますが、後はお好きな様に料理して下さい。 中味が知りたければ、VBA 正規表現 で検索して下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

xsltを使ってcsv的なテキストを吐き出してエクセルで読み込んだら良いんじゃない? http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=xslt%20%E5%85%A5%E9%96%80

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでこんなことできますでしょうか?

    エクセルを使ってデータ管理をしています。 エクセルで以下のようなデータがあるとします。  お店A   お店B  お店C 品目 個数 品目 個数 品目 個数 りんご 5 みかん 4 柿  4 みかん 3 りんご 2 パイナップル 2 柿   2 もも  3 いちご 3 もも  7 パイナップル 2 みかん 2 これを  お店A   お店B  お店C 品目 個数 品目 個数 品目 個数 もも 7  もも  3  りんご 5 りんご 2  みかん 3 みかん 4 みかん 2 柿  2        柿   4 のように品目を揃えて表示させたいのですが、 どのようにすればよいでしょうか?

  • 重複列があり、その他の列を同じ列にかえす

    こういったselect文ってつくれるんでしょうか? ネットで調べてもこういった答えが見つけられなかったので… おわかりの方いましたら、よろしくお願いします。 列1  | 列2  | 列3 1    |りんご  |きゅうり 1    |みかん  |なす 2    |かき   |はくさい 2    |なし    |キャベツ 3    |もも    |ごぼう 3    |キウイ  |きのこ ↓ 1   |りんご/みかん|きゅうり/なす 2   |かき/なし   |はくさい/キャベツ 3   |もも/キウイ  |ごぼう/きのこ っていうことがしたいんですが… 列1の重複ごとにまとめて、2、3をまとめて1つの列にいれるような selectで表示されるような文です。 2、3は一応文字列なので、集計とか考えていないです。

  • 1つのテーブルに重複している列ごとに行を結合する

    以前も同じ質問をしたのですが、 初心者すぎてどうしても自己解決できずに困っています。 sql server2008でつくったdbで テーブル名:sampleとして id   |a1    |b1 1    |りんご  |きゅうり 1    |みかん  |なす 2    |かき   |はくさい 2    |なし    |キャベツ 3    |もも    |ごぼう 3    |キウイ  |きのこ ↓ 1   |りんご/みかん|きゅうり/なす 2   |かき/なし   |はくさい/キャベツ 3   |もも/キウイ  |ごぼう/きのこ にするプログラムをvb.netでするにはどうしたらいいでしょうか? 親切な方、丸投げですいませんがよろしくお願いします。

  • エクセル VBA マクロについて

    初めまして。 以下のようなマクロを組みたいんですが可能でしょうか?  A     B     C    D    E    F 東京   足立区 みかん  10   5   50       葛飾区 みかん  20   3   60        港区  りんご  30   1   30 小計                       140 ( 空白行   ) 愛知  名古屋市 みかん  10   5   50      東海市    もも   10   5   50 小計                       100 上記のようなデーターシートがあります。 Dには数字が入ってるんですが、 ここに係数をかけたいんです。 たとえば、=10*1.07 とか (1)元の値に係数かける式をセルに入れるマクロはあるんでしょうか? (2)この係数を別シートのセルで入力したいんですが セルを参照できますか? (3)みかん、もも、りんごの列を検索して、  それに対応した係数かけるマクロはあるんでしょうか? 処理速度は、とくにはこだわりません。 ご指導おねがいいたします。

  • IFの入れ子7個以上をEXCEL2003で使いたい

    EXCEL2003でIFの入れ子が7個までしか使えませんが、 関数またはVBAを使って7個以上の入れ子を機能させるには どうしたらいいでしょうか。 やりたいことは、ピボットテーブルで使いやすいように 文字列データを別の列にコピーしたいのですが、 元データにはいろいろな文字列が順不同で入っており、 それを取り出すのにIFの入れ子を多様しています。 たとえばこんなデータなのですが、 商品番号 商品タグ          売上金額 No1    ■果物■りんご       1000 No2    ■野菜■きゅうり      2000 No3    ■果物■みかん       1000 No4    ■野菜■にんじん      2000 No5    ■果物■りんご       1000 No5    ■果物■りんご       1000    No6    ドリンク          1000    商品タグには 大カテゴリ 果物、野菜 中カテゴリ 果物の場合、りんご、みかん       野菜の場合、きゅうり、にんじん と分類されています。 一つのセルに大カテゴリと中カテゴリの両方が入ります。 これを中カテゴリをキーにしてピボットテーブルで集計したい場合、 下記の様もう一つ列を作り、そこに集計したいものだけが入った データを作らなければなりません。    A     B             C     D 1商品番号 商品タグ          売上金額 中カテゴリ 2No1    ■果物■りんご       1000   りんご 3No2    ■野菜■きゅうり      2000   きゅうり 4No3    ■果物■みかん       1000   みかん 5No4    ■野菜■にんじん      2000   にんじん 6No5    ■果物■りんご       1000   りんご 7No6    ドリンク          1000   その他 商品タグは実際にはこの前後にたくさんの文字列があり、 文字数も決まっていませんので、文字列を取り出すには search関数やmid関数などを使って取り出しています。 また、取り出したい文字列が含まれていない場合は すべて「その他」と入力したいのです。 セルD2には下記の式を入れています。 =IF(ISERROR(MID(B2,SEARCH("■りんご",B2),3)=TRUE), IF(ISERROR(MID(B2,SEARCH("■みかん",B2),4)=TRUE), IF(ISERROR(MID(B2,SEARCH("■きゅうり",B2),5)=TRUE), IF(ISERROR(MID(B2,SEARCH("にんじん",B2),5)=TRUE),"その他","にんじん"),"きゅうり"),"みかん"),"りんご") これをIFの入れ子7個以上でも使えるようにするには、どうしたらいいでしょうか。

  • Excelの質問です。名前別で最大ドローダウンを出したいです。

    Excelの質問です。名前別で最大ドローダウンを出したいです。 A      B 名前    損益 りんご   -50 みかん   30 りんご   40 もも    -50 みかん   20 りんご   30 りんご   -20 もも    -40 このような表があるとします。 名前別で最大ドローダウンを出す場合、名前ごとに残高の列をC列以下に作れば以下のページの方法で求められます。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1416554559 ただし、今後この名前がどんどん増えていくためその度に列を増やしていくのが大変です。 列を増やさずに最大ドローダウンを出すことはできませんか。 マクロでも関数でもいいですがどなかた教えて頂けないでしょうか。 よろしくお願い致します。

  • エクセルで一つのセルに別Bookのデータを貼り付け

    エクセルで別Bookにある複数の参照データを一つのセルに 貼り付けたいのですが、 例えばBook1には以下のようなデータがあります。    A列       B列 1 バナナ     カテゴリ1 2 もも       カテゴリ1 3 りんご      カテゴリ1 4 メロン      カテゴリ1 5 バナナ     カテゴリ2 6 みかん     カテゴリ2 7 もも       カテゴリ3 8 バナナ     カテゴリ3 9 いちご     カテゴリ3 10 もも      カテゴリ4 Book2にはB列にカテゴリ1・カテゴリ2・カテゴリ3というように、 項目が入力されています。 Book1を参照して、B列のカテゴリ1に当てはまるA列の値(例ではバナナ、もも、りんご、メロン)を Book2のカテゴリ1の横(A1)の一つのセル内に貼り付けたいのですが 可能でしょうか?    A列      B列 1 バナナ   もも       カテゴリ1   りんご   メロン 2 バナナ     カテゴリ2   みかん  3 もも       カテゴリ3   バナナ   いちご             つまり、Book2を上記のような形にできればと思います。 拡張子は .xlsxです。 A列の項目とB列のカテゴリ数は数1000ほどあり、 各カテゴリの数は1つのものもあれば、10数個あったりと不揃いです。 カテゴリに見合わせてコピペしていくのは大変なので 良い方法があれば、ご教授宜しくお願い致します。    

  • ACCESSのテーブルで、昇順並び替え後、連番フィールドを作成したい

    表題の通りなのですが、 今現在ACCESS2000を使ってデータベースを作成しています。 その際、 ---------------------- 連番  項目 00001  りんご 00002  ばなな 00003  みかん 00004  もも ---------------------- というようなテーブルで[項目]を昇順で並び替え後、 連番が自動的に振られるようなクエリ(無理そうならその他の方法でも)を作成したいと思っています。 今現在はクエリで以下のように昇順で並び替えられたものを、 ---------------------- 連番  項目 00002  ばなな 00003  みかん 00004  もも 00001  りんご ---------------------- 一旦エクセルにエクスポートして、オートフィルで[連番]を書き換え後、再度ACCESSにインポートし以下のような完成形にもっていっています。 ---------------------- 連番  項目 00001  ばなな 00002  みかん 00003  もも 00004  りんご ---------------------- しかし、頻繁に[項目]書き換え・追加のあるデータベースなので、結構な時間を費やしてしまい、とても効率が良いとはいえない状態です。 どうにかACCESS内で完結できる方法はないものでしょうか? ご享受の程よろしくお願いいたします。

  • access テーブル結合の逆?

    Access2003 お世話になります。SQLで以下のようなデータを取得する場合、上手い方法はあるのでしょうか。なんだかとても簡単な事のような気がするのですが…… テーブルA: ---品名--- りんご みかん もも いちご テーブルB: ---品名--- りんご もも このテーブルBに入力されているレコードをテーブルAから"除外"して、結果として「みかん」と「いちご」だけが欲しいのです。 テーブルBのレコードが少なければ、直接 品名<>"りんご" とか書いてもいいのかもしれませんが、結合のようなSQLで一発でできてしまったりしないでしょうか。 access上で可能なスマートな方法があれば教えていただきたいです。 よろしくお願いいたします。

  • エクセルの順位付けについて

    Sheet1に以下のデータがあります。      項目A 項目B 項目C 項目D 合計   順位 みかん   5   0.22    3    2  10.22    6 りんご   3   1.2    1    3   8.2     3 ばなな   4   2.2    3    1  10.2     5 いちご   1   1.5    2    3   7.5     1 ぶどう   2   1.5    3    1   7.5     1 れもん   3   2.5    1    3   9.5     4 ちなみに、項目A~Dの数値は、パラメータ(ウェイト)を変更する ことによって、変わります。したがって、順位も変わります。 そこで、Shee2では、パラメータを変更するたびに変わる順位順に 出したいのですが、どのようにすればよいでしょうか。 ご教示頂ければ幸いです。 最終形のイメージは以下ののとおりです。 順位      項目A 項目B 項目C 項目D   合計    1  いちご   1   1.5    2    3     7.5  1  ぶどう   2   1.5    3    1     7.5  3  りんご   3   1.2    1    3     8.2  4  れもん   3   2.5    1    3     9.5  5  ばなな   4   2.2    3    1    10.2    6  みかん   5   0.22    3    2    10.22  なお、順位のところは、1、2、3・・・と順番になるケースもあれば 1、2、2、4となるケースもあるかと思っています。 よろしくお願いします。

専門家に質問してみよう