But that one only works for BCD (0-9).
Actually 7447 physically can accept hex values of A-F, but they display wrong images for them, see here page 3.
In my opinion, making hex-to-seven-segment decoder might be a good for education and visualization of how digital electronics work, but it is really bad idea from practical point of view - it is unnecessary complex and consumes much power in comparison to other solutions.
I recall having a PC diagnostic board back in ~1995 which was displaying error/status codes in hex (something like this), and this board used GAL chips - predecessors of CPLD.
If you have searched over internet for the solution, you might have seen a lot pfof similar projects using programmable logic or MCU-based devices like Arduino.
@dirac16 suggested another way - using parallel ROM chip, a kind of lookup table with bytes in it representing segments being on/off for respective address (input value).