Mohammad Shah Miran

About author

Mohammad Shah Miran has a professional background spanning over a year at Softeko. Initially starting as an Excel and VBA writer, he authored more than 50 articles for the ExcelDemy project. Currently, Miran is engaged in the LinuxSimply project as a Linux content developer, completed over 40 articles. His analytical approach extends across various domains, including Excel, VBA, Bash scripting, Linux, data analysis, and Python programming. In his leisure time, Miran enjoys watching movies and series or listening to music.


Linux Content Developer Executive, SOFTEKO.

Lives in

Adabor, Dhaka 1207, Bangladesh.


BSc. in  Naval Architecture and Marine Engineering, Bangladesh University of Engineering and Technology (BUET).


Analytical Writing, Linux, Ubuntu, Programming Language (Python, C++, VBA,  Bash Scripting), Tools & Technologies (NumPy, Pandas, Machine Learning), AutoCAD, Microsoft Office.


  • Currently working as a Linux Content Developer Executive at SOFTEKO since May 2023.
  • VBA & Excel Content Developer Executive at SOFTEKO (November 2022 – April 2023).
  • Former Intern at Khulna Shipyard Limited. ( January 2020-February 2020).

Research & Publication

  • Design of 155 TEU Inland Container Vessel on Dhaka to Chattogram Route: As a part of my undergraduate course requirement, I along with my other two group members designed a full-fledged inland Container Ship and its associated design calculations like General Arrangement, Lines Plane, Detailed Weight Calculation, Hall Modelling, Stability Analysis, Engine, and Propulsion Design, etc.
  • A Comparative Linear Buckling Analysis of Different Isotropic Plates with and without Stiffeners for Different Boundary Conditions: The dissertation investigates modeling and linear buckling analysis of stiffened and unstiffened rectangular isotropic plates of four different types of isotropic materials for two different boundary conditions through a series of comparative studies in ANSYS 2022. The results are validated with the theoretical approach proposed by Timoshenko Gera.

Latest Posts From Mohammad Shah Miran

Excel VBA to Copy Cell Background Color (with Easy Examples)

Copying cell background color is a common task in Excel VBA, especially when working with large datasets or formatting reports. In this article, we will ...

How to Count Occurrences in a String Using Excel VBA (4 Methods)

Working with strings is a fundamental aspect of programming, and being able to count occurrences of specific characters or substrings within a string is a ...

Excel VBA for Shape Position (4 Examples)

Here's an overview of shape information that you can get with Excel VBA. How to Launch the VBA Editor in Excel Press Alt + F11 to open the ...

Excel VBA to Loop Through Files in Folder and Rename

In today's digital age, data organization, and file management is essential for efficient workflow and productivity. Like many other programming languages, VBA ...

How to Fix If VBA ‘Object Variable’ or the ‘With Block Variable’ Not Set in Excel (2 Solutions)

How to Launch VBA Editor in Excel Steps: Press Alt + F11 to open your Microsoft Visual Basic. Press Insert > Module to open a blank ...

How to Solve Overflow Error in VBA (4 Easy Methods)

Have you ever been stuck in the middle of your code where you are continuously trying to make your algorithm better but do not run eventually due to the ...

Excel VBA Select Case Like: 7 Examples

Like the other logic-based statement available in different programming languages, the Select Case statement regulates the flow of your code based on various ...

Excel VBA to Use For Loop with Two Variables

Like other programming languages, VBA allows individuals to automate tasks that would otherwise be repetitive and time-consuming. You can use it to analyze ...

How to Do Correlation and Regression Analysis in Excel

In statistical analysis, performing Correlation and Regression calculations is the popular way to analyze and predict future events. However, there are several ...

How to Create Stacked Bar Chart with Negative Values in Excel

Creating a Stacked Bar Chart is an easy way to depict your data and compare them concisely. This article can help you if you're trying to figure out how to ...

How to Use SUMIF and AND Function in Excel (2 Easy Methods)

Consider the following dataset with some order information. We'll use SUMIF with AND to comb through the data. Example 1 - Application of SUMIF and ...

How to Calculate Variance and Standard Deviation in Excel

Both Variance and Standard Deviation are popular terms in statistical analysis. Do you know Excel provides multiple opportunities to calculate those in your ...

How to Create an Automatic Schedule Generator in Excel: Easy Steps

Step 1: Prepare the Dataset Dataset Selection: Assume we have a dataset named “Project Timeline of ABC Multipurpose Bridge.” However, feel free to ...

How to Make a Decision Tree Algorithm in Excel – 3 Easy Examples

“Product Price of ABC Beverage Limited” is the sample dataset. Example 1 - Creating a Decision Tree for 4 Events Step 1: Construct Essential Shapes ...

How to Make an Effort Estimation Sheet in Excel: 4 Easy Methods

Method 1 - Using Parametric Estimation Steps: Enter the following formula in cell G5. =C5/(D5*E5*F5) Drag the Fill Handle tool to get the ...

Browsing All Comments By: Mohammad Shah Miran
  1. Reply Avatar photo
    Mohammad Shah Miran Mar 27, 2023 at 2:37 PM

    Yes AS, you are correct. The article has been revised. Thanks for noticing this and letting us know.

    Mohammad Shah Miran
    Team ExcelDemy

  2. Reply Avatar photo
    Mohammad Shah Miran Mar 27, 2023 at 12:14 PM

    Thank you PAULO GIOLO, for your query. Yes, I have just checked and found there is no issue to
    enable the secondary axis which is embedded in the PowerPoint slide. If you are missing plus sign in your chart, there is an alternate way that has been illustrated by the image below.
    Secondary Horizontal Axis
    However, if there is no secondary horizontal axis option in the Chart Elements, then follow this part of the article.
    Hope this will work for you. If you have further queries, feel free to ask.

    Mohammad Shah Miran
    Team ExcelDemy

  3. Reply Avatar photo
    Mohammad Shah Miran Mar 27, 2023 at 11:18 AM

    Thanks, MIKE M for your question. The problem you are stating indicates that the Solver could not find a solution that satisfied the optimization constraints you specified. This can happen for several reasons, including Incorrect input data, Incorrect model specification, Insufficient or incorrect constraints, Numerical instability, etc. Try to rectify those issues or if you need a more specific solution to your problem, it would be convenient if you provide your dataset. Thanks for being with ExcelDemy.

    Mohammad Shah Miran
    Team ExcelDemy

  4. Reply Avatar photo
    Mohammad Shah Miran Mar 19, 2023 at 4:59 PM

    Thank you SHASHI, for your query. I think this article might help to solve your problem.
    You can try to use this method for Conditional Formatted cells also. Further, if you have any confusion or query related to it, please let us know.

  5. Reply Avatar photo
    Mohammad Shah Miran Mar 19, 2023 at 3:03 PM

    Thank you, Jeb, for your query. You can take the API as a String value to your VBA code. Thus you don’t need to put the API value in your Excel sheet. So the existing code given in the workbook here can be modified as follows:

     Option Explicit
    Public Function Driving_Distance(startlocation As String, destination As String)
    Dim First_Value As String, Second_Value As String, Last_Value As String, mitHTTP As Object, mitUrl As String, keyvalue As String
    keyvalue = "AhFG0hk5nKCcQlk80MRaSk1ZtoYUYsX98BCLWi7p7MKZ - VrzOWptdUwsvj9D3L9F"
    First_Value = ""
    Second_Value = "&destinations="
    Last_Value = "&travelMode=driving&o=xml&key=" & keyvalue & "&distanceUnit=mi"
    Set mitHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    mitUrl = First_Value & startlocation & Second_Value & destination & Last_Value
    mitHTTP.Open "GET", mitUrl, False
    mitHTTP.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
    mitHTTP.Send ("")
    Driving_Distance = Round(Round(WorksheetFunction.FilterXML(mitHTTP.ResponseText, "//TravelDistance"), 3), 0)
    End Function

    Here we have changed the first two line of the given code. The previous code was as like:

     Public Function Driving_Time(startlocation As String, destination As String, keyvalue As String)
    Dim First_Value As String, Second_Value As String, Last_Value As String, mitHTTP As Object, mitUrl As String 

    But we have removed the third argument which represents the API value. Alternately, We declare the variable outside and put the API as a string value.

     Public Function Driving_Distance(startlocation As String, destination As String)
    Dim First_Value As String, Second_Value As String, Last_Value As String, mitHTTP As Object, mitUrl As String, keyvalue As String
    keyvalue = "AhFG0hk5nKCcQlk80MRaSk1ZtoYUYsX98BCLWi7p7MKZ - VrzOWptdUwsvj9D3L9F" 

    Now here comes to your second question. You have to create a customized Add-in to store your VBA code and therefore allow you to execute the code in any workbook. Hope you get your answer. However, if you have any further query, please let me know.

  6. Reply Avatar photo
    Mohammad Shah Miran Mar 19, 2023 at 12:07 PM

    Thank you, Hossam for your query. I am not sure whether you alter AVERAGEIF with AVERAGEIFS. If so, there should be a difference between them as AVERAGEIF deals with single criterion whereas AVERAGEIFS deals with multiple criteria. However, you can use the AVERAGEIFS function for a single criterion by specifying only one criterion range and one criterion. For example, you have a range of cells A1:A10 that contains numbers and you want to calculate the average of the cells that are greater than or equal to 5. For accomplish your task, you can use the AVERAGEIFS function like this:
    =AVERAGEIFS(A1:A10, A1:A10, ">=5")
    Further if you have any query, please let me know. Thank you.

  7. Reply Avatar photo
    Mohammad Shah Miran Mar 9, 2023 at 3:19 PM

    Thank you VIRGIAL for your query. Yes, you can use the COUNTIF function to count the number of items that have broken the Conditional Formatting threshold value. For doing this, write down the following formula in your desired cell. (eg. D11)
    =COUNTIF(D5:D10, "<12000")
    Here, D5:D10 is the data range for which you want to set your condition and 12000 is the Conditional Formatting threshold value.
    Additionally, the following image can be useful to comprehend the task.
    counting items

  8. Reply Avatar photo
    Mohammad Shah Miran Feb 27, 2023 at 4:20 PM

    Thank you, Greg Erkins, for believing in ExcelDemy.
    Use the following Macro Code to get your desired output.

     Function UrlConstructor(FName, Rng)
    FName = "http://www." & FName & ".com/"
    Dim Arr() As Variant
    ReDim Arr(Rng.Rows.Count - 1)
    For i = 1 To Rng.Rows.Count
        Arr(i - 1) = FName & Rng.Cells(i)
    Next i
    UrlConstructor = Arr
    End Function

    To aim the output, I have written the function name UrlConstructor and called friendly name and range of country code as an argument, like the picture given below.
    Url Construction From Friedly Name
    Download the Excel file for your better assistance (URL Construction from Friendly Name.xlsm). Also, let us know if you wish to learn more or have any concerns relevant to it. Good luck!

  9. Reply Avatar photo
    Mohammad Shah Miran Feb 27, 2023 at 3:53 PM

    Thank you for getting in touch with us. Based on your comment, what i understand is that you are interested in creating a schedule to track your maintenance work. I have provided an Excel file (Machine Maintenance Schedule) that outlines the different types of work you will need to perform. However, I would like to confirm whether your MNT1 and MNT2 etc. tasks are repetitive, or if they only need to be completed once every 15 days.
    If you would like to automate this process, you can incorporate a nested for loop to generate the desired output. Additionally, you can develop a sub-function to prevent repetitive values from being generated.
    Further, if you have any questions or concerns about this matter, leave your query here. We are here to help and are at your disposal.

  10. Reply Avatar photo
    Mohammad Shah Miran Dec 29, 2022 at 1:10 PM

    Hello Imran,
    Thanks for the query. What I understand from your comment is that you want to incorporate a VBA code for the formula instead of going to the formula editor. Here are my two cents which might help you in this regard. Look at the dataset attached below.

    After pressing the ALT+F11 short key to open your VBA window, paste the following code in the Module box.

    Save & Close your VBA window. Then, press F8 to open the Macro dialog box and click on Options.

    Create a shortcut key to make the process fast, Crtl+W for instance.

    Now see the output as given below.

    Hope you have got your answer. Good Luck!

    Excel & VBA Content Developer

Advanced Excel Exercises with Solutions PDF