Cut celery into 1-in. chunks. In a large pot, boil celery and onion with broth, covered, until tender, 20 to 25 minutes.
Meanwhile, melt butter in a small frying pan over medium heat. Cook apple, stirring occasionally, until caramelized, about 10 minutes. Set aside.
Working in batches, ladle celery mixture into a blender and whirl until very smooth, about 2 minutes per batch. Stir in half-and-half and season with salt and pepper. Ladle soup into bowls and sprinkle with parsley, reserved apple, and cheese.