If you've got SAS/ETS licensed then you could use Proc Expand and generate the missing data points instead of throwing away actual data points.
Below one way to get what you've asked for.
data have;
input CompanyID $ Year Week;
datalines;
A 2014 1
A 2014 2
A 2014 3
A 2015 1
A 2015 2
A 2015 3
A 2017 1
A 2017 2
B 2014 1
B 2014 3
B 2016 3
B 2017 1
B 2017 2
;
proc sql;
create table want as
select
CompanyID,
Year,
Week
from
(
select
*,
count(*) as n_obs_perYearWeek
from have
group by Year,Week
)
group by CompanyID
having max(n_obs_perYearWeek)=n_obs_perYearWeek
order by CompanyID, year, week
;
quit;