こんばんは!
表のレイアウトを工夫すれば関数でもできそうですが・・・
VBAでの一例です。
元データはSheet1のA列~F列の1行目からあり、H列以降に表示させるとします。
Sheet2を作業用のSheetとして使用していますので、
Sheet2は全く使用していない状態にしておいてください。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から
Dim i As Long, j As Long, endCol As Long, cnt As Long
Dim c As Range, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
endCol = wS1.UsedRange.Columns.Count
If endCol > 7 Then
Range(Columns(8), Columns(endCol)).ClearContents
End If
For i = 1 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
For j = 1 To 6 '←A列~F列まで
If wS1.Cells(i, j) <> "" Then
If WorksheetFunction.CountIf(wS2.Rows(i), wS1.Cells(i, j)) = 0 Then
cnt = cnt + 1
With wS2.Cells(i, cnt * 2 - 1)
.Value = wS1.Cells(i, j)
.Offset(, 1) = 1
End With
Else
Set c = wS2.Rows(i).Find(what:=wS1.Cells(i, j), LookIn:=xlValues, lookat:=xlWhole)
c.Offset(, 1) = c.Offset(, 1) + 1
End If
End If
Next j
cnt = 0
Next i
wS2.Range("A1").CurrentRegion.Copy wS1.Cells(1, "H")
wS2.Cells.Clear
wS1.Columns.AutoFit
End Sub 'この行まで
こんな感じではどうでしょうか?m(_ _)m
お礼
ご教授ありがとうございました! わたしのやりたことそのものです。見事にカウントできました。 できれば,追加の質問にもお答えいただけるとありがたいです。 ありがとうございました!!
補足
ありがとうございます!!私のやりたことそのものができました。 追加で質問させていただいてよろしいですか? A B C D 結合セル りんご2 なし りんご ぶどう りんご3,なし,ぶどう といった結合は無理ですよね? あつかましい質問でしみません。ご教授いただけますと助かります。