Gennaio 2018
Volume 33 Numero 1
Il presente articolo è stato tradotto automaticamente.
Office - analisi dei dati, Machine Learning e Microsoft Excel
Da Saunders sulla sulla | 2018 gennaio
Richiedere un secondo preoccuparsi di Excel nel suo complesso, è uno strumento flessibile, potente e diffuso per analisi dei dati dal foglio di calcolo, elenco attività di poco utili a tutti gli altri massive 100MB modello finanziario le cartelle di lavoro in banche superiore al mondo. E di sotto di tutte le funzionalità elaborate, dietro i grafici di caratteristiche e la formattazione, il valore reale è calcolo, chiamato "Calc" internamente. Calc è ciò che consente di creare relazioni tra le celle: I modelli complessi express mediante la scrittura di formule semplici per descrivere le strutture ad albero di dipendenza tra i valori (vedere figura 1). E quindi, non appena si apporta una modifica, Calc Aggiorna i valori dipendenti in base a tali formule.
Figura 1 Calc consente di creare relazioni tra le celle
Excel fornisce tonnellate di funzioni utili da utilizzare nelle formule, dalla funzione Media essenziale (bit.ly/1Tjynwl), per le funzioni di analisi di stringhe quali la ricerca per la ricerca di sottostringhe (bit.ly/2jhcEuV), ai calcoli più complessi, come la funzione statistica TESTT (bit.ly/2ipowKE). Gli utenti al lavoro e altre funzioni di Excel da utilizzare nelle formule, e interagire con essi naturalmente per le esigenze di calcolo quotidiane. Pertanto, se si desidera fornire una funzionalità potente che non dispone già di Excel, prendere in considerazione la creazione di una funzione di Excel a tale scopo. Vedere figura 2 per un esempio: Il progetto di Contoso corp. desidera rilascia una soluzione che consente di analizzare i dati in Excel per decodificare i messaggi sleuths. È uno strumento utile per l'interruzione di codice per riconoscere i numeri primi rapidamente, in modo da Contoso graditi di disporre di una funzione ISPRIME per milioni di investigatori che già utilizzano Excel. Più avanti in questo articolo verrà visualizzato la modalità di generazione di questa funzione e altre funzionalità che necessarie per il componente aggiuntivo in Contoso.
Figura 2 la funzione di Contoso per identificare i numeri primi
Che cos'è creare?
Prima di iniziare una compilazione, considerare che non tutte le estensioni per le funzionalità di Excel devono utilizzare le formule di Excel. Per decidere se deve essere usata liberamente, è opportuno porsi questo: "La funzione necessita apportare modifiche a parte il valore di Excel che viene restituito?" In altre parole, la funzione hanno effetti collaterali? In Excel, gli utenti non si prevedono di formule per modificare un valore diverso da una cella in cui si è immesso. Tale modifica potrebbe attivare altre modifiche, ma quelli sarebbe anche il risultato delle formule autonome senza effetti collaterali. Quando si digita "= Sum ()" nella cella A1, non si prevede che vengono visualizzati in un punto nella finestra o una nuova riga da aggiungere di sotto o un numero da modificare in un database finanziario su Internet, anche se è possibile controllare tutti i comportamenti come parte di una soluzione che si compila un grafico , che può contenere funzioni e altre funzionalità.
Il tipo di soluzione che è necessario compilare per creare una funzione Excel dipende le competenze e gli obiettivi. Se si è uno sviluppatore professionista, di vendita esternamente come crittografi Contoso o compilazione per gli utenti dell'organizzazione, un componente aggiuntivo è lo strumento appropriato per soluzioni analitica dei dati in Excel, come spiegato nelle funzioni JavaScript personalizzato"in Sezione di componenti aggiuntivi di Excel." Se si è uno sviluppatore di AI o un esperto di dati per compilare modelli intelligenti per analisti dei dati da utilizzare nell'azienda, vedere la sezione "Funzioni di Azure Machine Learning" più avanti in questo articolo. E, se non si dispone di uno qualsiasi di tali competenze, Microsoft disporrà di soluzioni per l'utente in futuro.
Le funzioni JavaScript personalizzato nei componenti aggiuntivi di Excel
Componenti aggiuntivi di Excel sono disponibili strumenti che gli sviluppatori professionisti possono creare per l'estensione di Excel e interagire con i dati nelle cartelle di lavoro (bit.ly/2AUOsZk). Migliaia di componenti aggiuntivi è già disponibili e vengono tutti eseguiti tra le piattaforme di Excel, tra cui Windows, Mac, Excel Online e anche iOS. Chiunque abbia familiarità con le tecnologie Web troveranno aggiuntivi semplice, perché formulate come pagine Web: Componenti aggiuntivi eseguono HTML, JavaScript e CSS e hanno la possibilità di chiamare il server Web esterni. Soprattutto, i componenti aggiuntivi non è necessaria alcuna modifica al codice per l'esecuzione in tutte le piattaforme diverse. (Excel supporta anche altri tipi di componenti aggiuntivi, come descritto in bit.ly/2qsPfLe, ma non è possibile eseguire su piattaforme diverse o essere distribuiti all'archivio.) Figura 3 Mostra le parti principali di un componente aggiuntivo. La parte principale è il file manifest, che specifica il percorso Web del resto del componente aggiuntivo e altri metadati. Il resto del codice viene distribuito dallo sviluppatore, come con qualsiasi altra applicazione Web.
Figura 3, le parti principali di un componente aggiuntivo
Componenti aggiuntivi forniscono numerosi metodi utili per estendere Excel (vedere la documentazione all'indirizzo bit.ly/2AV47rw). È possibile aggiungere elementi dell'interfaccia utente, ad esempio i pulsanti della barra multifunzione, opzioni del menu di scelta rapida e finestre di dialogo e riquadri attività HTML. Possono interagire con le cartelle di lavoro tramite migliaia di API, ad esempio la possibilità di aggiungere e rimuovere righe, inserire e modificare i grafici e anche applicare la formattazione alle celle. E ora con la nuova versione di anteprima di funzioni personalizzate di JavaScript, è possibile estendere le formule di Excel.
Le funzioni personalizzate consentono agli sviluppatori di aggiungere qualsiasi funzione JavaScript in Excel con un componente aggiuntivo (bit.ly/2AYtNUW). Gli utenti possono quindi accedere alle funzioni personalizzate come qualsiasi altra funzione nativa in Excel (ad esempio Media). Diamo un'occhiata funzione Contoso crittografi ISPRIME Vedere modalità di scrittura (è anche possibile controllare primality utilizzando solo le funzioni di Excel, ma che è molto più difficile per la persona che richiede il calcolo):
function isPrime(n) {
var root = Math.sqrt(n);
if (n < 2) return false;
for (var divisor = 2; divisor <= root; divisor++){
if(n % divisor == 0) return false;
}
return true;
}
La funzione verifica tutti i possibili divisori fino alla radice quadrata per determinare se l'input è un numero primo, alcune righe di JavaScript. Tutta la logica effettiva è già eseguita. Ma è più da scrivere rispetto a solo la funzione stessa. Per un punto dell'estensione efficace, funzioni personalizzate necessario aspetto esattamente come quelle native. E le funzioni native hanno una serie di informazioni personalizzate. Esaminare figura 4 per un esempio con la funzione ISPRIME Crypographers Contoso: Oltre al nome della funzione stessa, Excel viene visualizzata una descrizione utile per chiarire lo scopo della funzione.
Figura 4 di funzioni personalizzate e le funzioni Native completano automaticamente durante la digitazione
È possibile visualizzare un altro esempio in figura 5. Dopo aver CONTOSO. ISPRIME è selezionata, Excel viene visualizzato il nome del parametro (in questo caso, n) per renderne più semplice selezionare gli input di destra.
Figura 5 la funzione ISPRIME Contoso
Excel.Script.CustomFunctions["CONTOSO"]["ISPRIME"] = {
call: isPrime,
description: "Determines whether the input is prime",
helpUrl: "https://example.com/help.html",
result: {
resultType: Excel.CustomFunctionValueType.boolean,
resultDimensionality: Excel.CustomFunctionDimensionality.scalar,
},
parameters: [{
name: "n",
description: "the number to be evaluated",
valueType: Excel.CustomFunctionValueType.number,
valueDimensionality: Excel.CustomFunctionDimensionality.scalar,
}],
options: { batched: false, streaming: false }
};
Entrambi questi tipi di informazioni e molto più sono fornito dallo sviluppatore nella definizione dei metadati della funzione, JavaScript come si può notare figura 5.
È possibile vedere che la descrizione è specificata come stringa, quindi è il nome di ogni parametro. Non verrà trattata qui tutti i metadati, ma è possibile visualizzare la documentazione per altre informazioni. Se si ha familiarità con il modello di componente aggiuntivo, è lecito chiedersi perché queste informazioni vengono fornite in JavaScript anziché hardcoded in modo statico in un punto, ad esempio nel file manifest. Il motivo è la flessibilità. In caso di Contoso, le funzioni di crittografia sono definiti e noto in anticipo. Ma in alcuni casi è consigliabile la possibilità di attivare diverse funzioni in situazioni diverse.
Contoso crittografi piace la semplicità della loro funzione ISPRIME, ma l'obiettivo successivo è un po' più difficile: Si desidera creare una funzione per generare numeri casuali per crittografare testo. Excel offre un'eccellente funzione RAND, ma il problema è che la funzione RAND non è ideale per la crittografia, perché i relativi valori sono pseudocasuali, generati dal livello di routine. Al contrario, i numeri generati da random.org sono sicuri da utilizzare per questo scopo, sono generati dal rumore senso. Non è certamente è valido per impostare come hardcoded di numeri casuali. Contoso deve progettare invece una funzione che può chiamare random.org per recuperare i numeri casuali tramite una richiesta HTTP. Fortunatamente, le funzioni personalizzate semplificano le richieste Web. Ecco come appare funzione RANDOM asincrona di Contoso:
function getRandom(min, max) {
return new OfficeExtension.Promise(function(setResult, setError){
sendRandomOrgHTTP(min, max, function(result){
if(result.number) setResult(number);
else setError(result.error);
});
});
}
La differenza principale tra questa funzione e ISPRIME è casuale asincrona: invece di restituire un valore in Excel, viene immediatamente restituisce una promessa di JavaScript, quindi crea un evento XMLHttpRequest (non visibile nella funzione, è il sendRandomOrgHTTP metodo) per il servizio random.org. Quindi, dopo che il servizio Web ha risposto, Contoso risolve la promessa con il numero di random.org di scrivere su una cella. Per trasferire i dati di Web in Excel è uno dei motivi principali società desiderano estendere le funzioni di Excel, in modo che Microsoft prevede che le funzioni asincrone per essere più diffusi.
Una caratteristica comune di tutte le funzioni asincrone è che hanno una certa quantità di tempo per restituire i risultati, in modo che Excel visualizzato un messaggio di calcolo # nella cella durante l'attesa per la funzione da risolvere (vedere figura 6).
Figura 6 in attesa di una funzione asincrona da restituire
In questo caso, la richiesta HTTP può completare rapidamente, in circa un decimo di secondo. Ma, se necessario, la funzione può effettuare molte chiamate e richiedere più tempo rispetto a quello da valutare. Per le funzioni personalizzate di JavaScript, il valore in JavaScript risoluzione causa la visualizzati immediatamente nella cella. Figura 7 viene illustrata una visualizzazione di Excel della stessa funzione RANDOM dopo il valore viene restituito.
Figura 7 viene restituita una visualizzazione di Excel della funzione dopo il valore casuale
Naturalmente, un componente aggiuntivo utilizzando le funzioni personalizzate può includere molte altre funzionalità, nonché: Contoso crittografi potrebbe voler creare un riquadro attività e una scheda della barra multifunzione per consentire ai clienti un facile accesso alle loro funzioni personalizzate; impostazioni per il comportamento; e indicazioni su come utilizzarle. Ad esempio l'API JavaScript potrebbe anche essere utilizzato per consentire ai clienti di crittografare l'intero foglio di lavoro di dati con un clic di un pulsante. L'elemento di cui si decide, possono essere certi che il componente aggiuntivo intero verrà eseguito tra le piattaforme di Excel senza modifiche al codice.
Esistono due modi per distribuire un componente aggiuntivo che contiene tali funzioni personalizzate JavaScript, in base al pubblico. L'archivio pubblico di Office (bit.ly/2A70L5o) è disponibile per gli utenti che dispongono di Excel, è anche disponibile un pulsante per esplorare lo Store sulla barra multifunzione di Excel. L'archivio supporta sia gratuiti e a pagamento di componenti aggiuntivi e richiede l'invio e la convalida tramite Microsoft. Tuttavia, crittografi di Contoso corp. consente di distribuire direttamente ai clienti aziendali in modo da non dover fare clic su qualsiasi per installarlo. Al contrario, fornisce ogni cliente con il file manifesto. Un amministratore IT è possibile scegliere gli utenti a cui accedere tramite il centro di amministrazione di Office 365 (vedere l'interfaccia in figura 8). Gli utenti di ottenere il componente aggiuntivo installato automaticamente.
Figura 8, la distribuzione di una funzione personalizzata in un'organizzazione
Probabilmente è stato ispirato l'errata crittografi Contoso per provare a scrivere funzioni personalizzate (utilizzare la Guida e gli esempi in aka.ms/customfunctions). Successivamente, verrà esaminato il nuovo modo per estendere le formule di Excel.
Funzioni di Azure Machine Learning
Il secondo tipo di funzione estendibili, che Microsoft ha annunciato è funzioni di Azure Machine Learning (abbreviato Azure ML). A differenza delle funzioni personalizzate di JavaScript, le funzioni di Azure ML vengono create dagli sviluppatori AI (spesso gli esperti di dati e altri esperti) per gli analisti dell'organizzazione da utilizzare. Di conseguenza, non è necessario per creare un pacchetto del componente aggiuntivo per la distribuzione di una funzione di Machine Learning di Azure.
La funzione di Machine Learning di Azure stesso è basata su un servizio che consente di calcolare o vengono stimati i valori in base a un modello di machine learning (ML). Una volta creato il modello, gli autori possano abilitarla per tutti gli utenti che hanno scelto. Quindi, ogni volta che un utente desidera eseguire la funzione, è sufficiente digitare in una cella, esattamente come per qualsiasi altra funzione di Excel. La funzione chiama un servizio Web in tempo reale nella sottoscrizione di Azure della società e restituisce il risultato in modo asincrono.
Ad esempio, un analista di marketing presso un rivenditore desidera stimare richiesta per i nuovi prodotti in diverse aree geografiche L'analista dispone di dati su tale prodotto e i mercati di destinazione in Excel. L'obiettivo è una funzione semplice che consente l'analista di previsione richiesta nei singoli mercati senza dover uscire da Excel. Figura 9 Mostra un foglio di calcolo di esempio con questo tipo di dati.
Figura 9 esempio prodotto e i dati di mercato che verranno analizzati con una funzione di Machine Learning di Azure
Un sviluppatore AI presso l'organizzazione utilizza i servizi di Azure ML (bit.ly/2nwa0WP) per creare il modello: Lei inizia la preparazione dei dati di training, in genere da un database esterno, per compilare un esperimento di Machine Learning in base alle vendite cronologiche per i nuovi prodotti. Azure Machine Learning Workbench è uno strumento che semplifica la preparazione dei dati e consente agli esperti di dati di scrivere codice Python per eseguire il training e valutare i modelli. Figura 10 è la visualizzazione Dashboard di esecuzione in Azure ML Workbench, che mostra le statistiche in un esperimento.
Figura 10 Azure Machine Learning Workbench
Una volta il modello è pronto, può essere distribuito come servizio Web nella sottoscrizione di Azure dell'organizzazione, con le autorizzazioni per il gruppo di utenti di accedervi. Anziché definire i metadati in JavaScript che viene eseguita in locale, i metadati sono definiti in un formato Swagger (API REST) viene creato automaticamente con il servizio distribuito. Tutto ciò che ha richiesto per il servizio venga visualizzato come una funzione in Excel è che l'analista in Excel disponga dell'autorizzazione per accedervi. Figura 11 vengono visualizzate le funzioni distribuite visualizzati per analisti dei dati in Excel. Analisti possono quindi eseguire normalmente la funzione. Come con le funzioni personalizzate JavaScript asincrone, nella cella viene visualizzato un messaggio di calcolo # mentre il servizio calcola il risultato.
Figura 11 le funzioni distribuite che mostra in Excel
Il futuro di Extensible funzioni di Excel
E speriamo che si tenterà di technology Preview per extensible funzioni di Excel, le funzioni JavaScript di funzioni personalizzate e componenti aggiuntivi se si è un software o un fornitore di servizi e Machine Learning di Azure se non si ha un esperto di developer o data di AI. Microsoft è in ascolto con attenzione il feedback durante l'anteprima (inviare idee per la pagina UserVoice bit.ly/2jRJQsu), oltre a informazioni dettagliate per iniziare, è necessario anche l'opportunità di forma la versione finale . Sono disponibili numerosi miglioramenti introdotti ulteriori provenienti sia di questi tipi di funzione e alcuni completamente nuove, pertanto rimanere registrati per gli annunci future.
Michael Saundersè program manager del team di Office, in cui ha compili le funzionalità di Excel per gli sviluppatori. Egli originariamente a Roma, Canada, e ha studiato gestione e analisi scientifica dei materiali Engineering nella università di Pennsylvania e Wharton. Nel tempo, Saunders sulla canta con Esoterics di Seattle e lo sviluppo di componenti aggiuntivi.
Grazie ai seguenti esperti Microsoft per la revisione dell'articolo: Yina arene, Ashvini Sharma, Sandhya Vankamamidi
Yina arene è principal program manager presso Microsoft e responsabile di Microsoft Graph. Lei richiede Office e Microsoft APIs delle tecnologie legacy e indipendente a un mondo di API di nuovo, unificato.
Ashvini Sharma è Lead Program Manager del team di Excel responsabile della Guida di orientamento e visione Analitica di Excel.
Sandhya Vankamamidi è un SR. Program Manager del team informazioni e contenuto esperienze di utilizzo. Sandhya è responsabile della progettazione e offrire un'esperienza coinvolgente per tutta la famiglia di App Bing.
Viene illustrato in questo articolo nel forum di MSDN Magazine