Write a Python function `convert_to_floats(data)` that takes a list of lists as input. Each inner list contains elements that are either strings representing numbers or other non-convertible strings. The function should return a new list of lists where all elements that can be converted to floats are converted, while non-convertible elements remain unchanged.
#### Example Usage
```python [main.nopy]
input_data = [["3", "4.5", "hello"], ["1.2", "world", "7"]]
output_data = convert_to_floats(input_data)
print(output_data) # Output: [[3.0, 4.5, "hello"], [1.2, "world", 7.0]]
```
#### Requirements
- Iterate through each element of the input list of lists.
- Attempt to convert each element to a float.
- If conversion fails, keep the element as is.
- Return the modified list of lists.