Excelについての質問です。
Excelについての質問です。 Sheet1にあるID(全てのIDが書いてある)とsheet2(講義受講者のIDが書いてある)にあるIDが一致した場合1をなければ0を返すVBAを組みたくて調べながら組みました。 でもエラーも出ず何が違うかわからず困っています。 ファイル名は"Worksheets"シート名は"sheet1"と"sheet2"です。 出力したいのはsheet1の70列です。 また今sheet1のIDの数は1500にしていますが実際は16000あります…。 この量はVBAでは無理ですか? 他にいい手段がありましたら教えていただけると嬉しいです。 Sub kakikae() For i = 2 To 1500 For j = 1 To 100 If Worksheets("sheet1").Cells(i, 1).Value = Worksheets("sheet2").Cells(j, 11).Value Then Worksheets("sheet1").Cells(i, 70).Value = 1 Else Worksheets("sheet1").Cells(i, 70).Value = 0 End If Next Next End Sub 画像はイメージです。 sheetが分かれてると考えて参考にしていただければ嬉しいです よろしくお願い致します。
Excel・64閲覧・250
ベストアンサー
>他にいい手段がありましたら Countif関数で出来ますよ 受講と空白で作っちゃいましたが0と1で返すなら =IF(COUNTIF($D$16:$D$18,A16),"受講","")を =IF(COUNTIF($D$16:$D$18,A16),1,0)で
マクロの方はIDが一致したときに Worksheets("sheet1").Cells(i, 70).Value = 1 で一度1が入っているのですが 次の行を判定したときにIDがない場合 Worksheets("sheet1").Cells(i, 70).Value = 0 で上書きされてしまっています IDが一致したときはそこでFor-Nextを終わらせないといけません Worksheets("sheet1").Cells(i, 70).Value = 1 Exit For としましょう
質問者からのお礼コメント
たくさん教えてくださりありがとうございます! なんとか動きました。
お礼日時:5/20 12:03