No.1
- 回答日時:
対象のA列を指定し、
データタブにある「区切り位置」をクリック
カンマやタブの区切り文字によって区切られたデータを指定し次へ
「カンマ」および「その他」にチェックを入れ、その他の右に「×」を入力し次へ
完了ボタン押下で「○kw」だけのセルになるように抜き出し出来ます。
これだけだと行によってD列だったり、B列だったりするので、それでもよければですが^^;
「区切り位置」は私も考えたのですが、
仰るとおり列が一定でなくなってしまう為、
なかなか難しく…。
御回答、ありがとうございました。
No.2
- 回答日時:
そうですねぇ…見た限り小数点の入ったものはkwの部分のみであり、kwは10未満の数字のみであるので、
小数点の位置の1つ手前からkwまでで抽出するのではどうでしょうか?
確かに、大体のデータが例に挙げたものと
同じようなものなので、その方法なら
ほぼ抽出出来そうですね。
ただ、様々なパターンがあるので
網羅することは厳しそうです。
御回答、ありがとうございました。
No.3ベストアンサー
- 回答日時:
こんにちは。
あえてマクロにしたのは、Excelという条件下だからですが、こういう時は、正規表現検索・置換によって可能ですので、正規表現付きエディターで抜き出すことも可能です。
また、以下は、単独で、=RegPickup(A1) としても可能です。
'//標準モジュール
Sub TestMacro()
Dim ret As Variant
Dim c As Variant
For Each c In Range("A1", Cells(Rows.Count, 1).End(xlUp))
If c.Value <> "" Then
c.Offset(, 1).Value = RegPickup(c.Value)
End If
Next c
End Sub
Function RegPickup(ByVal sText As Variant)
Const PTRN As String = "(0?[\d\.]+kw)" '正規表現パターン
Dim RegEx As Object
Dim Ms, m
Dim buf As String
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = True: .IgnoreCase = False: .MultiLine = True
.Pattern = PTRN
Set Ms = .Execute(sText)
For Each m In Ms
buf = buf & " " & m.Value
Next
End With
RegPickup = Trim(buf)
buf = ""
End Function
出来ました!
「正規表現」というものがある事を初めて知り、
大変勉強になりました。
コードは私には難しく、よく分かりませんが
大変助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) 関数で複数ある→以降の文字の抽出したい 4 2022/08/07 09:47
- Excel(エクセル) Excelの1つのセルにそれぞれ文字+数字が入力されていて、 数字のみ抽出して合計したいです。(合計 4 2023/03/16 23:44
- Excel(エクセル) AVERAGE関数とINDIRECT関数を使ってのオートフィル 3 2023/01/12 12:00
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルの時刻のカウントが出...
-
【Excel VBA】指定した行の最大...
-
基準日以前のデータを範囲を指...
-
エクセル関数について
-
エクセル関数について
-
平均変化率の信頼区間
-
Excelで並び替え後にア行...
-
excel / ピポッド 日数を出したい
-
EXCEL 最終行のデータを他のセ...
-
文字列を比較し、相違するフォ...
-
オートフィルタ後のデータから...
-
検索条件に合うセルの個数を数...
-
急ぎ!色のついたセルを非表示...
-
複数回答のクロス集計の方法
-
エクセルで長い行を5行ごとに1...
-
エクセルの主軸と第2軸の0を合...
-
別のシートから値を取得するとき
-
エクセルで文字が白くなる
-
1年分のデータから特定の月分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
平均変化率の信頼区間
-
急ぎ!色のついたセルを非表示...
-
オートフィルタ後のデータから...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
基準日以前のデータを範囲を指...
-
EXCELで日付を比べ3か月以内の...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
エクセル関数について
-
excel / ピポッド 日数を出したい
-
エクセル VBA 行間隔を飛ばした...
-
時間の重複チェック
-
プルダウンに【なし、平均、デ...
-
EXCEL 最終行のデータを他のセ...
-
列と行の名前(重複あり)が交...
おすすめ情報