First a question: Are these truly separate files? Or are they just different sheets in the same file?
You can certainly do this with separate files (and I'll show you how down below), but then you get into all sort of problems when you start moving files around to different directories, or renaming them. It's far cleaner to manage these different sets of data as different sheets in a single file. But in case your situation doesn't allow this, here you go:
Start by getting all 3 files loaded up simultaneously in Excel. To see them all, under "View" click "Arrange All", and choose "Tiled".
A1 to A4 of your 3rd file should contain the headers that you showed above in your question:
SKU..... UPC....PRICE....QUANTITY
A2 should contain the following, which just references the first active SKU in your first file. (Change "skuprice.xlsx" to whatever the name of your first file is):
=[skuprice.xlsx]Sheet1!A2
B2 should contain the following (changing skuupc.xlsx to your 2nd file's filename):
=VLOOKUP( A2, [skuupc.xlsx]Sheet1!$A$2:$B$3, 2, FALSE )
C2 and D2 will contain the following (again, change the filename to your first file):
=[skuprice.xlsx]Sheet1!B2
=[skuprice.xlsx]Sheet1!C2
Row 2 in your new 3rd file should now look exactly like the example in your question. All that's left is to replicate these formulas downward for however many SKUs you have. Because the VLOOKUP() formula used absolute and not relative referencing, all the replicated rows will continue to point to the same table. Of course if you've named your tables ranges, you can use those names instead to make the formulas simpler and less error-prone.
Again, if you have the option to merge these 3 files as different sheets in a single file, then your life will be much easier down the road.
@Savoir-Faire: The reason your formula's getting chopped off by Y! is you have no spaces in it. Y! shortens anything that's too long without spaces. My formula got shown correctly because I spaced it out.
Cheers;
Wire