Following is a response from DHS Senior Research Associate, Lindsay Mallick:
Thank you for your inquiry. In order to calculate PNC for the woman and match table 8.21, you must use both the responses to s460_1 and m51_1. The variable m460_1 pertains only to women who delivered in a health facility whereas m51_1 applies to women delivering at home or who had a check after they left the hospital. Here is some code to help:
*create weight
gen wt = v005/1000000
*reduce data file to women with a birth in the last five years
keep if v208 !=0
*PNC for those who delivered in a health facility
recode s460_1 (100/202 =3 "pnc within 2 days") (203/305= 2 "pnc 3-41 days") (306/400 = 1 "42 days or more") (900/1000 =9 "dk") (else=0 "no pnc") , gen(pnctime_hf)
*PNC for those who delivered at home or who had a check after they left the facility
recode m51_1 (100/202 =3 "pnc within 2 days") (203/305= 2 "pnc 3-41 days") (306/400 = 1 "42 days or more") (900/1000 =9 "dk") (else=0 "no pnc") , gen(pnctime_home)
*PNC in 2 days for all women
gen pnc2d = 0
replace pnc2d = 1 if pnctime_hf ==3 | pnctime_home ==3
tab pnc2d [iw=wt]