I'm not sure what you exactly want to do, because below query:
select * from Bill where empid in(values of id from data grid view )
will fetch only records which are equal, but not duplicated. If this is your intension, try to use below query in MS SQL Server Management Studio to see result:
SELECT *
FROM (
SELECT 'Excel' AS [Source], [ID], [MONTH], [BILL]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=E:\Example.xls', 'SELECT * FROM [Sheet1$]')
UNION ALL
SELECT 'SQL Server' AS [Source], [ID], [MONTH], [BILL]
FROM Bill)
ORDER BY [ID], [MONTH], [Source]
An extra
[Source]
field is to identify the source of data.
Is that what you want do to in VB.NET code?