It is possible to do this using the QCUtil object and accessing the full OTA API functionality to find and retrieve the records that you want. The QTP documentation will tell you about accessing the QCUtil object and using it to get to the full OTA API. You'll also have to look at the OTA API documentation in ALM/QC itself for the details of how to use the functionality in the API.
Alternately, if you already have a query in an Excel report that extracts the data, you could execute that query through your QTP script. You could write code to execute the query using the Command object of a TDConnection (available as part of the OTA API), if your system allows you to use the Command object. You could probably also script execution of the query directly using ODBC or something like it, rather than the OTA API.
Without putting more effort into analyzing the details of what you're doing, I can't really say if that is the most efficient way to go about this.
In my experience, running queries to extract information is often faster than trying to get the same information by using the OTA API entity Factories. I've not done a comparison between running a query using the Command object vs. directly using query running technology. I've done these sorts of things through custom VB program, not QTP, so I don't know how that efficiency compares either.
Alternately, if you already have a query in an Excel report that extracts the data, you could execute that query through your QTP script. You could write code to execute the query using the Command object of a TDConnection (available as part of the OTA API), if your system allows you to use the Command object. You could probably also script execution of the query directly using ODBC or something like it, rather than the OTA API.
Without putting more effort into analyzing the details of what you're doing, I can't really say if that is the most efficient way to go about this.
In my experience, running queries to extract information is often faster than trying to get the same information by using the OTA API entity Factories. I've not done a comparison between running a query using the Command object vs. directly using query running technology. I've done these sorts of things through custom VB program, not QTP, so I don't know how that efficiency compares either.