IFTTT에서 스프레드시트 내보낼 때 날짜 타임스탬프 형식 수정

서비스 간 제휴로 편리한 IFTTT입니다만, Webhook등의 로그를 기록할 때에 스프레드시트에 타임 스탬프를 남길 때의 일시 포맷이 범용적인 것이 아니고, 스프레드시트측에서 일시로서 인식할 수 없고 그 후의 그래프화 등에 지장이 있기 때문에, 범용적으로 사용할 수 있는 일시 서식에 재기록하는 방법을 짜내었으므로 그 지견을 남겨 두고 싶습니다.

도전



IFTTT 이벤트 발생 타임 스탬프 형식 {{OccurredAt}}로 내보내는 날짜와 시간May 20, 2018 at 03:30PM스프레드 시트에서 날짜로 인식 할 수 없습니다 (DATEVALU 함수로 처리 할 수 ​​없음).

해결 방법



출력의 "at"를 경계로 날짜 부분과 시간 부분에 뺀 후에, 날짜를 GOOGLETRANSLATE 함수에 먹여 일본어로 변환May 20, 20182018年5月20日이제 눈에 띄는 스프레드시트가 날짜와 시간으로 인식되어 DATEVALUE 함수를 먹일 수 있었습니다.

수식 및 출력 예




수식
출력 예


{{OccurredAt}}
May 20, 2018 at 03:30PM

=GOOGLETRANSLATE(left("{{OccurredAt}}",find("at ","{{OccurredAt}}")),"en","ko")
2018년 5월 20일 ※1

=RIGHT("{{OccurredAt}}",len("{{OccurredAt}}")- find("at ","{{OccurredAt}}")-3)
03:30PM ※1

=DATEVALUE(GOOGLETRANSLATE(left("{{OccurredAt}}",find("at ","{{OccurredAt}}")),"en","ko"))+TIMEVALUE(RIGHT("{{OccurredAt} }",len("{{OccurredAt}}")- find("at ","{{OccurredAt}}")-3))
2018/05/20 15:30:00 ※2


※1 GOOGLETRANSLATE에 걸었을 뿐이라고 서식의 변경은 걸 수 없다.
※2 DATEVALUE, TIMEVALUE 함수에 먹이게 하는 것으로 시리얼치가 되어, 서식 설정이 가능하게 됩니다.

특정 IFTTT의 설정 수식





출력 예




{{OccurredAt}}
{{EventName}}
{{Value1}}
날짜
시간
일시


May 20, 2018 at 03:30PM
Temp_push
24.82
2018년 5월 20일
03:30PM
2018/05/20 15:30:00


{{EventName}} 및 {{Value1}}은 Webhook에서 POST하는 이벤트 이름과 JSON으로 보내는 value 정보입니다.

배경



마이크로 컴퓨터 보드의 Arduino에서 측정 한 온도를 IFTTT의 Webhook을 통해 스프레드 시트에 로깅하는 구조를 만들었습니다.
센서인 Arduino 자체에는 시간 정보가 없기 때문에 데이터를 받은 처리측에서 시간 정보를 써야 했습니다.



같은 과제를 해결하고 있는 Github의 영어 유저에 의한 다른 Ftt건물. MD 하지만 , 이것에서는 왠지 달의 영어 표기를 일시 해석하는 것이 스프레드시트의 일본어 환경에서는 할 수 없기 때문에 , 고고의 책으로서 번역 함수이다 GOOGLETRANSLATE를 쓰면 해결할 수 있었다. 라고 하는 배기적인 해결 방법입니다.
성공했을 때 조금 웃어 버렸다.

주의점



번역 함수라는 애매한 구조를 이용하고 있기 때문에 이용은 자신의 판단으로 부탁드립니다.
로그에 수식이 들어가고 있다는 기분 나쁨은 있습니다만 실시간으로의 가용성 중시로 이 형태가 되고 있습니다.
적절하게 수식을 제거하는 처리를 하면 좋을까.

p.s. 처음 Qiita 게시했습니다.

좋은 웹페이지 즐겨찾기