There are many senders, and even more receivers. For instance, the first sender on the picture could have sent 1 BTC to the first receiver, 10 to the fifth, and so on... How can I determine (if it is possible) what amount sender A sent to receiver B , instead having the balance for each participant ?
How can I determine (if it is possible) what amount sender A sent to receiver B , instead having the balance for each participant ?
You pretty much can't. Often times, transactions like these are created for the purpose of making it difficult to determine which inputs are sending money to which outputs. Such transactions are called CoinJoins, so named because multiple people are joining their coins together in one transaction.
There are some techniques for determining which outputs are created by which inputs, but these techniques are not foolproof and often make assumptions that are not guaranteed. In fact, many software that make Coinjoin transactions are designed to make those assumptions non-viable and thus break such analysis so that the participants in the CoinJoin have more financial privacy.
It should be viewed as a single transaction and not who sent bitcoins to whom. On the left hand side you have the inputs to the transaction, and on the right hand side you have the outputs. In Bitcoin, you do not have the concept of account balance. Each output of a transaction is locked with a script and anyone who provides solution to that script can spend those bitcoins.
Here is an example. Let us assume you run a business and have few employees. Your business takes only bitcoins as a form of payment and at the end of the day you make provide daily wages to your employees. So you would have your customers sending bitcoins to your company's address when they use your product. You present a different address to your customers every time so as that you know which customer sent how many bitcoins and also to maintain privacy. Now when you are making payments to your employees at the end of the day, you do not have enough bitcoins earned from one customer so you have to aggregate a few transactions from many customers. That is an example of what you are seeing.
In a generic scenario, even if all the customers make payment to a single address, each transaction that your customer will send you will have a different
output index which you will have to provide when you are spending those bitcoins. So you will still have to provide multiple inputs to your transaction when making payments where one single customer transactions does not cover it.
EDIT: Also as @AndrewChow mentioned in his answer, even if this was a CoinJoin transaction (multiple people joining inputs so as to mask who sent to whom), it is still very difficult to determine which outputs are created by which inputs and this method is also not fullproof.
the left list are not the senders, these are transactions inputs and not the sender, to the right those are the outputs (receivers addresses).
Please read more about Bitcoin transactions if you're interested https://en.bitcoin.it/wiki/Transaction