Hi, I am a Microsoft user just like yourself and I will try my best to help you as much as I can today.
Step 1: Insert Merge Field Begin your mail merge as usual and insert the merge field where you want the number to appear. For example, insert the merge field by going to 'Insert' > 'Quick Parts' > 'Field...', then choose 'MergeField' and type in the name of your data field.
Step 2: Toggle Field Codes Right-click the merge field and select 'Toggle Field Codes' or press Alt + F9. This will change the display from the field result to the field code, which should look something like this: { MERGEFIELD MyNumber }.
Step 3: Edit Field Code for Formatting Add a numeric picture switch to format your number. Right-click the field code you just inserted and choose 'Edit Field…'. Add # "#,##0" at the end of the merge field code. It will look like this: { MERGEFIELD MyNumber # "#,##0" }. Unfortunately, the above code won't directly create the format you want because it's designed for Western numbering formats.
Step 4: Use a VBA Macro for Indian Number Format (Optional) To get the Indian numbering format (with lakhs and crores), you would need to use a VBA macro, as the built-in field codes do not support this format. Press Alt + F11 to open the VBA editor, insert a new module, and write a function to format the number according to the Indian numbering system. Here is a sample VBA function for custom Indian number formatting:
Function IndianCurrencyFormat(ByVal MyNumber) Dim Crores, Lakhs, Thousands, Hundreds, Temp Dim DecimalPlace, Count
ReDim Place(9) As String Place(2) = " Thousand " Place(4) = " Lakh " Place(6) = " Crore "
' Convert MyNumber to a string, trimming extra spaces. MyNumber = Trim(Str(MyNumber))
' Find the decimal place. DecimalPlace = InStr(MyNumber, ".") ' If we find decimal place... If DecimalPlace > 0 Then ' Convert the decimal portion of MyNumber to Cents. Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) ' Strip off the decimal portion. MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If
Count = 1 Do While MyNumber <> "" Temp = Right(MyNumber, 2) If Count <> 1 Then Temp = Right(MyNumber, 3) End If If Temp <> "00" Then Hundreds = Hundreds + CInt(Temp) If Count = 1 Then Temp = Temp & Place(Count) & Hundreds Else Temp = Temp & Place(Count) End If Crores = Temp & Crores End If If Count = 1 Then MyNumber = Left(MyNumber, Len(MyNumber) - 2) Else MyNumber = Left(MyNumber, Len(MyNumber) - 3) End If If MyNumber = "" Then Hundreds = "" End If Count = Count + 2 Loop
IndianCurrencyFormat = Crores End Function
Step 5: Call the VBA Function in Your Merge Field If you use the VBA macro, you need to call the macro for each number you want to format. You'll need to use the { SET } field to store the number and then call the macro with a { DOCVARIABLE } field.  Alternatively, you might consider preparing your data source with the correctly formatted numbers. You could use Excel to format the numbers in the Indian style and then use that Excel file as your data source for the mail merge.
See if that helps! Please let us know if you have any questions. Microsoft Support is available for further assistance if the issue continues.
Best regards Deeksha
Hi, I am a Microsoft user just like yourself and I will try my best to help you as much as I can today.
Step 1: Insert Merge Field Begin your mail merge as usual and insert the merge field where you want the number to appear. For example, insert the merge field by going to 'Insert' > 'Quick Parts' > 'Field...', then choose 'MergeField' and type in the name of your data field.
Step 2: Toggle Field Codes Right-click the merge field and select 'Toggle Field Codes' or press Alt + F9. This will change the display from the field result to the field code, which should look something like this: { MERGEFIELD MyNumber }.
Step 3: Edit Field Code for Formatting Add a numeric picture switch to format your number. Right-click the field code you just inserted and choose 'Edit Field…'. Add # "#,##0" at the end of the merge field code. It will look like this: { MERGEFIELD MyNumber # "#,##0" }. Unfortunately, the above code won't directly create the format you want because it's designed for Western numbering formats.
Step 4: Use a VBA Macro for Indian Number Format (Optional) To get the Indian numbering format (with lakhs and crores), you would need to use a VBA macro, as the built-in field codes do not support this format. Press Alt + F11 to open the VBA editor, insert a new module, and write a function to format the number according to the Indian numbering system. Here is a sample VBA function for custom Indian number formatting:
Function IndianCurrencyFormat(ByVal MyNumber) Dim Crores, Lakhs, Thousands, Hundreds, Temp Dim DecimalPlace, Count
ReDim Place(9) As String Place(2) = " Thousand " Place(4) = " Lakh " Place(6) = " Crore "
' Convert MyNumber to a string, trimming extra spaces. MyNumber = Trim(Str(MyNumber))
' Find the decimal place. DecimalPlace = InStr(MyNumber, ".") ' If we find decimal place... If DecimalPlace > 0 Then ' Convert the decimal portion of MyNumber to Cents. Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) ' Strip off the decimal portion. MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If
Count = 1 Do While MyNumber <> "" Temp = Right(MyNumber, 2) If Count <> 1 Then Temp = Right(MyNumber, 3) End If If Temp <> "00" Then Hundreds = Hundreds + CInt(Temp) If Count = 1 Then Temp = Temp & Place(Count) & Hundreds Else Temp = Temp & Place(Count) End If Crores = Temp & Crores End If If Count = 1 Then MyNumber = Left(MyNumber, Len(MyNumber) - 2) Else MyNumber = Left(MyNumber, Len(MyNumber) - 3) End If If MyNumber = "" Then Hundreds = "" End If Count = Count + 2 Loop
IndianCurrencyFormat = Crores End Function
Step 5: Call the VBA Function in Your Merge Field If you use the VBA macro, you need to call the macro for each number you want to format. You'll need to use the { SET } field to store the number and then call the macro with a { DOCVARIABLE } field.  Alternatively, you might consider preparing your data source with the correctly formatted numbers. You could use Excel to format the numbers in the Indian style and then use that Excel file as your data source for the mail merge.
See if that helps! Please let us know if you have any questions. Microsoft Support is available for further assistance if the issue continues.
Best regards Deeksha
Via the WIndows Control Panel, set the Region format to English (India) which will cause the digit grouping to appear as shown in the right hand dialog
Then, if you use Excel as the data source and you format the relevant data with the Comma Style format
Then in Word, go to File>Options>Advanced>General and check the box for "Confirm file format conversion on open" so that when you attach the data source to the Word document, you can check the "Show all" box to display the various methods of connecting the data source, and you then select the MS Excel Worksheets via DDE option, the relevant fields in you mail merge will display the numbers in Indian Format.
Note, unfortunately, you may find the performance attrocious and Word is quite likely to display Not Responding, but if you have enough patience, you will get what you want.
In Mail merge how can i got the comma's in the value like 22,33,000
How to show both commas and "0"s in Mail Merged fields
Word - Merging, format number and thousand separator only when necessary
ms word - Mail Merge with Multiple Fields Using Commas and 'And' - Stack Overflow
Videos
Use:
# ,0
For more on mergefield formatting, see the Mailmerge Tips and Tricks threads at:
http://www.msofficeforums.com/mail-merge/21803-mailmerge-tips-tricks.html
and:
http://windowssecrets.com/forums/showthread.php/163017-Word-Mailmerge-Tips-amp-Tricks
Thank you very much for a quick response. This is really helpfull. I just have one more question. Is there any way I can extract the data from word after the mail merge is complete to compare it against the excel. To make sure it is exactly what I needed to be. Please let me know
Thanks again :)
Hi, RK_281,
Thanks for posting in the community, according to your description, I’ve tested on my side, but I can’t reproduce your situation.
However, I found a way may be helpful to you, here are my steps:
1. Create a workbook to store the data and go to Word > Mailings > Select Receipts > Use an Existing List to use it.
2. Find where you want to insert the numbers, press CTRL + F9 to insert a Filed.Type { = # #,00.00}, and then place the cursor after the equal sign =, go to Mailings > Insert Merge Field to insert the corresponding data.
3. Press CTRL+F9 to convert the filed to normal view and press F9 to refresh and show it.
I’ve tried to change the thousand separators from [,] to [‘], or use # "###′##0.00", but the filed will get an error, I’m sorry for this.
I hope the above suggestion can help you, and please feel free to let me know if it works for you.
Best Regards,
Arck
Why are you using tick marks (aka single quotes) instead of commas for the thousand separators? It works just fine with commas, via:
# ",0.00"