プロが教える店舗&オフィスのセキュリティ対策術

お世話になっています。
標題の件に付いて教えて頂きたく質問板に投稿させて頂きました。
以下の様な複数の文字列があり各文字列で共通の文字列のみを抽出するといった処理を行いたいのですが可能でしょうか??

例(1)
赤鉛筆を11/1に購入
青鉛筆を11/5に購入
黄鉛筆を11/20に購入
→鉛筆を購入

例(2)
今日の天気は晴れです
今日の天気は曇りです
今日の天気は雨です
→今日の天気はです

という様な感じです。
文字列には決まったパターン等はありません。

申し訳ありませんがご教授下さい。
よろしくお願い致します。

A 回答 (2件)

こんにちは!


Excelだとして・・・

No.1さんと同じ疑問を持ちつつやってみました。

↓の画像のようにA列1行目から文字列データがあり、B1セルに結果を表示させるとします。
↓のコードでマクロを試してみてください。

Sub Sample1()
Dim i As Long, k As Long, lastRow As Long, cnt As Long
Dim str As String, buf As String
Application.ScreenUpdating = False
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range(Cells(1, "A"), Cells(lastRow, "A")).Copy Range("D1")
Range(Cells(1, "E"), Cells(lastRow, "E")).Formula = "=LEN(D1)"
Range("D1").CurrentRegion.Sort key1:=Range("E1"), order1:=xlDescending, Header:=xlNo
For k = 1 To Len(Range("D1"))
cnt = 1
For i = 2 To lastRow
str = Mid(Range("D1"), k, 1)
If InStr(Cells(i, "D"), str) > 0 Then
cnt = cnt + 1
End If
Next i
If cnt = lastRow And InStr(buf, str) = 0 Then
buf = buf & str
End If
Next k
Range("B1") = buf
Range("D:E").Clear
Application.ScreenUpdating = True
End Sub

こんな感じではどうでしょうか?m(_ _)m
「複数文字列から共通文字列の抽出処置」の回答画像2
    • good
    • 0
この回答へのお礼

どうも親切にありがとうございました!!!
とても参考になりました!

お礼日時:2014/12/01 23:01

補足願います



質問1
例1の場合、共通文字は「鉛筆を11/に購入」ではないのですか?
数字と記号は除外と言う事でしょうか?

質問2
文字の登場順番も見ますか?
例えば、例1の文字列に「筆入れと鉛を購う」と言う文字列も有った場合、共通文字列は「筆入」?「鉛筆を購入」?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています