יום שלישי, 24 במאי 2022

Finding Unique values in VBA

 

VBA  - Finding Unique values

 The problem

Suppose you have a range of cells and you want to count the number of unique values in these cells.

For example, in this picture:

                                 Pic. No.1: A range of strings

 

Using the new UNIQUE function (Excel 365, available also in VBA) will not supply us with the correct answer, since the UNIQUE function isn’t case-sensitive. It won’t recognize the differences between the three cells.


The solution: Using the Dictionary 

 I’m not going to explain the Dictionary feature in VBA.

An excellent explanation (with examples) can be found here:
https://excelmacromastery.com/vba-dictionary/

              

Before running the code, we need to add the Microsoft Scripting Runtime library by using: Tools*References in VBA’s main menu

                     Pic. No. 2: Adding the Dictionary Library (stage 1)

 

  

In the Referenced list, select the Microsoft Scripting Runtime and press: OK

  

                  Pic. No. 3: Adding the Dictionary Library (stage 2)

 

Now you can run the code:

                     Pic. No. 4: Using the Dictionary in VBA

 

As can be seen, using this technique yields the correct answer.
There are 3 unique values in the referenced cells.


Liked the post?
please give it a "Like".









 

יום חמישי, 12 במאי 2022

לוח הכפל -הדור החדש



לוח הכפל -הדור הבא

 

עד לאחרונה, הפוסטים הפופולריים ביותר בבלוג שלי היו אלו שהיו מוקדשים להסבר על יצירת לוח הכפל ב-3 שיטות שונות:

 

https://meniporat.blogspot.com/2013/07/blog-post_8817.html
)
שמוש בכתובת מעורבת(

http://meniporat.blogspot.com/2013/07/blog-post_8935.html
 (שמוש בפונקציה:MMULT )

http://meniporat.blogspot.com/2013/07/blog-post_2151.html

(שמוש בפונקציה:PRODUCT)

אבל עכשיו, כשמיקרוסופט הכניסה את פונקציות המערך הדינמי (dynamic array functions) באקסל 365, הכל יותר קל ויותר פשוט.

הטכניקות היותר מיושנות הופכות למיותרות...
"כך חולפת תהילת העולם" (Sic transit gloria mundi)


התמונה הראשונה מציגה את לוח הכפל תוך שמוש בפונקציה האהובה עלי:  SEQUENCE, פונקצית מערך דינמי שהיא חלק מפונקציות המערך החדשות באקסל 365.

הארגומנטים בתאים: Q1 ו- Q2 מאפשרים לנו להגדיר לוח כפל דינמי. אפשר להרחיב אותו או לצמצם אותו, לפי צרכיך:

אפשר, למשל, להתחיל בטבלה של 3*3, ולהרחיב בהדרגה ל: 5*5, 7*7, 10*10.... כדי להתאים את גודל הטבלה לצרכים של התלמיד שלך.

כפי שאפשר לראות, ישנן שלוש נוסחאות בתמונה:

A2 הגודל האופקי של הטבלה (מספר השורות)

B1 הגודל האנכי של הטבלה (מספר העמודות)

B2 הנוסחא שיוצרת את לוח הכפל

 

תמונה מס. 1: לוח כפל רבועי

 

אינך חייב ל"הצמד" ללוח כפל רבועי, שבו מספר השורות שווה למספר העמודות.

אפשר להשתמש באפשרות השניה:
לוח כפל מלבני, שבו הממדים האפקי והאנכי אינם זהים.

Q1 יכיל את הגודל האפקי ו Q2 יכיל את הממד האנכי.

 

 

תמונה מס. 2: לוח כפל מלבני

 

 


 

  

יום שבת, 7 במאי 2022

Another one bites the dust….

 


Another one bites the dust….


For some years now, the most popular posts on my blog were dedicated to explaining how to create the multiplication table in Excel (in Hebrew)
There are 3 posts on that subject, demonstrating 3 different methods:
https://meniporat.blogspot.com/2013/07/blog-post_8817.html
(using mixed references)

http://meniporat.blogspot.com/2013/07/blog-post_8935.html
(with the MMULT function)

http://meniporat.blogspot.com/2013/07/blog-post_2151.html

 (with the PRODUCT function)

But now, with the introduction of the dynamic array functions in Excel 365, everything is so much easier and simpler.
Alas, the old techniques are now obsolete…

“Sic transit gloria mundi” (which in Latin, means: “that is how the world’s glory vanishes”)


Consider the following multiplication table (mt) using my favourite function SEQUENCE, introduced in Excel 365.

The arguments in cells Q1 and Q2 enable you to define a dynamic mt. you can contract it or expand it according to your needs, starting, for instance, with a 3*3 mt, and then gradually increase it to 5*5, 7*7, 10*10… adapting the size to your son’s/daughter’s/pupils’ needs.

There are 3 formulae in the sheet:
A2: the horizontal size

B1: the vertical size

B2: the formula that creates the mt.

 

You don’t have to stick to the square mt, where the horizonal and vertical dimensions are identical.

You can revert to option # 2: a rectangular mt, where the horizonal and vertical dimensions are NOT identical.

So, Q1 will contain the horizontal size whereas in Q2 we will the vertical size.

See attached pictures.

                        Picture 1: The Square Multiplication Table

 

Picture 2: The Rectangular Multiplication Table

 


 

 

 


Excel can speak (English only…)

Excel can speak (English only…)

Want to hear the contents of a cell/group of cells?

Piece o’cake:

 

Step 1:
Add the “Speak Cells” icon to the QAT (Quick Access Toolbar):



 

 

 

Step 2:

Enter some data in a cell/group of cells and then press the new icon in the QAT. That’s all.

Enjoy 😊 😊 😊



 


 



 

 


יום שני, 2 במאי 2022

Three methods to find the number of sheets in a workbook

 

Three methods to find the number of sheets in a workbook

 

Today, I’m going to demonstrate three ways to find the number of sheets in a workbook. These sheets (or some of them) might be empty, so Power Query won’t be able to supply us with an answer

Please pay attention:
Since Methods 2&3 use Macros, the file must be saved as a “macro-enabled” workbook: the file suffix (extension) must be: “.xlsm” and not “.xlsx”

 

Method 1: The SHEETS() Function

The sheets() function is a built-in function in Excel.


                                          Method 1: The SHEETS() Function

 

 

 

 

Method 2: VBA Macro

The VBA Function returns the number of sheets in the workbook.
As can be seen, it can be referred to like any built-in function in Excel.


                                                 Method 2: VBA Macro

 

 

  

 

 

Method 3: Using 4.0 Macro

The GET.WORKBOOK 4.0 Macro Function returns information about the current workbook. The argument 4 – returns the number of worksheets in the workbook. Macro 4.0 functions cannot be defined as regular functions (in a cell) but must be defined, as can be seen in the picture, as a named range.

        Method 3: Using 4.0 Macro