Huh, I just ran into a similar situation last night and I ended up brute forcing it. I actually had 16 columns that I had to deal with. What I did was create measures for each column and then a calculated column that summed them all up. So, in your case you might have:
You might not need the calculated column unless you wanted to know that number for each individual. I needed it because I was computing an overall average between the 16 columns but I wanted to exclude zeros when computing that average.
It was late last night, so perhaps I just didn't have my creative thinking cap on with regard to how to solve this more elegantly...
You could do as suggested and it would work. I might consider avoiding too many "IF" statements as it might cause issues with performace in large data sets especially if you go onto to use these measures in other complex measures.
A calculated column might be easiest especially if you want to deal with more than three columns. CalColumn = MIN (MIN ( [Basketball], [Tennis] ), [Hockey] )
There may be a more elegant mathmatical way to get the smallest of more than three numbers but I also can't think of it right now.
Then your measure would be (assuming one row per person in this case):