Google Apps Scriptã§ã¹ãã¬ããã·ãŒãäžã®å šææ€çŽ¢ããããGASã
Google Apps Scriptã¯ã¡ããã¡ããæ°ããã¡ãœãããç¥ããªãéã«è¿œå ãããŠãããããŸãããã¡ãããäºåã«æ°æ©èœãšããŠæèŒããããã®ãã¹ã¯ãªããããæäœã§ããããã«ãåŸè¿œãã§è¿œå ãããã±ãŒã¹ããããŸãã
ãããªäžãGoogle Apps Scriptã®Relase NoteãèŠãŠããæãçµæ§ãªéã®æ°ããã¡ãœããã远å ãããŠããŸããããã®æ®ã©ã¯ããŸãèå³ããªããã®ãªã®ã§ããã2019幎4æ5æ¥ã«Spreadsheet Serviceã«ããã€ã远å ãšããŸãDataStudio Serviceãšããæ°ãããã®ãå¢ããŠãããŸãã«ä»åç»å ŽããBigQueryãšã³ãã¯ããããµãŒãã¹ã远å ãããŠããŸãã
ä»åã¯ãã®ãã¡ã®ïŒã€ã§ãããTextFinderããšããã¡ãœãããèŠãŠã¿ãããšæããŸããããã¯ã»ã«ãå šææ€çŽ¢ã眮æãããçºã®ã¡ãœããã§ãã
ç®æ¬¡
ä»å䜿çšããã¹ãã¬ããã·ãŒã
ã¹ãã¬ããã·ãŒãäžã®æäœãšããŠã®çœ®æ
çŸåšãã¹ãã¬ããã·ãŒãäžã§ã®æåã®çœ®æã¯ã以äžã®ãããªæé ã§ããããªãã¿ã ãšæããŸã
- Ctrl + Fã§æ€çŽ¢çªãåºãã
- äŸãã°å¹ŽåºŠã§èª¿ã¹ãå Žåã2014ãšå ¥ããã
- ãïžããã¯ãªãã¯ãã
- è²ã ãªæ¡ä»¶ïŒæ£èŠè¡šçŸãæ°åŒå ãŸã§èµ°æ»ãªã©ïŒããããŸããããšããããã¯ããã§æ€çŽ¢ãã¯ãªãã¯
- æ€çŽ¢ãã¿ã³ãæŒããã³ã«æ¬¡ã®ããããããã®ãã¹ãã¬ããã·ãŒãäžããæ¢ãåºããŠããžã£ã³ãããŠãããã
éåžžã«ãã£ããé«éã«åäœããã®ã§ããã£ããªãã§ãããåé¡ã¯ãããè¡ãªãã¡ãœããããªãã£ãããšãé åã§ããŒã¿ãååŸåŸã«ã©ãã«äœããããšããã³ãŒãã¯èªåã§è£ åããªããã°ãªããŸããã§ããããã¡ãããæžã蟌ã¿ã«é¢ããŠããèŠæã¯ã ãã¶åãããã£ãããã§ãããQueryã«é¢ããŠã¯Query颿°ãVisualization APIã䜿ãæããããŸãããããã¹ããµãŒãã¯ãªãã£ããã§ãããã
å³ïŒè©³çŽ°ãªæ€çŽ¢çª
èªåã§å šææ€çŽ¢ãããã¿ãŒã³
èªåãšãã£ãŠãéåžžã«ã·ã³ãã«ãªãªãã¢ãµãŒããé åã§ã¬ãããªããŒã¿ãååŸããããforã«ãŒãã§ïŒæ¬¡å é åãããŸãªããµãŒãããŠãããŒã¿ããã£ããããã®ã¬ã³ãŒããé åã«ã¶ã¡ããã ãã®ãã®ã§ããä»ã«ãè²ã ãªæ¹æ³ãããããšæããŸããããããã·ã³ãã«ã§ãã䜿ã£ãŠãŸãã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
var keyword = "2014" //äºæ¬¡å
é
åãåããŠå
šææ€çŽ¢ããã³ãŒã function fulltextsearch() { //æ¢çŽ¢çµæãæ ŒçŽããé
å var array = []; //ã¹ãã¬ããã·ãŒããååŸãã var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("database").getRange("A2:D").getValues(); var length = sheet.length; //è¡æ°ãååŸ var col = sheet[0].length; //åæ°ãååŸ var str; var pattern = new RegExp(keyword); //æ£èŠè¡šçŸãã¿ãŒã³ //é
åãåããŠæ¢çŽ¢ for(var i = 0;i<length;i++){ for(var j = 0;j<col;j++){ //é
åã®å€ãåãåºã str = String(sheet[i][j]); //æ£èŠè¡šçŸã§ãã§ã㯠var result = str.search(pattern); //è¡å
ãããŸãªãæ€çŽ¢ if(result >= 0){ //ããŒã¿ãèŠã€ãã£ããé
åã«ã¬ã³ãŒããpushãã array.push(sheet[i]) //ã«ãŒããæãã break; } } } //ãã°ã«é
åããŒã¿ãæžãåºã Logger.log(array); Logger.log(array.length + "ä»¶ãããããã"); } |
- ã«ãŠã³ã¿ãªã©ãçšæããŠããã°ããã©ãã®ã»ã«çªå°ã«ãã£ããããšãã£ããããªäºãæ®éã«å¯èœã§ãããããä»ãŸã§ã®å šã»ã«æ€çŽ¢ã ã£ãã®ã§ãããã ããã®æ¹æ³ã¯å¯Ÿè±¡ã®ã·ãŒãã®ã¿ã§æå¹ã§ãã
- ã»ã«ã®å€ãkeywordãå«ããã©ããã¯ãæ£èŠè¡šçŸã䜿ã£ãŠèª¿ã¹ãŸããsearchã§èª¿ã¹ãçµæã-1ã§ããã°å«ãŸããªãã0以äžã§ããã°å«ããšãããã®ã§ããããå ã«é åã«ã¬ã³ãŒããpushããŠããŸãã
FindTextã¡ãœããã䜿ã£ããã¿ãŒã³
FindTextã䜿ã£ãŠãããŒã¿ãæ¢çŽ¢ããŠã¿ãŸããããèªåã§è£ åããå Žåã«åãããŠãèŠã€ãã£ãè¡ã®ããŒã¿ãpushããŠè¡šç€ºããããã«èª¿æŽããŠããŸãã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//findtextã䜿ã£ãå
šææ€çŽ¢ãããã³ãŒã function findtextsearch(){ //æ¢çŽ¢çµæãæ ŒçŽããé
å var array = []; //ã¹ãã¬ããã·ãŒããååŸãã var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("database") var data = sheet.getRange("A2:D").getValues(); //findtextãµãŒã var textFinder = sheet.createTextFinder(keyword); var nendo = textFinder.findAll(); //findtextçµæãé
åã«æã¡èŸŒã for(var i = 0;i<nendo.length;i++){ //ã»ã«çªå°ãååŸããïŒèŠã€ãã£ãã»ã«ã ããååŸãããŠãïŒ var cellman = nendo[i].getA1Notation() //ã»ã«çªå°ããæ°åã®ã¿åãåºã //ã¿ã€ãã«è¡ããå§ãŸãã®ãšã0ããã«ãŠã³ãããã®ã§ã-2ãåŒããå€ãé
åã§ã®è©²åœã®è¡çªå·ã«ãªã var address = cellman.replace(/[^0-9]/g, '') - 2; //çªå°ããŒã¿ã«+1ããŠã¬ã³ãŒããé
åããpush array.push(data[address]); } //ãã°ã«ããŒã¿ãæžãåºã Logger.log(array); Logger.log(nendo.length + "ä»¶ãããããã¿ããã ã"); } |
- findtextã®å Žåã該åœã®ã»ã«ã«ã€ããŠã ãã®æ å ±ãè¿ã£ãŠããã®ã§ãnendo[i].getvalueãšãããšã2014ãšããå€ãå ¥ã£ãŠãã®ã確èªã§ããŸãã
- ãŸããgetA1Notationã§ååŸãããšã»ã«çªå°ãè¿ã£ãŠããŸããã€ãŸããã¢ã¯ãã£ãã»ã«ã«ã€ããŠæã瀺ããŠããã®ãšåãç¶æ ãªããã§ãã
- ã»ã«çªå°ããã¿ã€ãã«è¡ãšé åã¯0ããã«ãŠã³ãããäºãèãã-2ãããšã¡ããã©ãé åã®äœçœ®ãšäžèŽããã®ã§ãããæãããã«arrayã«pushãããŠããŸãã
- ãŸããä»åã¯æ¢çŽ¢ã ããªã®ã§ãtextFinder.findAll()ã§æ€çŽ¢ã ããããŸããããããã textFinder.replaceAllWith('2020')ãšãããšã2014ãå šãŠ2020ã§çœ®æããŠãããŸãã
å³ïŒãããªå ·åã«è¿ã£ãŠããŸãã
é¢é£ãªã³ã¯
- Google Apps Script ã§ã¹ãã¬ããã·ãŒãå ã®æååãæ€çŽ¢ãã TextFinder ã詊ããŠã¿ã
- Google Apps Scriptã§é åã®æ€çŽ¢ãããindexOfã¡ãœãããšlastIndexOfã¡ãœãã
- Google Apps Scriptã§ã¹ãã¬ããã·ãŒãå ãæ€çŽ¢ããŠè¡çªå·ãè¿ã颿°ïŒé«éçïŒ
- åå ã§ç¹å®ã®å€ã«äžèŽããè¡çªå·ãååŸãã
- é åãé«éã«æ¢çŽ¢ããTips
- JavaScriptã®foré床æ¯èŒãæå€ãªçµæã ã£ãã®ã§ã·ã§ã¢ããŠã¿ã
- JavaScripté åæäœé床æ¯èŒ -for vs each vs jQuery-
- [JavaScript] Array.indexOf()ã¡ãœããã¯é ã
- javascriptã§é åããªããžã§ã¯ããæäœãããæ¯èŒçãé«éã§ç°¡åã§å¹ççãªæ¹æ³ãŸãšã
- Google Apps Script Regular Expression to get the last name of a person