The Portugal captain, who has been struggling with minor injuries in recent weeks, limped out of Wednesday's 1-1 draw at Real Valladolid with an apparent thigh strain.
With the Champions League final against Atletico Madrid on May 24 looming, it had been decided not to risk aggravating the injury, Ancelotti told a news conference.
"Cristiano Ronaldo is not playing tomorrow because he is not at 100 percent and I prefer not to take risks," Ancelotti said.
Real need a win in Vigo to keep alive their faint hopes of pipping leaders Atletico and second-placed Barcelona to the title.
With two games left, Atletico have 88 points, Barca 85 and Real 84 in third after consecutive draws that look to have wrecked their chances of a treble of Champions League, La Liga and King's Cup.
Atletico host Malaga on Sunday and Barca play at Elche and the top two meet at Barca's Nou Camp stadium on the final day of the season next weekend.
"We have to beat Celta and hope because in this league there have been a lot of surprises and there could be more," Ancelotti said.
"We will try to do our best because at this point there is nothing decided in mathematical terms."
- Sports & Recreation
- Real Valladolid
- Atletico Madrid
- Cristiano Ronaldo
- Raphael Varane
- Dani Carvajal