SlideShare a Scribd company logo
Custom functions
 run offline if they don’t depend on the web
 run even when the workbook is unattended (not for preview or first availability)
Math problems
=ISPRIME
Machine Learning
=FRAUDPROBABILITY
Public Web Data
=BITCOIN
Unattended
=CITYFROMPHONE
Bullet Chart
A bar chart with extra
visual elements to
provide additional
context. Useful for
tracking goals
Word Cloud
Use font size and
location to indicate text
frequency in data
Gantt
A type of bar chart
which illustrates a
schedule with resources
Chord
Graphical method of
displaying the inter-
relationships between
data in a matrix
Sankey
Flow diagram where
the width of the series
is proportional to the
quantity of the flow
Dual KPI
Visualizes two
measures over time,
showing their trend on
a joint timeline
Infographic Designer
control the specific
appearance of charts
with control of shapes,
color, layout, and the
ability to bind shapes
and images to data
Calendar
Display data distributed
over time in a
compelling and clear
style
Tachometer
A flexible gauge visual
for communicating
data against reference
scale
Tornado
Comparing the relative
importance of variables
between two groups
Bars / Gauges Relationships / Flows Timelines / Trends Image / Text
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE] [CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
1
10
100
1000
10000
100000
XLL (Baseline) VBA Web control
process
(original)
In-proc
ChakraCore
(production)
In-proc
ChakraCore
(prototype)
timefor1000Functions(ms)
Perf comparisons for synchronous custom functions
Long-running function (Find 1000th Prime)
Short-running function (Mortgage Payment)
Details
• Intel Xeon E5-1680 v4 @ 3.40GHz (8 cores)
• Measured total time for 1000 functions
• Median of 20 trials
• ChakraCore runtimes are preloaded
Test Scenarios
• Calculate the mortgage payment for a given
principal, period, and rate
• Find the 1000
th
prime number
new for JS custom functions
Ignite 2017 Build 2018
Excel for Windows desktop only Excel for Windows desktop
Excel for Mac
Excel Online (Chrome, Firefox, Edge, IE, Safari)
Async functions in a separate process Async functions in a separate process
Fast sync functions directly in Excel’s process
Registration via API (low speed, high-memory) Declarative registration (fast, low-memory)
Add-in manifest
XML
Function code
JavaScript
Web page for UI (optional)
HTML, JavaScript, CSS
+
+
Office add-in =
Function metadata
JavaScript Object
+ New
function ADDTO42(num) {
return num + 42;
}
{
name: “ADDTO42",
description: "Returns the sum of a number and 42",
result: {
type: “number",
dimensionality: “scalar",
},
parameters: [{
name: "num",
description: "The number be added to 42",
type: “number",
dimensionality: “scalar",
}],
options: {
sync: true,
}
};
New
<Hosts> <Host xsi:type="Workbook">
<AllFormFactors>
<ExtensionPoint xsi:type="CustomFunctions">
<Script> <SourceLocation resid="functionsJS" /> </Script>
<Page> <SourceLocation resid="functionsHTML"/> </Page>
<Metadata> <SourceLocation resid="fnMetadata"/> </Metadata>
<Namespace> <SourceLocation resid=“namespace"/> </Namespace>
</ExtensionPoint>
</AllFormFactors>
</Host> </Hosts>
<Resources>
<bt id="functionsJS" DefaultValue="https://example.com/cf.js" />*
<bt id="functionsHTML" DefaultValue="https://example.com/cf.html" />
<bt id="fnMetadata" DefaultValue="https://example.com/cf.json" />
<bt id=“namespace" DefaultValue=“CONTOSO" />
</Resources>
New
function invocation
return Promise
resolve Promise
HTTP request (if needed)
HTTP response
function GETWEIGHT(thermometerID){
return Excel.Promise(function(setResult, setError){
getWeightFromServer(scaleID, function(data){
setResult(data.weight);
});
});
}
function invocation
set result
streaming (eg. WebSocket sendmessage)
streaming (eg. Websocket onmessage)
streaming (eg. Websocket onmessage)
streaming (eg. Websocket onmessage)
set result
set result
function STREAMWEIGHT(scaleID, interval, caller){
function getNextWeight(){
getWeightFromServer(scaleID, function(data){
caller.setResult(data.weight);
});
setTimeout(getNextWeight, interval);
}
getNextWeight();
}
options: { stream: true }
function invocation
cancel
streaming (eg. WebSocket sendmessage)
streaming (eg. Websocket onmessage)
streaming (eg. Websocket onmessage)
unsubscribe
set result
set result
New
function INCREMENTVALUE(increment, caller){
var result = 0;
var timer = setInterval(function(){
result += increment;
caller.setResult(result);
}, 1000);
caller.onCanceled = function(){
clearInterval(timer);
};
}
options: { stream: true, cancelable: true }
var savedWeights{};
function STREAMWEIGHT(scaleID, interval, caller){
if(!savedWeights[scaleID]) refreshWeight(scaleID);
function getNextWeight(){
caller.setResult(savedWeights[scaleID]); // sends the saved value to Excel.
setTimeout(getNextWeight, interval); // wait before updating Excel again
}
getNextWeight ();
}
function refreshWeight (scaleID){
sendWebRequestExample(scaleID, function(data){
savedWeights[scaleID] = data.weight;
});
setTimeout(function(){
refreshWeight(scaleID);
}, 1000); // wait 1 second before updating the saved weight for scaleID
}
function
var 0 0 0 0
for 0
for 0
if
else if
return
parameter[0].dimensionality = "matrix";
function
var
for 1
return
result.dimensionality = "matrix";
Ignite 2017 Build 2018 Future
Excel for Windows
desktop only
Excel for Windows desktop
Excel for Mac
Excel Online (Chrome, Firefox,
Edge, IE, Safari)
All Excel platforms
Async functions in a
separate process
Async functions in a separate
process
Fast sync functions directly in
Excel’s process
Async functions in a separate and
optimized process
Fast sync functions directly in Excel’s
process
Functions can also run remotely
Sideloading for
developer deployment
Sideloading for developer
deployment
Sideloading
AppSource Deployment
Centralized Deployment
https://aka.ms/customfunctionsupdates
Add-in manifest
XML
Function code
Python
Web page for UI (optional)
HTML, JavaScript, CSS
+
+
Office add-in =
Function metadata
JSON (Swagger)
+
…
“input": {
“revenue history": {
“type": 3,
“swagger": {
“items": {
“properties": {
“date":{
“type": “string“
},
“revenue":{
“type": “number“,
“format": “double“
}
},
“type": “object“
},
…
Join the Office Developer Program
Learn more
Come hack with us - aka.ms/office365hackathon
Visit dev.office.com
See everything from Build - https://aka.ms/OfficeBuild2018
Follow us - @OfficeDev, #MicrosoftGraph, #SharePoint @MicrosoftTeams
Join community calls - Graph, AD, Outlook, Teams, Excel, and SharePoint
CODE TITLE DATE START
BRK2420 Streamline business processes with Flow and Office 365 5/7/2018 1:00PM
BRK3507 Create productive apps with Office 365 5/7/2018 2:45PM
BRK2407 Microsoft Graph: Connect to essential data every app needs 5/7/2018 2:45PM
BRK2419 Smarter data analysis with JavaScript and Azure ML functions in Excel 5/8/2018 10:30AM
BRK2403 Build the ultimate team hub with Microsoft Teams 5/8/2018 1:15PM
BRK2409
Leveraging SharePoint as a development platform for the modern
intranet
5/8/2018 4:45PM
BRK2418 New experience in Outlook 5/9/2018 2:45PM
BRK2402
Build intelligent analytics apps with Microsoft Graph and Azure
capabilities
5/9/2018 4:30PM
Smarter data analysis with JavaScript and Azure ML functions in Excel

More Related Content

Similar to Smarter data analysis with JavaScript and Azure ML functions in Excel

Introduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in RIntroduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in R
Paul Richards
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
Amazon Web Services Korea
 
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar SeriesAnnouncing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
Amazon Web Services
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
teach4uin
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
Nicolò Carandini
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
Ramon Ribeiro Rabello
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Codemotion
 
Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014
hezamu
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
Prateek Maheshwari
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Databricks
 
10 - MongoDB
10 - MongoDB10 - MongoDB
10 - MongoDB
Kangaroot
 
Deep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX PlatformDeep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX Platform
Juan Fabian
 
Guug11 mashing up-google_apps
Guug11 mashing up-google_appsGuug11 mashing up-google_apps
Guug11 mashing up-google_appsTony Hirst
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
Bruce Johnson
 
Spark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupSpark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark Meetup
Databricks
 
Knockoutjs UG meeting presentation
Knockoutjs UG meeting presentationKnockoutjs UG meeting presentation
Knockoutjs UG meeting presentation
Valdis Iljuconoks
 
Linguistic Abstraction for the Web
Linguistic Abstraction for the WebLinguistic Abstraction for the Web
Linguistic Abstraction for the Web
Eelco Visser
 
Microsoft Excel Community call 11-28-17
Microsoft Excel Community call 11-28-17Microsoft Excel Community call 11-28-17
Microsoft Excel Community call 11-28-17
Microsoft 365 Developer
 
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
Lucas Jellema
 

Similar to Smarter data analysis with JavaScript and Azure ML functions in Excel (20)

Introduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in RIntroduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in R
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
 
Atlas Php
Atlas PhpAtlas Php
Atlas Php
 
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar SeriesAnnouncing AWS Step Functions - December 2016 Monthly Webinar Series
Announcing AWS Step Functions - December 2016 Monthly Webinar Series
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
 
Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
 
10 - MongoDB
10 - MongoDB10 - MongoDB
10 - MongoDB
 
Deep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX PlatformDeep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX Platform
 
Guug11 mashing up-google_apps
Guug11 mashing up-google_appsGuug11 mashing up-google_apps
Guug11 mashing up-google_apps
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
 
Spark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupSpark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark Meetup
 
Knockoutjs UG meeting presentation
Knockoutjs UG meeting presentationKnockoutjs UG meeting presentation
Knockoutjs UG meeting presentation
 
Linguistic Abstraction for the Web
Linguistic Abstraction for the WebLinguistic Abstraction for the Web
Linguistic Abstraction for the Web
 
Microsoft Excel Community call 11-28-17
Microsoft Excel Community call 11-28-17Microsoft Excel Community call 11-28-17
Microsoft Excel Community call 11-28-17
 
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
 

More from Microsoft Tech Community

100 ways to use Yammer
100 ways to use Yammer100 ways to use Yammer
100 ways to use Yammer
Microsoft Tech Community
 
10 Yammer Group Suggestions
10 Yammer Group Suggestions10 Yammer Group Suggestions
10 Yammer Group Suggestions
Microsoft Tech Community
 
Removing Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment SuccessRemoving Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment Success
Microsoft Tech Community
 
Building mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and XamarinBuilding mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and Xamarin
Microsoft Tech Community
 
Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...
Microsoft Tech Community
 
Interactive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive CardsInteractive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive Cards
Microsoft Tech Community
 
Unlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph APIUnlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph API
Microsoft Tech Community
 
Break through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable FunctionsBreak through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable Functions
Microsoft Tech Community
 
Multiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container InstancesMultiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container Instances
Microsoft Tech Community
 
Explore Azure Cosmos DB
Explore Azure Cosmos DBExplore Azure Cosmos DB
Explore Azure Cosmos DB
Microsoft Tech Community
 
Media Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and XamarinMedia Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and Xamarin
Microsoft Tech Community
 
DevOps for Data Science
DevOps for Data ScienceDevOps for Data Science
DevOps for Data Science
Microsoft Tech Community
 
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexityReal-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Microsoft Tech Community
 
Azure Functions and Microsoft Graph
Azure Functions and Microsoft GraphAzure Functions and Microsoft Graph
Azure Functions and Microsoft Graph
Microsoft Tech Community
 
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightIngestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Microsoft Tech Community
 
Getting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AIGetting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AI
Microsoft Tech Community
 
Using AML Python SDK
Using AML Python SDKUsing AML Python SDK
Using AML Python SDK
Microsoft Tech Community
 
Mobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing MapsMobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing Maps
Microsoft Tech Community
 
Cognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detectionCognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detection
Microsoft Tech Community
 
Speech Devices SDK
Speech Devices SDKSpeech Devices SDK
Speech Devices SDK
Microsoft Tech Community
 

More from Microsoft Tech Community (20)

100 ways to use Yammer
100 ways to use Yammer100 ways to use Yammer
100 ways to use Yammer
 
10 Yammer Group Suggestions
10 Yammer Group Suggestions10 Yammer Group Suggestions
10 Yammer Group Suggestions
 
Removing Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment SuccessRemoving Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment Success
 
Building mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and XamarinBuilding mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and Xamarin
 
Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...
 
Interactive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive CardsInteractive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive Cards
 
Unlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph APIUnlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph API
 
Break through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable FunctionsBreak through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable Functions
 
Multiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container InstancesMultiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container Instances
 
Explore Azure Cosmos DB
Explore Azure Cosmos DBExplore Azure Cosmos DB
Explore Azure Cosmos DB
 
Media Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and XamarinMedia Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and Xamarin
 
DevOps for Data Science
DevOps for Data ScienceDevOps for Data Science
DevOps for Data Science
 
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexityReal-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
 
Azure Functions and Microsoft Graph
Azure Functions and Microsoft GraphAzure Functions and Microsoft Graph
Azure Functions and Microsoft Graph
 
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightIngestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
 
Getting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AIGetting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AI
 
Using AML Python SDK
Using AML Python SDKUsing AML Python SDK
Using AML Python SDK
 
Mobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing MapsMobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing Maps
 
Cognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detectionCognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detection
 
Speech Devices SDK
Speech Devices SDKSpeech Devices SDK
Speech Devices SDK
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 

Smarter data analysis with JavaScript and Azure ML functions in Excel

  • 1.
  • 2.
  • 3.
  • 4.
  • 5. Custom functions  run offline if they don’t depend on the web  run even when the workbook is unattended (not for preview or first availability)
  • 6.
  • 7.
  • 8. Math problems =ISPRIME Machine Learning =FRAUDPROBABILITY Public Web Data =BITCOIN Unattended =CITYFROMPHONE
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Bullet Chart A bar chart with extra visual elements to provide additional context. Useful for tracking goals Word Cloud Use font size and location to indicate text frequency in data Gantt A type of bar chart which illustrates a schedule with resources Chord Graphical method of displaying the inter- relationships between data in a matrix Sankey Flow diagram where the width of the series is proportional to the quantity of the flow Dual KPI Visualizes two measures over time, showing their trend on a joint timeline Infographic Designer control the specific appearance of charts with control of shapes, color, layout, and the ability to bind shapes and images to data Calendar Display data distributed over time in a compelling and clear style Tachometer A flexible gauge visual for communicating data against reference scale Tornado Comparing the relative importance of variables between two groups Bars / Gauges Relationships / Flows Timelines / Trends Image / Text
  • 14.
  • 15. [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] 1 10 100 1000 10000 100000 XLL (Baseline) VBA Web control process (original) In-proc ChakraCore (production) In-proc ChakraCore (prototype) timefor1000Functions(ms) Perf comparisons for synchronous custom functions Long-running function (Find 1000th Prime) Short-running function (Mortgage Payment) Details • Intel Xeon E5-1680 v4 @ 3.40GHz (8 cores) • Measured total time for 1000 functions • Median of 20 trials • ChakraCore runtimes are preloaded Test Scenarios • Calculate the mortgage payment for a given principal, period, and rate • Find the 1000 th prime number
  • 16.
  • 17. new for JS custom functions Ignite 2017 Build 2018 Excel for Windows desktop only Excel for Windows desktop Excel for Mac Excel Online (Chrome, Firefox, Edge, IE, Safari) Async functions in a separate process Async functions in a separate process Fast sync functions directly in Excel’s process Registration via API (low speed, high-memory) Declarative registration (fast, low-memory)
  • 18.
  • 19. Add-in manifest XML Function code JavaScript Web page for UI (optional) HTML, JavaScript, CSS + + Office add-in = Function metadata JavaScript Object + New
  • 21. { name: “ADDTO42", description: "Returns the sum of a number and 42", result: { type: “number", dimensionality: “scalar", }, parameters: [{ name: "num", description: "The number be added to 42", type: “number", dimensionality: “scalar", }], options: { sync: true, } }; New
  • 22. <Hosts> <Host xsi:type="Workbook"> <AllFormFactors> <ExtensionPoint xsi:type="CustomFunctions"> <Script> <SourceLocation resid="functionsJS" /> </Script> <Page> <SourceLocation resid="functionsHTML"/> </Page> <Metadata> <SourceLocation resid="fnMetadata"/> </Metadata> <Namespace> <SourceLocation resid=“namespace"/> </Namespace> </ExtensionPoint> </AllFormFactors> </Host> </Hosts> <Resources> <bt id="functionsJS" DefaultValue="https://example.com/cf.js" />* <bt id="functionsHTML" DefaultValue="https://example.com/cf.html" /> <bt id="fnMetadata" DefaultValue="https://example.com/cf.json" /> <bt id=“namespace" DefaultValue=“CONTOSO" /> </Resources> New
  • 23. function invocation return Promise resolve Promise HTTP request (if needed) HTTP response
  • 24. function GETWEIGHT(thermometerID){ return Excel.Promise(function(setResult, setError){ getWeightFromServer(scaleID, function(data){ setResult(data.weight); }); }); }
  • 25. function invocation set result streaming (eg. WebSocket sendmessage) streaming (eg. Websocket onmessage) streaming (eg. Websocket onmessage) streaming (eg. Websocket onmessage) set result set result
  • 26. function STREAMWEIGHT(scaleID, interval, caller){ function getNextWeight(){ getWeightFromServer(scaleID, function(data){ caller.setResult(data.weight); }); setTimeout(getNextWeight, interval); } getNextWeight(); } options: { stream: true }
  • 27. function invocation cancel streaming (eg. WebSocket sendmessage) streaming (eg. Websocket onmessage) streaming (eg. Websocket onmessage) unsubscribe set result set result New
  • 28. function INCREMENTVALUE(increment, caller){ var result = 0; var timer = setInterval(function(){ result += increment; caller.setResult(result); }, 1000); caller.onCanceled = function(){ clearInterval(timer); }; } options: { stream: true, cancelable: true }
  • 29. var savedWeights{}; function STREAMWEIGHT(scaleID, interval, caller){ if(!savedWeights[scaleID]) refreshWeight(scaleID); function getNextWeight(){ caller.setResult(savedWeights[scaleID]); // sends the saved value to Excel. setTimeout(getNextWeight, interval); // wait before updating Excel again } getNextWeight (); } function refreshWeight (scaleID){ sendWebRequestExample(scaleID, function(data){ savedWeights[scaleID] = data.weight; }); setTimeout(function(){ refreshWeight(scaleID); }, 1000); // wait 1 second before updating the saved weight for scaleID }
  • 30. function var 0 0 0 0 for 0 for 0 if else if return parameter[0].dimensionality = "matrix";
  • 32. Ignite 2017 Build 2018 Future Excel for Windows desktop only Excel for Windows desktop Excel for Mac Excel Online (Chrome, Firefox, Edge, IE, Safari) All Excel platforms Async functions in a separate process Async functions in a separate process Fast sync functions directly in Excel’s process Async functions in a separate and optimized process Fast sync functions directly in Excel’s process Functions can also run remotely Sideloading for developer deployment Sideloading for developer deployment Sideloading AppSource Deployment Centralized Deployment
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39. Add-in manifest XML Function code Python Web page for UI (optional) HTML, JavaScript, CSS + + Office add-in = Function metadata JSON (Swagger) +
  • 40.
  • 41. … “input": { “revenue history": { “type": 3, “swagger": { “items": { “properties": { “date":{ “type": “string“ }, “revenue":{ “type": “number“, “format": “double“ } }, “type": “object“ }, …
  • 42.
  • 43.
  • 44.
  • 45.
  • 46. Join the Office Developer Program Learn more Come hack with us - aka.ms/office365hackathon Visit dev.office.com See everything from Build - https://aka.ms/OfficeBuild2018 Follow us - @OfficeDev, #MicrosoftGraph, #SharePoint @MicrosoftTeams Join community calls - Graph, AD, Outlook, Teams, Excel, and SharePoint
  • 47. CODE TITLE DATE START BRK2420 Streamline business processes with Flow and Office 365 5/7/2018 1:00PM BRK3507 Create productive apps with Office 365 5/7/2018 2:45PM BRK2407 Microsoft Graph: Connect to essential data every app needs 5/7/2018 2:45PM BRK2419 Smarter data analysis with JavaScript and Azure ML functions in Excel 5/8/2018 10:30AM BRK2403 Build the ultimate team hub with Microsoft Teams 5/8/2018 1:15PM BRK2409 Leveraging SharePoint as a development platform for the modern intranet 5/8/2018 4:45PM BRK2418 New experience in Outlook 5/9/2018 2:45PM BRK2402 Build intelligent analytics apps with Microsoft Graph and Azure capabilities 5/9/2018 4:30PM

Editor's Notes

  1. 5
  2. Microsoft Build 2017
  3. 12
  4. 13
  5. 35