How it’s easy to use M365 Copilot in Excel and why I love it ❤️

There was a time in my career when I’ve worked extensively in Excel. Being an Excel geek is a hard job in my opinion – especially when your colleagues know about it. 😉 Many times, I was swarmed with questions like:

  • Artur, how to parse the date values in format X?
  • Artur, this formula is not working. Please, please, help me!
  • Artur, you’re so good in Excel, please tell me how to reformat this text.

etc.

Now, when M365 Copilot was announced, I was really eager to test it out to see what’s possible. What I’ve found out? Check below!


Forget about formulas

Did you forget about how to use certain formula? Or maybe you’ve had a time, when you’ve wanted to do something in Excel, like performing a LOOKUP(), but man, you’ve been doing it so long ago and you don’t remember how to do it NOW. Fear no more with Copilot in Excel onboard 🫡:

Many times you don’t even need to do anything as Copilot can perform the task for you. Just click the Apply button:

Of course, it’s always good to understand how it was performed – just in case Copilot wouldn’t work sometimes. 😉 The tool shouldn’t make us lazy, but curious! After applying the changes, you can see a nice table with formatted dates:


Inconsistency reduces efficiency

How often did you see an Excel file with something like:

  • duplicate values;
  • the same values, but with a different formatting, e.g. Product A vs. Product a;
  • typos;

etc.

Do you know that Copilot can find these errors and help you clean the data? Here I’ve instructed it to help me find any missing data:

For my little table it’s just a matter of one look. But imagine that you have a sheet with 100000 records. Isn’t it nice to simply prompt the Copilot instead of scrolling the workbook up and down? 😉

Of course, it’s not without flaws and sometimes it doesn’t understand what we’d like to achieve:

Nevertheless, it’s a matter of time and patience to get the answer that we’d like to have (see Prompt engineering guide for help).


House of charts

Many times I’ve wasted a lot of time, when I’ve wanted to generate a nice chart in Excel. With Copilot it’s really easy to prepare a simple chart:

You can then customize it the way you want. And there’s always an option to ask Copilot on how to do something, where to find the setting etc. You can even ask questions about the data that was analyzed:

Of course, you could say: “Really? I can easily use a formula like =MAX([Sales Amount]) and I have it!”. But if you have a big file with many rows and you’re not really experienced, e.g. you’re not using shortcuts like CTRL + UP/DOWN, would it be an easy task? Definitely not! So it’ll help a lot of people who are not tech-savvy and will make their work more pleasant. 😉


Summary

I’m really amazed on how M365 Copilot in Excel is being developed and can’t wait for more updates on it. It’ll definitely be the first tool to find the information related to Excel, before searching in Google. ⭐

What do you think about the tool? Share your thoughts in the comments section!


Artur Stepniak


Links:

https://support.microsoft.com/en-us/copilot-excel

What is a preview feature in Microsoft products? 🤔


Whenever you’ve searched for something in the documentation or just wanted to learn about various Microsoft products (especially related to Copilot stuff), you’ve surely stumbled upon something like this:

What does this preview thing mean? Why is it mentioned there? How to interpret this? Let’s check out!


Number 1: preview features have additional Terms of Use

It means that when you’re using these features, you should keep in mind that there are some additional rules that apply, apart from the ones that are applied for Generally Available (GA) features. Those features could have reduced or different security, no privacy protection implemented yet etc. You can read more about the supplemental terms of use for Microsoft Power Platform preview features here:

https://www.microsoft.com/en-us/business-applications/legal/supp-powerplatform-preview


Number 2: preview features are not meant for production use

In other words: there’s a quite high risk that if you’re going to use those features in a solution deployed to production environment, it could raise problems. It’s not recommended to use them for anything apart from testing.


Number 3: preview features aren’t supported by Microsoft Support for production use

You’re not going to receive any support from Microsoft if you’re using preview features on production. However, Microsoft is eager to get your feedback on the preview functionality. If you want to test and send the feedback, then you’re good to go! 😉 Otherwise: be careful!


Number 4: preview features may have limited or restricted functionality

If you’ve stumbled upon a problem that something is not working as expected and it’s a preview feature, then you should understand that it’s natural. You need to be patient and wait for the feature to be Generally Available (GA). Microsoft often restricts that behaviour of the preview features could be changed over time, development of the feature could be discontinued etc. To put it bluntly: it’s not stable yet.


Number 5: preview features may not be available in all geographical areas

Your colleague from another company in Europe has the feature, but you don’t? No worries! Many preview features are deployed only in certain geographical areas before they become available for everyone. You should keep that in mind before thinking that it’s a sort of bug. 😊


Number 6: preview features are not completed yet

Would you like to do your laundry in an incomplete washing machine? Or drive a car with everything except the front window? Surely not! If you’re using a preview feature, keep in mind that it’s in development yet, so you could get a really nice surprise after deploying to production… 😉


Summary

So what to do with the preview features? Should we use them or not? In general, it’s good to get familiar with them in order to keep yourself in the loop, but for creating a serious solution I’d recommend to avoid them until they become generally available. You can always check when features are going to be production-ready on the release plan here:

https://releaseplans.microsoft.com/en-US/?app=Microsoft+Copilot+Studio

What do you think about preview features? Is it good that they’re available? Share thoughts in the comments section!


Artur Stepniak


Links:

https://learn.microsoft.com/en-us/dynamics365/sales/sales-previews-in-trial

What's new for Microsoft GenAI products? Let's check out!

Let’s summarize what we have from Microsoft now:
  • M365 Copilot, M365 Copilot in Excel, Power Point, Word, OneNote and other Microsoft products;
  • Copilot Studio to create a custom chatbot experience;
  • Sharepoint agent and custom Sharepoint agents to work with a Sharepoint knowledge source;
  • Custom agents created within M365 Copilot.

What we have from the functional perspective?

Technology Description
M365 Copilot, M365 Copilot in Excel etc. Agents used as assistants to various work-related tasks. Their task is to help within the context of a product.
Custom agents created within M365 Copilot Agents used to expand the functionalities of M365 Copilot and to specialize in various tasks.
Copilot Studio A tool to create and integrate custom agents with various knowledge sources.
Sharepoint agent and custom Sharepoint agents Agents to work with Sharepoint knowledge source only.


What about the licensing?

Technology Pricing Access
M365 Copilot – 30$/month (annual commitment)
– 31.50$/month (monthly)
Access to M365 Copilot and Microsoft agents in various products, like Excel, Word, Power Point etc.
Custom agents created within M365 Copilot included in the M365 Copilot license Access to creating custom agents used within the context of M365 Copilot, only from the M365 Copilot chat front-end.
Copilot Studio – 0.01$ per message (pay-as-you-go pricing)
– 200$ per 25000 messages/month (tenant-wide license, Copilot Studio User license needs to be assigned to the user separately)
– limited functionality included in the M365 Copilot license
Access to creating custom agents for various purposes and knowledge sources with the ability to publish them to many channels, like Teams, custom website, Messenger, WhatsApp etc.
Sharepoint agent and custom Sharepoint agents – included in the M365 Copilot license
– in the future: possibility to use them within Copilot Studio pay-as-you-go plan
Access to Sharepoint agent, which can answer various questions related to Sharepoint site content. It also gives the access to creating custom Sharepoint agents, which can be set in a Sharepoint library.


Which is up to what from my perspective?

Technology Purpose
M365 Copilot Help employee in many work-related tasks – creating Excel formulas, preparing slides for a meeting, assisting in writing. Should be considered first, before thinking about creating a custom agent in Copilot Studio.
Custom agents created within M365 Copilot Extend the functionalities of M365 Copilot. Should be considered first, when the user already has the license for M365 Copilot and needs some additional functionalities.
Copilot Studio Create a custom chatbot. It should be considered after we decide that M365 Copilot license is not fulfilling the requirements, e.g. it’s too expensive, doesn’t give the neccessary functionalities etc.
Sharepoint agent and custom Sharepoint agents Help with finding information in Sharepoint. It should be considered as a first option if the datasource that we’d like to use is Sharepoint. If possible, we should leverage the existing Sharepoint agent, instead of creating a custom one, unless it’s really necessary.

What about your thoughts? Share them in the comments! 🤩


Artur Stepniak


Reference:

Power Platform Licensing Guide December 2024: https://go.microsoft.com/fwlink/?linkid=2085130

https://techcommunity.microsoft.com/blog/microsoft365copilotblog/ignite-2024-sharepoint-agents-now-in-general-availability/4298746

https://www.microsoft.com/en-us/microsoft-365/copilot/enterprise#Pricing

Two ways to design your chatbot in Copilot Studio


Currently there are two main options for designing a chatbot in Copilot Studio:

  1. Using a classic approach so utilizing trigger phrases to invoke topics, adding actions to the topic and using entities to extract information from the user etc.
  2. Using generative orchestration – the model is responsible for choosing what topic to trigger, what action to invoke, etc.

What are pros and cons of each one and how to decide which one to use? Let’s see!


Classic approach

In the classic approach in chatbot settings we need to choose the Classic option:

When applied, our chatbot will use the classic way of triggering topics. For each topic we need to define so-called trigger phrases – words which will invoke the topic, when the user writes about something:

Just as an example – we have defined a topic with trigger phrases: pizzabuy.

User says: I’d like to buy a pizza.

Bot invokes the topic and performs all the actions contained in it.

The NLP model behind the chat is also able to find synonyms. In the example below I’m using a synonym for the word buy – purchase:

As you can see it’s still able to invoke the topic, even though I’m not including the word in my message. Actions like invoking a Power Automate flow or connector action need to be added to the topic flow – otherwise they won’t be invoked.

What are pros and cons of this approach?

Pros Cons
the outcome of invoking the topics is stable the conversation with the user is artificial – the same responses each time
you have more control over what will be used and what will not sometimes it’s hard to extract relevant information from the user (see: entities)
it’s quite straightforward to design the chatbot preparing trigger phrases could be hard in some cases


Generative orchestration

In the generative orchestration approach GPT model behind decides which topic or action to invoke and how to respond to the user. In the chatbot settings, we need to choose the Generative (preview):

Switching the settings changes a lot of things in chatbot design:

  1. Invoking a topic is based on its description, not on trigger phrases.
  2. You can define an action for the chatbot, such as get items from a Sharepoint list, for example, and inputs/outputs of this action can be filled by the model automatically.
  3. When testing the chatbot, it shows a conversation map, which contains information about what decisions the model has taken to answer the user.

The conversation with the chatbot starts to be more natural and straightforward. With the help of AI, you can prepare the inputs of an action without the need to fill them manually – by combining Instructions with relevant input parameters descriptions the model can easily invoke an action and return appropriate response. Here you can see an example of a chatbot, which works on a Sharepoint list as its memory:

The site address and list name were provided manually. It was able to define the ODATA filter query by itself, it only needed a bit of tweaking in the Instructions like:

  • you should only use the columns that are available to fill for your memory,

  • you should use substringof() for the filter,

etc.

That way you can design a chatbot which can communicate with various services and respond to the user with the data that it retrieved. The conversation is also more straightforward and it feels more natural to the user.

What are the pros and cons for this approach?

Pros Cons
the conversation feels natural = the user experience is better the outcome of the conversation is more random
you don’t need to configure each thing as you can rely on the model base knowledge (e.g. ODATA filter preparation) you need to test more to ensure that the outcome will be correct
you can use the GPT model freely, without the need to implement Generative answer node in the topic you need more time to prepare the descriptions for each action, and instructions for the model etc.


Summary

Which way is better to prepare a chatbot? The answer depends on particular business case and requirements. Generative orchestration definitely has brighter future as it fully utilizes the GPT model’s capabilities, but it’s not always the best approach for every solution. If the outcome of a conversation needs to be always stable and predictable, without any exceptions, then it’s better to use the classic approach. However if you are able to accept some unpredictability in the responses and you would like to fully use the GPT model’s capabilities, then generative orchestration is the way to go. What we also need to consider is, as of today, generative orchestration is still a preview feature (check out what preview features are here), so it’s not recommended by Microsoft for production workloads. To sum it up, I’ve prepared a table to illustrate the differences between each approach:

Classic Generative orchestration
uses NLP to invoke topics, run actions uses GPT model to invoke topics, run actions
the conversation is predictable and can be defined by using conditional logic the conversation is more random and the outcome sometimes could be a bit different than expected
you need to manually define each step that chatbot needs to perform to answer the user the GPT model decides what step to take to answer the user, based on provided descriptions

Did you like the article? Feel free to share your thoughts in the comments section!

Artur Stepniak


Useful links:

https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-generative-actions

https://learn.microsoft.com/en-us/microsoft-copilot-studio/nlu-boost-node

https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-entities-slot-filling