LoginSignup
0
0

数秘術を自動計算するGoogleスプレッドシート(標準関数のみ)

Posted at

サンプル

著作権フリーです。コピーなどしてご自由にお使いください。
https://docs.google.com/spreadsheets/d/1Q_ZFeZvKTCQAfEPCfSylcXjro2oOY1vn369pUZh8Vkg/edit?usp=sharing

目的

日付の数秘を簡単と出せるようにすることで、
その日が持つエネルギーの認識、活用を積極的に行う。

※そもそも数秘とは?という方はこちらがわかりやすいです
https://tsuduri-illust.com/aboutmangasuhi

解説

処理を分解すると下記の5ステップになります。

  1. 日付をシリアル値から文字列に変換
  2. 文字列を1文字ずつに分割
  3. 1文字ずつ文字列から数値に変換
  4. 全ての数値を足し合わせる
  5. 上記の過程を1桁 or ゾロ目になるまで続ける

1. 日付をシリアル値から文字列に変換

=TEXT(A2,"yyyyMMdd")
input: 2023/11/14
output: "20231114"

2. 文字列を1文字ずつに分割

=SPLIT(REGEXREPLACE(【1のoutput】,"","_"),"_")
input: "20231114"
output: ["2","0","2","3","1","1","1","4"]

REGEXREPLACEで各文字の間に "_" を付与することで、SPLITできるようにしています。

3. 1文字ずつ文字列から数値に変換

=ARRAYFORMULA(VALUE(【2のoutput】))
input: ["2","0","2","3","1","1","1","4"]
output: [2,0,2,3,1,1,1,4]

2の結果が配列になっているので、VALUEのみだと先頭の文字しか返ってきません。
そのため、ARRAYFORMULAを用いて各要素にVALUEを適用しています。

4. 全ての数値を足し合わせる

=SUM(【3のoutput】)
input: [2,0,2,3,1,1,1,4]
output: 14

全てを足し合わせます。

5. 1桁 or ゾロ目になるまで続ける

4の結果がゾロ目になるまで、1~4を繰り返す必要があります。
ただし、4の結果は最大でも2桁なのでもう一度のみ繰り返せば良いです。

4の結果は複数回参照するので、別のセルでゾロ目かどうか判定する数式を用意します。
2桁のゾロ目のパターンは11,22,33のいずれかなので、11で割った余りが0かどうかで判定できます。
=IF(MOD(C2,11)=0,TRUE,FALSE)
input: 14
output: FALSE

その後、ゾロ目では無く2桁の場合のみ、最後1~4を行います。
=IF(OR(【4のアウトプット】<10,【ゾロ目か】=TRUE),【4のアウトプット】,VALUE(REGEXREPLACE(TEXT(SUM(Arrayformula(VALUE(SPLIT(REGEXREPLACE(TEXT(【4のアウトプット】,"00"),"","_"),"_")))),"0"),"0$","")))
input: C2=14,D2=FALSE
output: 5

よく見ると、REGEXREPLACE(足し合わせた結果,"0$","")という処理が入っています。
これは、4のアウトプットを足し合わせると10になる場合(19,28,37)は1として出力したいので
足し合わせた結果の末尾が0の場合は取り除く処理をしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0