There is no direct connection from Croydon to Soho. However, you can take the train to Balham Underground Station then take the Tube to Leicester Square Underground Station. Alternatively, London Buses operates a vehicle from Croydon to Soho every 30 minutes. Tickets cost $3 and the journey takes 50 min.
From West Croydon train to Balham Underground Station then Tube to Leicester Square Underground Station. 45 min £6. From West Croydon Bus Station night bus to Piccadilly Circus. 50 min £2. From Croydon taxi to Soho. 24 min £47. From Croydon drive to Soho. 24 min £2. From Croydon rideshare to London. 40 min £3. From Croydon Uber to Soho. 24 min £26.