Take a Field Trip! This utility lets you analyze the fields of any object, including what percentage of the records (or a subset of your records) have that field populated. Get it for free from AppExchange.
Let me show how easy to use this tool:
1. Install from AppExchange
Follow above linked to install in a sandbox or production instance. Once installation done, you should see it in Installed Packages, from Setup | Installed Packages
2. Field Trip Tab
Click '+' tab (or URL https://xyz.salesforce.com/home/showAllTabs.jsp - change xyz to your Salesforce instance) to show All available tab and look for Field Trip tab
3. New Field Trip
Click New Field Trip button to start analyze.
Enter a Name, select the Object, and optional for criteria if you do not wish to analyze not whole records for that object. Click Save button when done.
Click Analyze button then Begin Analysis in the next screen. It may take a while for Field Trip to get the data.
You can monitor the progress from Apex Jobs (Setup | Jobs | Apex Jobs). Once done, you should get email with subject "Field Trip Processing Complete: field trip name" which contain a URL link to the to see the analyses result. The status in the Apex Jobs also will update to Completed, looks for with Apex Class = analyzeObject
5. Report It !
Create new report with report type Field Trip with Field Analyses
Add filter to the report with Field Trip: Field Trip Name equals Singapore Account (this is field trip name - see step 3 above for my sample)
You can use standard report feature such as bucket field to make it easier to read for a high level result.
If you see sample above, we have 269 fields in Account object, 103 fields of them for Singapore Account do not have any value populated, 49 fields have only 0-5% value populated. We can easily see from the report that more than 50% of field is not really used, which mean it may good to remove.
Note: if you have ETL or other SOAP API tool accessing your data with fix fields in query, you need to check with integration team, otherwise it will break the integration. Another tip, before hard delete the field, you can just remove visibility permission from field level security to all profiles.