1つのセルにある複数のデータを分離する(第1正規化?)方法,つまり,(あ:a,b,c)(い:b,d,e)…となっているデータを(あ:a)(あ:b)(あ:c)(い:b)…と変換する方法を教えてください。()が行,:で列を区分しています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/09/03 14:49:54
  • 終了:--

回答(4件)

id:akibare No.1

akibare回答回数157ベストアンサー獲得回数52003/09/03 17:00:51

ポイント17pt

URLはダミーです。

こんなVBAで一応動きます

A列B列にもとのデータがあった場合、C列D列に分離した結果が表示されます。

Sub Test()

Dim key, value As String

Dim i, j As Integer

i = 1

j = 1

key = Cells(i, 1)

value = Cells(i, 2)

While (Not key = ””)

split_values = Split(value, ”,”)

For Each v In split_values

Cells(j, 3).value = key

Cells(j, 4).value = v

j = j + 1

Next

i = i + 1

key = Cells(i, 1)

value = Cells(i, 2)

Wend

End Sub

id:mikam

VBAはあまり使ったことがないですが,とりあえず試してみます。

2003/09/03 18:16:07
id:JEM7 No.2

JEM7回答回数148ベストアンサー獲得回数02003/09/03 18:12:53

ポイント17pt

http://www.hatena.ne.jp/1062568194#

1つのセルにある複数のデータを分離する(第1正規化?)方法,つまり,(あ:a,b,c)(い:b,d,e)…となっているデータを(あ:a)(あ:b)(あ:c)(い:b)…と変換する方法を教.. - 人力検索はてな

URLはダミーです。

マクロや正規表現置換などを使わずに力業でやる原始的な方法。

1)括弧を外します。Excelの置換で”(”→””(何も入力しない)を実行。次に”)”→””を実行。

2):を,にします。これも置換。,は半角で。

*この時点でデータは あ,a,b,c の様になります。

3)上記処理をしたデータをA列だけに配置して、A列をコピーし、メモ帳に貼り付けます。貼り付けたメモ帳ファイルを拡張子csvで保存します。

4)csvをExcelで開くと、一文字ずつセルが分かれて読み込まれます。

5)Excel形式で保存します。(ワークシート名を仮にsheet1とします)

6)ワークシートを一枚追加します。(sheet2)

7)sheet2のA1に

=IF(Sheet1!B1=””,””,Sheet1!$A1&”:”&Sheet1!B1)

と入力します。

8)A1を必要なだけ上下にコピーします。

以上、超原始的な方法でした。

id:mikam

私の質問の仕方が悪かったようです。質問は,

あ 1,2,3

い 2,3,4

となっているデータを

あ 1

あ 2

い 4

と変換する方法を教えてほしいというものです。

すいませんが,よろしくお願いします。

2003/09/03 18:26:26
id:banzo No.3

banzo回答回数36ベストアンサー獲得回数02003/09/03 22:34:12

ポイント18pt

私ならこうするかな、という原始的な方法です。

urlは私がよく使うフリーのエディタterapad(win用)です。

改行やタブの置換ができればどのエディタでもかまいません。

元データと変換後のデータはエクセルシートとして説明します。

1.処理したい範囲(行×列)をコピーしエディタに貼り付けます。

2.エディタで、「,」を「改行タブ」にすべて置き換えます。

例:terapadでは¥nが改行で¥tがタブなので「,」を「¥n¥t」に置き換えます。

3.エディタですべて選択・コピーしてエクセルの新しいシートの先頭に貼り付けます。

4.先頭に1列追加して、セルa1には

=b1

a2には

=if(b2=””,b1,b2)

a3以下はa2をコピー&貼り付けます。

5.a列を選択してコピーし、a列に「値のみ貼り付け」ます。

6.b列を削除してできあがりです。

id:mikam

ありがとうございます。この方法でなんとかなりそうです。

2003/09/04 11:26:13
id:JEM7 No.4

JEM7回答回数148ベストアンサー獲得回数02003/09/04 00:42:17

ポイント18pt

http://www.hatena.ne.jp/1062568194#?_?

1つのセルにある複数のデータを分離する(第1正規化?)方法,つまり,(あ:a,b,c)(い:b,d,e)…となっているデータを(あ:a)(あ:b)(あ:c)(い:b)…と変換する方法を教.. - 人力検索はてな

  • id:JEM7
    mikam様へ

    当該回答については質問の意図を誤認しておりましたので、pt送信させて頂きます。ご確認下さい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません