If the transaction outputs associated to the public key has not been spent, then finding the funds associated with that public key will mostly be a trial and error method.
Searching in outputs
Most outputs in Bitcoin send funds to an address that is the hash of the public key. Pay-to-public-key (P2PK) is the only standard output that sends funds directly to the public key, but is rarely used. Now, I said finding funds from the outputs is a trial and error method, because you do not know what type of address is being used by the person who controls that public key. He may be using P2PKH (addresses starting with 1), P2WPKH (addresses starting with bc1) or P2SH-P2WPKH (addresses starting with 3). You would need to generate those addresses from the public key and see if it matches to that using any explorers. Also, the user might have used the uncompressed public key version to generate the P2PKH address, so you would need to search for that as well.
Moreover, if funds are controlled in multi-sig addresses, where one of the public key involved is the one you know, it is impossible to calculate the address without knowing the other public keys AND the spending condition (m-of-n).
Searching in inputs
However, if the funds are spent, the task is 'easier'. You just have to go through all the inputs of all the transactions, and check that the public key was used to satisfy unlocking condition. Most inputs will have their
scriptSig (witness data in case of SegWit) as
<sig><pub_key>. You can match the public key against the one that is mentioned in the
This is also helpful with analyzing the public key for multi-sig transaction, if that public key was involved in the spending. However, there is still a gap involved. If the public key was say used in 2-of-3 multi-sig, and the transaction was spent with the other two keys, then there is no way of knowing, whether that public key was involved in that transaction at all.