임의 데이터로 차트를 생성하고 있습니다.
Date Value 1/1/2018 123 1/2/2018 453
값을 생성하지만 항상 재 계산하지는 않습니다. RAND
의 재 계산을 억제하는 방법은 무엇입니까?
답변
짧은 대답은 “할 수 없습니다”입니다 (적어도 스크립트 없이는 안 됨). 그러나 작업이 본질적으로 과학적이지 않다면 “무작위”숫자가 필요하지 않고 예측할 수없는 숫자 만 필요합니다. (사실 기술적으로 RAND조차도 참을 생성하지 않습니다. 난수; 오히려 복잡한 알고리즘을 사용하여 … 음, 예측할 수없는 숫자를 생성합니다.)
알다시피 문제는 RAND입니다. 다시 계산합니다. 그러나 우리는 날짜로부터 “의사 난수”숫자를 생성하는 수식을 얼마든지 작성할 수 있습니다. 예를 들어, 날짜가 A 열에 있고 B 열에 “무작위 숫자”가 있다고 가정하면 다음과 같이 B2에 입력하고 필요한만큼 복사 할 수 있습니다.
=VALUE(TEXT(INT(((A2*COS(DAY(A2))*PI())-INT(A2*COS(DAY(A2))*PI()))*1000)+IF(INT(((A2*COS(DAY(A2))*PI())-INT(A2*COS(DAY(A2))*PI()))*1000)<100,WEEKDAY(A2)*100,0),"000"))
이것은 날짜의 특징을 사용하여”의사 난수 “3 자리 숫자를 생성합니다.
과도하게 복잡한 공식은 그게 전부가 아닙니다. 중요합니다. 방금 몇 가지 수학 함수를 함께 뭉쳤습니다. 다른 수학 함수를 끝없이 조합했을 수도 있습니다.
그러나 “고유하고 반복되지 않는”숫자가 필요한 경우 (예 : Zapier와 같은 플랫폼 — 실제로 필요한 것은 날짜 자체의 숫자 형식입니다.
=VALUE(A2)
… 필요에 따라 복사 .
두 수식 중 하나를 약간 변경하여 배열 수식으로 사용할 수 있습니다 (예 : 한 셀에 배치하고 전체 열 채우기).
=ArrayFormula(IF(A2:A = "", "", VALUE(TEXT(INT(((A2:A*COS(DAY(A2:A))*PI())-INT(A2:A*COS(DAY(A2:A))*PI()))*1000)+IF(INT(((A2:A*COS(DAY(A2:A))*PI())-INT(A2:A*COS(DAY(A2:A))*PI()))*1000)<100,WEEKDAY(A2:A)*100,0),"000")))
=ArrayFormula(IF(A2:A = "", "", VALUE(A2:A))
답변
Google 스크립트
도구> 스크립트 EDI tor
그런 다음 함수를 만듭니다. 기능을 버튼이나 다른 이벤트에 연결해야합니다.
숫자를 입력하려면 범위를 선택해야합니다. 그런 다음 값을 with 및 배열 배열에 넣으십시오. 행의 배열처럼 생각하세요.
다음은 제 Google 스크립트 샘플입니다.
function generateNumbers () { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var randNumberRows = [] var i; for (i = 0; i < 20; i++) { var row = [] row.push(randInt(-20,20)); row.push(randInt(-20,20)); row.push(randInt(-20,20)); randNumberRows.push(row); } var range = sheet.getRange("A2:C21"); range.setValues(randNumberRows); } function randInt(start, end) { // range is from start to end + 1 so it is inclusive r = end - start + 1 return Math.floor(Math.random() * r) + start; }
답변
오늘 밤 같은 질문을 조사하던 중 https://www.ssl.berkeley.edu/~mlampton/RandomSpreadsheet4.pdf
해당 문서의 수식을 사용하여 몇 분 안에 자신 만의 의사 난수 생성기를 만들 수 있습니다. 그러면 시드를 변경할 때만 변경되는 난수 목록이 제공됩니다.
답변
간단하고 쉬운 솔루션, 간단한 두 가지 간단한 해결 방법 :
-
Excel 사용 : Excel에서 원하는만큼 난수 생성, 복사 붙여 넣기, 완료
-
메모장 : Google 스프레드 시트에서 생성하고 메모장에 복사하여 붙여 넣은 다음 다시 복사하여 붙여 넣기 완료