본문 바로가기

large2

[365 함수리뷰] 영역에서 중복되지 않은 5개 뽑아내기 다음과 같은 리스트가 주어졌을 때, 중복되지 않은 랜덤한 값 5개를 뽑아내는 문제이다. 랜덤한 값을 뽑아내는 문제는 RAND 함수를 사용하면 되는데, 365에서는 RANDARRAY 함수로 야무지게 뽑아 낼 수 있어 소개하려고 한다. 우선 각 리스트에 랜덤한 값을 부여하는 코드는 이렇다. =LET( _tbl,HSTACK(RANDARRAY(COUNTA(C3:D9),1,0,1,0), TOCOL(C3:D9)), _tbl ) 코드 설명을 하면 리스트 영역만큼 행의 값을 주고, 열값은 1, 최소값 0, 최대값 1인 영역에 정수가 아닌 소수로 구성된 영역이 만들어 지고, 그 옆의 열에는 리스트 값을 한줄로 길게 나열하라는 의미이다. 이렇게 주어진 영역을 LET 함수에서 _tbl로 설정한다. 주어진 랜덤한값에서 5개의.. 2023. 11. 8.
[기초방] VBA 100제 #63 [ X축, Y축 최대 최소값 구하기 ] x축과 Y축의 최대 최소값을 구하는 문제이다. 단 X축에 최대값이 X축의 최대값과 Y축의 최대값이 X축에 함께 있으면 Y축의 두번째 최대값에 빨간색을 입혀야 한다. 영역의 최대 최소값은 하위프로시저를 호출하면서 작성하면 편하다 Sub find_Cell(rngAll As Range) Dim rngA As Range, rngX As Range Dim maxNum&, minNum& maxNum = WorksheetFunction.Max(rngAll): minNum = WorksheetFunction.Min(rngAll) For Each rngA In rngAll If rngA.Value = maxNum Then rngA.Font.Color = vbRed If rngA.Value = minNum Then rng.. 2023. 9. 19.