const slicedStr = str.slice(0, 9);// 先頭から9文字切り出し
ここに str が含まれているので、この行の前から
const str = record['test'].value;
str を宣言しているこれを消してはいけません。
────────────────────────────────────────────────────────────
record['number_choise'].value = slicedStr;
record['number_choise'].value = record['test'].value; // ルックアップフィールドの値
これだと[number_choise]へ、9桁に削った値を入れた後で
9桁に削る前の値を入れてしまうので
record['number_choise'].value = record['test'].value; // ルックアップフィールドの値
は消さないといけません。
────────────────────────────────────────────────────────────
全部の処理にコメント付けてみましたが、これでわかるでしょうか?
// レコード追加画面で[test]の値が変わったときに処理を開始
kintone.events.on('app.record.create.change.test', (event) => {
// これ以後 record と書いたら event.record と書いた場合と同じ扱いになる
const record = event.record;
// [test]の値を取得
const str = record['test'].value;
// 取得した[test]の値から最初の9字を切り出したものを slicedStr という定数に格納
const slicedStr = str.slice(0, 9);
// [test]の値から最初の9字を切り出したものを、[number_choise]に入力
record['number_choise'].value = slicedStr;
// 上で入力した値を基に[number_choise]でルックアップの自動取得をする
record['number_choise'].lookup = true;
// ここまでの処理を画面に反映する
return event;
});