2010-09-10 13 views
6

Mi piace scrivere le mie formule all'interno dei fogli di lavoro di Google Documenti. Ma spesso quello che voglio fare è molto simile a una funzione che esiste già. Ad esempio, non sono riuscito a trovare una funzione per trasformare una data (31 agosto 2010) nel giorno lessicale della settimana (martedì). Vorrei scrivere:Utilizza le formule del foglio di lavoro esistenti in una formula personalizzata in google docs/fogli di lavoro

=LexWeekDay('31-Aug-2010') 
'Tuesday' 

Chiaramente può scrivere tutti questa logica usando nucleo JavaScript, ma esiste già un normale funzione foglio chiamato WEEKDAY() che takes a date and converts into into a number representing the day of the week[0 => Sunday, 1=> Monday, etc].

Come posso accedere a questa funzione (o in genere qualsiasi funzione), che i fogli di calcolo già definiscono, dal mio script personalizzato?

+0

Possibile duplicato di [Esiste un modo per valutare una formula memorizzata in una cella?] (Http://stackoverflow.com/questions/16303680/is-there-a-way-to-evaluate-a- formula-che-è-memorizzato-in-a-cellula) –

risposta

1

Ho chiesto la stessa domanda allo Google help, ma non ho trovato una soluzione. Secondo l'utente Ahab:

Capisco la necessità. Ho espresso la stessa nel forum aiuto GAS 1 molto presto una quando il gas è diventato disponibile ma la reazione della squadra gas era non molto promettente ... :(In sostanza avremmo bisogno di una classe GAS che contiene le funzioni di foglio di calcolo consentono li utilizzano.

si noti che nel foglio di calcolo generale funzioni già virtualmente possono essere utilizzato come programmazione linguaggio funzionale, senza la necessità di scripting loro a causa di funzioni di alto livello come ArrayFormula, FILTRO , ORDINA, UNICO, ecc. Sfortunatamente non è possibile creare ad es. sostituzione di macro che ci permettono in modo rapido riutilizzo formule come ( formato pseudo-macro):

Nome: INVERSIONE Descrizione: inversa A gamma colonnare Sintassi: #INVERSE (array ) Call: #INVERSE (# 1) Eseguire: = ARRAYFORMULA (SORT (# 1; ROW (# 1); FALSO))

0

nella tua appscript personalizzato, è possibile utilizzare le formule in-built di Google foglio di calcolo in questo modo:

Diciamo che si desidera utilizzare =WEEKDAY() sulla cella A1.

Quindi, ottenere il vostro foglio di calcolo attivo come questo nella vostra funzione appscript personalizzato:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YOUR_SHEET_NAME"); 

ora, impostare la formula in questo modo:

sheet.getRange("A1").setValue("=WEEKDAY()"); 

Inoltre, se si desidera convertire 0,1 ecc. a domenica, lunedì ...quindi definire un array come questo:

var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 

e quindi utilizzare:

var dayIndex = sheet.getRange("A1").getValue(); 
Logger.log(days[dayIndex]); 

È possibile visualizzare i log utilizzando Ctrl + Invio o andando su Visualizza-> Accede editor di script stesso.

Problemi correlati