No.1ベストアンサー
- 回答日時:
こんにちは
比較的簡単な方法を・・・
◇手操作(+関数)による方法
1)A列を選択して、「データ」-「区切り位置」でセミコロンを選択して実行
(上記で、各語ごとにセルに分解されます)
2)各行に対してUNIQUE関数で重複を省く。
3)2の各セルに対して、TEXTJOIN関数でセミコロンを区切りとして結合
※ 最初のデータは分解されますので、残しておきたい場合は、別シートで操作するなどが必要です。
※ UNIQUE関数が使えない環境では、面倒な配列式を作成する必要があります。
※ 関数でなく重複を省く方法もあります。
「データ」-「重複の削除」を利用することで可能ですが、列単位の処理となるため、1)でできた語群を「コピー」-「行列の入れ替え」で、一旦列に置き換える必要があります。
◇マクロによる方法
1)上記の操作を1行分で行い「マクロの記録」などで記録
2)1の内容を一般化して、ループで行数分繰り返すように修正する。
※ 質問者様がマクロが組める方なら、「マクロの記録」などは使わない方が効率の良いものができるはずです。
その場合は、元の文字列をSplitで分割して、重複を省き、再度Joinで結合すればよいでしょう。
No.3
- 回答日時:
#2です
変数をまとめた時に間違いがあったので訂正します。
誤り
Dim s As String, k As String, i As Long, n As Long
正
Dim s As Variant, k As String, i As Long, n As Long
No.2
- 回答日時:
こんにちは、
セミコロンで区切られたキーワード、データ数ってどのくらいあるのかな、、
手作業で区切り位置でデータとして作業用シートに行列の入れ替えでコピペ
、、工数多そうで私には具体的な回答が出来そうにありませんので
VBAが判れば、手っ取り早くVBAで
サンプルはA列のデータをB列に加工して出力します。
試す場合は、新規ブックで行ってください。
Sub sample()
Dim s As String, k As String, i As Long, n As Long
Dim Dic, iAry, oAry
Set Dic = CreateObject("Scripting.Dictionary")
iAry = Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
ReDim oAry(UBound(iAry, 1) - 1)
For n = 0 To UBound(iAry, 1) - 1
s = Split(iAry(n + 1, 1), ";")
For i = 0 To UBound(s, 1)
If Dic.exists(s(i)) = False Then
Dic.Add s(i), 0
If k <> "" Then
k = k & ";" & s(i)
Else
k = s(i)
End If
End If
Next
oAry(n) = k
k = ""
Dic.RemoveAll
Next n
Cells(1, "B").Resize(UBound(iAry, 1)) = WorksheetFunction.Transpose(oAry)
End Sub
念のため検証していますが、書き方は不問でお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルを活用した受注表作成の中で関数・数式を教えてください。 3 2022/07/23 08:14
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- Excel(エクセル) 重複したデータ(空白は除く)のVBA表記について 4 2022/08/15 07:28
- Excel(エクセル) 重複データの抽出について 2 2023/07/21 14:52
- Excel(エクセル) エクセルで納品書を作成中ですが、関数を教えて下さい。 2 2022/09/05 10:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロ オートフィ...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
罫線の斜線を自動で引くマクロ
-
Excel グラフのプロットからデ...
-
アクティブになっている行をマ...
-
エクセルマクロで偶数行(又は...
-
エクセル 上下で列幅を変えるには
-
完全一致したら代入するマクロ...
-
AのセルとB行を比較して、一致...
-
【EXCEL】連続データの個数を抽...
-
A1に入力された文字列と同じ文...
-
エクセルマクロ オートSUM(合...
-
VBAで色の付いているセルの行削除
-
【VBA】「同じ文字を含むセ...
-
Excel ウインドウ枠の固定をす...
-
電話番号の入力方式が違うデー...
-
エクセル 数字のみ残したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
AのセルとB行を比較して、一致...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
excelのデータで色つき行の抽出...
-
Excel グラフのプロットからデ...
-
エクセル2016で時間を入力して...
-
VBAで色の付いているセルの行削除
-
特定の文字がある行以外を削除...
-
連続データが入った行の一番右...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセルで昨日までの日付デー...
-
エクセルマクロで偶数行(又は...
-
A1に入力された文字列と同じ文...
おすすめ情報