こんにちは、Maveryx
先週の課題の解決策はここで見つけることができます。
Patrick Digan (@patrick_digan) さんがあなたの論理スキルをテストする今週のチャレンジを送っていただきました。素晴らしいチャレンジを送っていただきありがとうございます、Patrickさん!
あなたは以下のようなデータセットを持っています。
Record |
A |
B |
C |
1 |
1.0 |
0.0 |
0.0 |
2 |
1.0 |
0.0 |
0.0 |
3 |
2.0 |
1.0 |
0.0 |
4 |
? |
? |
? |
あなたのタスクは、レコード4から25までの行を生成することで(1から3はこのままです)、それぞれの行に対してA、B、Cの値を計算しなければなりません。
カラムA、B、Cのレコード4から25の値を決めるロジックは以下のとおりです。
ヒント:レコードごとに値を計算する必要があります
レコード4の例:
A=2+1+0=3
B=2-1=1
C=2-1-0=1
レコード5の例:
A=3+1+1=5
B=3-1=2
C=3-1-1=1
復習が必要ですか? アカデミーで次のレッスンを復習してください。
健闘を祈ります!
できました。
あまり美しくないですが、マクロなしでもやってみました。
できました!
ToString([A])+":"+ToString([B])+":"+ToString([C])
で3つの値を一つのフィールドに結合して放り込んで、
IF [ABC]="::" THEN
ToString(
ToNumber(GetLeft([Row-1:ABC], ":"))+
ToNumber(GetPart([Row-1:ABC], ":",1))+
ToNumber(GetPart([Row-1:ABC], ":",2))
)+":"+
ToString(
ToNumber(GetLeft([Row-1:ABC], ":"))-
ToNumber(GetPart([Row-1:ABC], ":",1))
)+":"+
ToString(
ToNumber(GetLeft([Row-1:ABC], ":"))-
ToNumber(GetPart([Row-1:ABC], ":",1))-
ToNumber(GetPart([Row-1:ABC], ":",2))
)
ELSE [ABC] ENDIF
といった感じで値を分解しながら処理を行っています・・・。
できました。
できました。
Designer Cloud (Trifacta)でやってみました。さすがに無理やりになりました・・・。
美しくないのですが、マクロを使ってみました。繰り返しマクロはたぶんできないと思うので、マクロを繰り返し答えが出るまでコピペしています。
ポイントは、RANGE関数で行生成みたいなことができることでしょうか。ただ、複数行フォーミュラが新規列の過去の行を参照できない(っぽい)ので今回のように1行ずつ作っていく形になりました。惜しいなぁ・・・。
Designer Cloud(Designer Experience)でもガリガリツール置いていけばできそうですね・・・。
Designer Cloud(Designer Experience)版です。力技でもやれば答えは出せます!