サンプル
著作権フリーです。コピーなどしてご自由にお使いください。
https://docs.google.com/spreadsheets/d/1Q_ZFeZvKTCQAfEPCfSylcXjro2oOY1vn369pUZh8Vkg/edit?usp=sharing
目的
日付の数秘を簡単と出せるようにすることで、
その日が持つエネルギーの認識、活用を積極的に行う。
※そもそも数秘とは?という方はこちらがわかりやすいです
https://tsuduri-illust.com/aboutmangasuhi
解説
処理を分解すると下記の5ステップになります。
- 日付をシリアル値から文字列に変換
- 文字列を1文字ずつに分割
- 1文字ずつ文字列から数値に変換
- 全ての数値を足し合わせる
- 上記の過程を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の場合は取り除く処理をしています。