Hi Jeff
Thanks for providing the XLSForm.
One suggestion would be to add a select_one that prompts the user to specify if they have the old meter number OR the address. Based on the response, the user is prompted to enter the known value into another question (using relevant to present the applicable question). Then use an if statement to calculate oldmeternum: if user enters an old meter number, use this value; otherwise use pulldata to look up the meter number using the entered address. Your existing pulldata calculations should then work as normal. Please see an example attached.
If you do not wish to store these additional questions as fields in the feature service, use the 'null' option in the bind::esri:fieldType column.
This assumes one address has only one meter, and vice versa. The pulldata function is essentially a text lookup, so the user would have to enter the address or old meter number exactly as it appears in the CSV for it to get a match.
One way to ensure the old meter number or address is entered correctly would be to use select_one for these questions using the 'autocomplete' appearance so the user can filter/select from a drop-down list. The values would have to be added to the choices tab; if you have a very long list of addresses/meter numbers this might not be practical and may affect performance, in which case an external select might be useful (see Cascading and external selects—Survey123 for ArcGIS | ArcGIS for more info).
Jim