人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: mikam
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:セル データ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● akibare
●17ポイント

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

はてな

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

◎質問者からの返答

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


2 ● JEM7
●17ポイント

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を必要なだけ上下にコピーします。

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

◎質問者からの返答

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

あ 1,2,3

い 2,3,4

となっているデータを

あ 1

あ 2

い 4

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

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


3 ● banzo
●18ポイント

http://www2s.biglobe.ne.jp/~t-susumu/toclip/library/tpad.html

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

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列を削除してできあがりです。

◎質問者からの返答

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


4 ● JEM7
●18ポイント

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ