|
A B C D
1 社員名 データ 金額 検索社員名
2 ×◎◎◎×× *** ■■
3 ▼▼▼▼××× *** ○○○○
4 ×××■■ *** ◎◎◎
5 ▼▼▼▼
6 △△△△△
元のデータはB〜Cで、社員名別に金額をピボット集計したい。
B列には名前以外にも文字が含まれている為集計できない。(×は名前以外の文字)
なので、D列へ全社員名を入れてB列を検索し、
該当社員名が含まれている場合はA列へD列の該当データを入れるという式を作りました。
A2のセルへ「マクロの記録」にて
ActiveCell.FormulaR1C1 = "=IF(ISERROR(SEARCH(RC[3],RC[1]))=TRUE,0,RC[3])"
その式から、D2以下も検索させようと変数を使用してみたのですが上手くいきません。
Dim 検索行 As Integer, 行 As Integer
検索行 = 0
行 = 2
Do Until Cells(行, 4) = vbNullString Or ActiveCell <> 0
ActiveCell.FormulaR1C1 = "=IF(ISERROR(SEARCH(R[検索行]C[3],RC[1]))=TRUE,0,R[検索行]C[3])"
If ActiveCell.Value = 0 Then
End If
行 = 行 + 1
検索行 = 検索行 + 1
Loop
End Sub
単に、数字と変数を入れ替えるだけでは駄目なのでしょうか?
加えて、上記はA2の結果しか出ないので、B列のデータがある限りA列へ結果を出すようにするには?
それと、R1C1ではなくCELLSを使いたいのですが、変え方がよくわかりません。
よろしくお願いします。
|
|