I tried several excel sheets but nothing was satisfying. How do you guys solved it? Anyone got the same problem?
To make sure we're clear on the concept of FIFO (first in, first out), when you sell your currency (Bitcoin or whatever) you're using the cost basis of the first purchases you made.
So if you have all of your transactions in a spreadsheet can we assume you have the date of the purchase as well? I'd separate your Buy and Sell transactions, use separate sheets or use a column devoted to it which you can filter on. Where you've tracked your buys create a new column that allows you to mark whether you've "used" the transaction for cost basis of a sale. You can put an "X" in that column for the transaction line item when you've used it. Then link the sales to the buys. If you've owned Bitcoin for a long time it's likely that your sales will not be for as much Bitcoin as your buys were years ago. So one buy cost basis could cover several of the sales. As you check off the buy transactions that have been used for sales you can filter those transaction line items out.
It'll be tedious in Excel, but not complicated.
There's probably a software other than Excel that will do this for you, but you'll need to enter your 2000+ transactions first into that new software...perhaps it can accept an export from Excel.
Talk us through the specifics of your challenge and we can help you!