728x90
목차

1. 그래프에서 추세선 보기

2. 선형예측 방정식

3. 선형 예측 함수(SLOPE, INTERCEPT, CORREL)

 
인자 두개의 관계를 구하는 함수로는 대표적으로 LINEST가 있습니다.
(엑셀(EXCEL) Linest 함수와 추세선 그래프 상관성(R2) 데이터 분석하기)
배열함수가 다루기 어려울 수도 있어 선형성만 따로 보는 방법이 있습니다.
 

320x100

 
 

1. 그래프에서 추세선 보기

 
선형예측 추세선을 그리는 방법을 알아보겠습니다.
 
① 분산형 그래프를 그립니다.
(X,Y 데이터가 따로 들어가는 분산형 그래프에서 추세선을 그려야 정확합니다.)
② 추세선을 그리는 것은 "표선택" - [상단 매뉴] - [챠트 디자인] - [차트 요소 추가] - [추세선] - [선형 예측] 에 있습니다.
③ 데이터를 따라가는 추세선을 그려집니다.
 

추세선 표시하는 법

 

 
 

2. 선형예측 방정식

 
선형예측 모델의 방정식이 표에 표시됩니다.

이 때 표시되는 값는 y = ax + b 형식의 식과 결정 계수 혹은 RMS 값이라고 불리는 R2가 있습니다.
추세선 서식에서 이 값을 차트에 표시할 것인지 설정할 수 있습니다.
추세선을 "선형 회귀선"이라고 부를 수 있는데, 이 선의 기울기인 "a"와 절편인 "b"가 있으면 분석이나 예측이 가능합니다.
그리고 결정계수 R2는 X와 Y가 얼마나 관련이 있는지 이 "a,b"값을 얼마나 믿을 수 있는지를 나타냅니다.
1이면 같은 그래프 수준의 신뢰도를 가지고 0이면 전혀 믿을 수 없습니다.
기대하고 있는 정밀도 수준에 따라 다르겠지만, 0.95이상이면 믿을만 하고 0.7이하면 데이터를 예측할 수 없습니다.

 

설정하기

 
 

3. 선형 예측 함수

 
예측 방정식을 표시하는 함수가 있습니다.
기울기를 나타내는 SLOPE, 절편을 나타내는 INTERCEPT, 상관계수를 나타내는 CORREL입니다.
추세선에선에서는 결정계수 R2로 나타납니다. 이건 Linest 함수로 구할 수 있습니다.

 

Y = a X + b
Y = "SLOPE" X + "INTERCEPT"

 
SLOPE(known_y's, known_x's) : 선형 회귀선의 방정식상의 기울기를 구합니다. 주어진 값의 그래프 범위에서 Y변화 / X변화로 추가적인 DATA가 주어질 경우 변할 수 있습니다.

  • known_y's : 종속 데이터 요소의 셀 배열 또는 범위입니다.
  • known_x's : 독립 데이터 요소의 집합입니다.

 
INTERCEPT(known_y's, known_x's) : 형 회귀선의 방정식상의 절편을 구합니다. 이는 y=ax+b 형식의 선형 회귀방정식에서 x=0일 때의 값이 됩니다.

  • known_y's : 관측값이나 데이터의 종속 변수 집합입니다.
  • known_x's : 관측값이나 데이터의 독립 변수 집합입니다.

 
CORREL(array1,array2) : 두개의 데이터 집단의 상관계수를 반영합니다. 양수관계의 경우에는 1, 음수관계의 경우에는 -1에 가까울수록 관련이 깊은 DATA입니다. 0에 가까울 수록 두 데이터 집단은 상관이 없습니다.

  • array1 : 셀 값의 범위입니다.
  • array2 : 셀 값의 두 번째 범위입니다.
  • 1에 가까울수록 상관성이 올라가기는 하지만 추세선이나 LINEST와 다른 방법으로 계산하여 값이 다릅니다.
  • 범위를 A(인자 a, 평균 Ā), B의 상관인자를 구하는 방법은 아래와 같습니다.

상관계수 CORREL

반응형
728x90
목차

1. PixelSearch - 색상을 기준으로 픽셀을 찾습니다.

2. PixelGetColor - 픽셀의 색상을 읽어서 반영합니다.

 

오토핫키에서 화면에서 특정 색상으로 이벤트를 지정할 수 있습니다.

작은 아이콘이나 매뉴버튼을 검색하기 위해서 사용할 수 있습니다.

게임 메크로를 작성하실 때는 고유 유니크 아이템을 찾기 위해서도 쓸 수 있습니다.

(보라색이나 황금색같이 최주요 아이템에만 사용하는 색상이 있는 경우에 유용합니다.)

 

320x100

 

 

1. PixelSearch - 색상을 기준으로 픽셀을 찾습니다.

 

PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Mode] : 색상으로 픽셀을 찾아줍니다.

PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation] : 2.0버전에서 Mode가 생략되었습니다.

 

  • OutputVarX, OutputVarY : 찾을 이미지의 좌표가 저장되는 변수를 지정합니다.
  • X1, Y1 : 찾기를 시작할 위치입니다.
  • X2, Y2 : 찾기를 끝낼 위치입니다.
  • ColorID: 찾을 색상 값을 16진수로 써주시면 됩니다. 기본값이 RGB가 아닌 BGR 순서로 써주셔야 합니다.
    (2.0 버전에서는 RGB가 기본입니다.)
  • [Variation] : 색상의 허용 오차값입니다. (정확히는 음영의 허용정도) 쉐이딩에 허용값으로 0~255로 입력이 가능하고 255는 모든 쉐이딩을 허용합니다.
  • [Mode] : MODE는 매개변수입니다.
                - Fast : 화면을 줄단위로 검색하여 속도와 CPU 사용양을 매우 절약합니다.
                - RGB : 사용하는 색상을 RGB 형식으로 변경합니다.
  • 2.0버전에는 MODE가 생략되고 RGB가 기본형식으로 변경되었습니다.

 

스크랩트에 실행되는 그 때 화면위에 있어야 합니다.

다른 창에 가려지거나 깜빡깜빡거리는 이미지에서는 검색이 잘 안될 수 있습니다.

 

 

2. PixelGetColor - 픽셀의 색상을 읽어서 반영합니다.

 

PixelGetColor, OutputVar, X, Y , [Mode] : 1.0버전입니다. 픽셀의 색상을 읽어서 반영합니다.

PixelGetColor(X, Y [, Mode]) : 2.0버전입니다. 명령어 자체 Return 값을 반환합니다.

 

  • OutputVar : 색상값을 저장하는 변수입니다.
  • X: 색상 값을 가져올 x 좌표
  • Y: 색상 값을 가져올 y 좌표
  • Mode : 매개변수 입니다. 세 가지 옵션이 있습니다.
              - ALT : 대체방법을 사용해서 색상을 추출하는데 보호되는 영역에 있어 색을 추출하기 어려울 때 사용합니다.
                         약간 느려집니다.(공식 홈페이지에서는 10% 정도라고 이야기 합니다.)

              - SLOW : 정상방법보다 3배 더 시간을 사용하지만 색상을 잘 추출합니다. ALT로도 색상을 추출할 수 없을
                            경우에 사용할 수 있습니다.

              - RGB : 컬러의 기본은 BGR인데 이걸 RGB로 변경합니다. 2.0버전에는 RGB가 기본이고, 이 속성이 없습니다.

 

(예시)

PixelGetColor, aa, 100, 100, RGB

msgbox, %aa%

추출한 색상

 

0x(색상코드) 6자리 색상 코드로 출력합니다.

완전히 투명한 창위에서는 뒤에 픽셀의 색상을 읽습니다.

투명도가 있는 경우에는 보이는 색상으로 값을 불러 옵니다.

 

 

 

반응형
728x90
목차

1. ImageSearch - 이미지 찾기

2. 적용 가능한 매개변수

3. 예시 코드

4. 인식성능

 

오토핫키에서 메크로를 보다 향상시켜서 마우스나 키보드를 컨트롤 하면 기준점이 중요합니다.

어디에 커서가 있고 창이 있는지가 매우 중요합니다.

게임이나 작업환경에서 반복적인 아이콘을 찾아주는 기능이 있습니다.

개체의 이미지를 기준으로 위치를 찾아주는 ImageSearch에 대해서 알아보겠습니다.

 

320x100

 

1. ImageSearch - 이미지 찾기

 

ImageSearch &OutputVarX, &OutputVarY, X1, Y1, X2, Y2, ImageFile : 이미지를 찾아 위치를 표시합니다.

 

  • &OutputVarX, &OutputVarY : 찾을 이미지의 좌표가 저장되는 변수를 지정합니다.
  • X1, Y1 : 찾기 시작할 위치입니다.
  • X2, Y2 : 찾기 끝낼 위치입니다.
  • ImageFile : 이미지 파일의 이름이나 경로를 입력합니다. 같은 폴더에 있는 경우에는 이름만 입력해도 됩니다.
  • GIF, JPG, BMP, ICO, CUR, ANI를 기본적으로 인식합니다. 운영체계에 따라서 다른 확장자도 사용할 수 있습니다.

 

X1,Y1에서 부터 X2,Y2가 됩니다.

0,0에서 A_ScreenWidth, A_ScreenHeight으로 하면 화면 전체를 검색합니다.

범위내의 이미지를 찾습니다.

 

 

 

2. 적용 가능한 매개변수

 

ImageFile 앞에 매개변수를 적용할 수 있습니다.

 

  • *icon(N) : 파일이름이 아닌 따로 지정해둔 아이콘 그룹을 사용합니다. (예 : *icon2, 아이콘 그룹 2번으로 검색합니다.)
  • *(n) : 색에 대한 민감도를 조절합니다. 색이 약간 쉐이딩 변형된 경우를 받아들이는데 0~255까지 입력할 수 있고 숫자가 클수록 둔해집니다. 255가 되면 모든 색상의 쉐이딩을 무시하고 형태만으로 검색합니다.
  • *Trans(N) : 무시할 색상을 지정합니다. 주로 배경색을 지정하는 White와 Black이 많이 사용됩니다. 색코드를 써도 됩니다. (예 : *TransWhite 혹은 *TransAB2518 혹은 *Trans0xAAFF00)
  • *w(N)와 *h(N) : 이미지의 크기를 지정합니다. 기본적으로 소형 아이콘 크기로 조정해서 형태가 같은 그림을 찾습니다. 하지만 크거나 작게 변경해서 이미지를 추적하는 성능을 변경할 수 있습니다. -1은 자동 변화입니다.
    (예 : *w300 *h-1 너비(w)는 300이고 높이(h)는 거기에 맞춰서 자동으로 변경합니다.)

예시 : ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, *2 *TransWhite *w100 *h-1 그림.bmp

 

 

3. 예시 코드

 

(예시)

같은 폴더의 그림 1.png를 찾아서 좌료를 출력하게 합니다.

ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *TransWhite 1.png
msgbox, %FoundX% " %FoundY%
return

(결과)

 


4. 인식성능

 

생각보다는 잘 인식이 되지 않습니다. 매개변수를 잘 활용해서 최적화 해야 합니다.

같은 폴더에 넣고 할 때가 오류가 적은 것 같습니다.

그리고 개인적인 생각은 BMP 확장자가 가장 잘 인식되는 것으로 보입니다.

 

그래도 최적화가 어려운게 요즘 게임들은 날씨/시간에 따라 쉐이딩이 다르고, 다양한 아이콘이 지원됩니다. 

또 패치등을 통해서 수시로 변경되기 때문에 열심히 짜둔 메크로가 무용지물이 되기도 합니다.

메크로를 작성할 때는 얼마나 오래 쓸지도 고려해야 하더라고요.

 

반응형
728x90

문장 안에 글자를 찾는 함수는 Find와 Search가 있습니다.

(Find, Search 함수로 글자 안에서 글자를 검색)

하지만 두가지 이상을 검색할 수가 없다는 것인데 불규칙한 길이의 텍스트라면 어렵습니다.

 

320x100

 

 

1. 글자 꺼꾸로 세기

 

"토스트의. 이런저런. 이야기들.xlsx"라는 이름에서 확장자의 위치를 알고 싶으면 뒤에서부터 세야 합니다.

함수를 먼저 보면 아래와 같습니다.

"=MATCH(".",MID(C3,LEN(C3)-ROW(INDIRECT("1:"&LEN(C3)))+1,1),0)"

 

이 함수는 배열함수임으로 입력할 때 ALT+SHIFT+ENTER로 입력해야 합니다.

앞의 다른 .을 무시하고 맨뒤의 .만 찾습니다.

 

확장자를 지우는 함수

 

"=MATCH(".",MID(C3,LEN(C3)-ROW(INDIRECT("1:"&LEN(C3)))+1,1),0)"로 확장자의 위치를 찾고,

"=LEFT(C3,LEN(C3)-C4)"로 확장자만 지우는 결과를 출력합니다.

 

 

 

2. 함수의 기능을 설명

 

배열함수기도하고 함수 자체가 워낙 복잡합니다.

"=MATCH(".",MID(C3,LEN(C3)-ROW(INDIRECT("1:"&LEN(C3)))+1,1),0)"

함수의 기능을 안쪽에서 바깥으로 나오면서 설명드리겠습니다.

하나씩 보면 이해할 수 있습니다.

 

함수 나누기

 

① ROW(INDIRECT("1:"&LEN(C3)))

 

INDIRECT 함수안에 범위를 넣으면 범위의 크기만한 배열을 만듭니다.

ROW 함수와 함께 사용하면 {1,2,3,4, ... Len(C3)}가 되어 글자의 길이만큼 범위를 확장합니다.

여기서 배열이 되었기 때문에 계속해서 배열로 계산됩니다.

 

② LEN(C3)-ROW(INDIRECT("1:"&LEN(C3)))+1

 

LEN(C3)가 글자의 길이임으로 이걸로 배열을 빼면 숫자가 역수가 됩니다.

LEN(C3)-ROW(INDIRECT("1:"&LEN(C3))) 함수의 결과는 {LEN(C3)-1, ... , 3,2,1,0}이 됩니다. 

LEN(C3)는 21이니, 21 - {1,2,3, ... ,21} = {20,19,18, ... , 0} 입니다.

여기에 +1을 하면 {21,20,19, ... , 1}가 됩니다.

 

③ MID(C3,LEN(C3)-ROW(INDIRECT("1:"&LEN(C3)))+1,1)

 

MID를 함수를 사용하면 한글자씩 뽑을 수 있습니다.

안에 배열함수가 역순으로 배열된 {21,20,19, ... , 1} 임으로 글자를 반대로 뽑습니다.

배열함수의 결과는 "xslx.들기야이 .런저런이 .의트스토"가 됩니다.

 

④ MATCH(".",MID(C3,LEN(C3)-ROW(INDIRECT("1:"&LEN(C3)))+1,1),0)

 

이렇게 꺼꾸로 배열된 글자를 MATCH함수로 찾으면 앞에서 찾습니다.

원본을 기준으로 뒤에서 부터 찾은 것과 같은 결과를 반영합니다.

이 경우에는 결과로 5를 반영합니다.

 

 

이제 복잡한 함수에 대해서 정리가 되었습니다.

확장자의 위치를 알았기 때문에 그것만 빼면 파일명이 됩니다.

"=LEFT(C3,LEN(C3)-5)" 전체 길이에서 확장자 위치를 빼고 왼쪽부터 출력하면 됩니다.

 


 

확장자를 예로 들어 설명을 했지만 뒤에서 부터 글자를 세는것은 여러가지로 편리할 수 있습니다.

외국인들의 이름나 무작위로 바코드 시스템같은 것들이 많습니다.

 

 

 

반응형
728x90

엑셀에서 =을 사용하면 수식을 입력할 수 있는 함수 상태가 됩니다.
이 때는 A1, B1등으로 다른 셀의 값을 참조할 수 있는데, 중복되 보이지만 참조를 전문적으로 하는 함수가 있습니다.
응용이 풍부해서 잘 사용하면 고급 함수를 사용하게 하는 INDIRECT 함수에 대해서 알아보겠습니다.
 
 

1. INDIRECT 함수

 
INDIRECT(ref_text, [a1]) : 텍스트를 셀주소로 받아들여서 참조하여 값을 받아들입니다.
 

  • ref_text : 참조로 정의된 이름이 들어 있는 셀에 대한 참조이거나 셀에 대한 텍스트 문자열 참조입니다. 유효한 셀이 아닌 경우에는 #REF! 오류 값이 반환됩니다.
  • a1 : true일 때는 A1 스타일을 주소형식으로 받아들입니다, false일 때는 R1C1스타일의 참조로 해석됩니다.
    ( 링크 : R1C1 셀 주소 스타일 )

 
설명만 들어서는 거의 도무지 알 수 없는 함수입니다.
예를 들면 =INDIRECT("A1")이라고 하면 A1이라는 텍스트를 받아들여 A1셀을 참조합니다.
아래 예시를 확인해 보겠습니다.

 

일반 참조와 INDIRECT 비교

 

일반 참조는 칸에 있는 C6을 그대로 텍스트로 받아 들이지만 INDIRECT는 셀 주소 C6을 참조합니다.
이런 특성 때문에 일반 참조와는 다른 방법으로 수식을 만들 수 있습니다.
 

indirect 응용

수식을 통해서 참조할 위치를 입력할 수 있습니다.
수식이 다양한 값들을 상황에 맞게 조정할 수 있습니다.
그래서 상대참조와 절대참조를 통한 셀 참조보다 자유로운 입력이 가능합니다.
 

320x100

 
 

2. INDIRECT 여러 시트를 빠르게 참고하기

 
다른 시트의 값을 입력할 때는 ='sheet1'!B2 이라고 입력하면 됩니다.
여러 시트에서 값을 불러오는 것은 양이 많다면 엄청나게 번거로운 일이 됩니다.
이걸 편리하게 처리하는 방법을 알아보겠습니다.
 
이런 12개의 시트에서 값을 가지고 오는 경우 시트에 일일히 들어가서 클릭하면 시간이 걸리죠 

여러개의 시트

하지만 INDIRECT 함수를 사용하면 편리하게 값을 불러올 수 있습니다.
아래처럼 함수를 작성하고 복사해서 붙여넣기로 각기 다른 시트의 A1 값을 불러옵니다.
아래와 같은 식으로 수년에 걸쳐 매달 DATA가 있다면 INDIRECT를 쓰지 않으면 안될 정도가 됩니다.
 

Indirect의 활용

 

 
 

3. INDIRECT 배열 만들기

 
배열을 이용해서 연속 함수 계산이 가능합니다.
하지만 배열을 손으로 쳐서 {1,2,3,4 ... } 을 넣으려면 번거로운데요.
=ROW(INDIRECT("1:100"))이나 =ROW(INDIRECT("1:"&B4)) 라고 하면 배열과 같습니다.
하지만 최신버전의 엑셀에서는 SEQUENCE 함수로 배열을 만들 수 있습니다.
( 링크 : 배열 상수를 입력하고 함수에서 활용하는 방법 )
 
 

반응형
728x90

엑셀에서 배열은 여러 데이터가 중첩되어 들어있는 한 셀 혹은 한개의 함수의 결과가 2개 이상인 셀을 말합니다.

배열을 직접 입력하여 만든 경우에는 배열 상수라고 부르고 아래 링크에서 만드는 방법을 포스팅 했습니다.

(엑셀(EXCEL)에서 배열 상수를 입력하고 함수에서 활용하는 방법과, INDEX 함수로 배열 표시하기)

이번 포스트에서는 배열의 계산(연산)하는 방법 중 기본적인 것들에 대해서 알아보겠습니다.

 

320x100

 

 

1. 배열수식과 배열함수

 

배열과 배열의 연산에 대해서 이야기 합니다.

예를 들어 아래 =B4:B8*C4:C8 가 있습니다.

배열 1. B4:B8 = 1, 2, 3, 4, 5

배열 2. C4:C8 = 1, 2, 3, 4, 5

곱연산 결과 : 1*1, 2*2, 3*3, 4*4, 5*5가 됩니다.

배열의 연산

 

이 결과를 다른 함수에 적용하면 많은 양의 데이터를 빠르게 해결하는 배열 함수가 됩니다.

예를 들어 =SUM(B4:B8*C4:C8)는 "1*1+ 2*2+3*3+4*4+5*5" 가 됩니다.

이런 배열함수를 입력할 때는 Alt+Shift+Enter를 입력해야 합니다.

 

 

 

2. 배열 함수의 적용

 

단일 셀을 연산하는 함수들 대부분을 배열함수로 사용할 수 있습니다.

아래의 =LEN(H3:H5) 함수는 {8, 7, 6}의 3가지 값으로 이루어진 배열이 됩니다.

따라서 =SUM(LEN(H3:H5)) : 8+7+6 = 21 이 되고 이것은 범위의 총 글자수가 됩니다.

 

배열 함수 만들기

 

 

3. 배열함수의 논리값

 

배열함수의 가장 강력한 사용법은 논리를 적용할 수 있는 것입니다.

예를 들어 점수가 B열 10보다 큰 값의 C열 합을 구합니다.

1은 10보다 작음으로 1>10은 거짓이고 0이 되어 0 * 23 = 0이됩니다.

15의 경우 10보다 큼으로 15>10은 참이고 1이 되어 1*34 = 34가 되어 더해집니다.

이렇게 계산하면 아래의 배열 함수 =SUM((B1:B11>10)*C1:C11)는 195가 됩니다.

이런 식으로 참값만 연산되고 거짓은 연산되지 않도록 배열 함수를 작성하는 것이 가능합니다.

배열 함수에서 논리 연산자

 

요즘은 엑셀의 경우 SUMIF, COUNTIF처럼 조건함수를 추가되어 이런 배열함수를 직접 사용하는 경우가 줄어듭니다.

실제로도 편리하니 최신 버전의 EXCEL을 사용하는 것이 좋습니다.

다른 셀의 배열을 참조하는 것이 불가능하고 내부에 작성해야 함으로 길어지는 약점이 있습니다.

저도 다른 함수로 대체가 가능하면 쓰지 않는 쪽을 추천하고 있습니다.

 


 

안쓰는 편이 좋고 어렵기는 하지만 배열을 꼭 사용해야 하는 경우가 여전히 많습니다.

앞으로도 지속적으로 엑셀의 함수조합으로 여러가지를 만들어보려 합니다.

그 전에 이렇게 배열을 먼저 소개하려고 작성했는데 이해가 되셨으면 좋겠습니다.

 

반응형
728x90

배열을 프로그래밍에서는 한가지 변수 혹은 표시로 여러개의 데이터를 나타내는 방식입니다.

엑셀에서 배열은 한개의 함수나 셀에 여러가지 값이 들어가는 것을 이야기 합니다.

엑셀의 셀에는 보통 한칸에 하나의 데이터만 들어갈 수 있습니다.

 

 

 

1. 배열 입력하기

 

배열을 상수로 입력하는 방법은 {} 중괄호입니다.

={1,2,3} 으로 입력하고 Alt+Shift+Enter로 입력하면 맨 앞의 숫자만 보이지만 안에는 3글자가 들어갑니다.

Alt+Shift+Enter를 사용하면 수식창을 통해서 {배열}으로 표기됩니다.

이 배열상태로 계산하는 것을 "배열 함수"라고 부릅니다.

이건 사실 행렬과 같습니다. 쉼표(,)와 세미콜론(;)으로 구별되는데요.

={1,2,3;4,5,6;7,8,9} 라고 표기하면 행렬을 하나 작성한 것입니다.

 

320x100

 

 

2. INDEX 함수로 행렬의 위치 불러오기

 

INDEX 함수는 보통은 Match 함수와 함께 사용해서 조회 함수로 사용 됩니다.

(엑셀 조회 함수 INDEX와 MATCH)

하지만 INDEX의 진짜 기능은 배열을 사용하는 것입니다.

 

INDEX(array, row_num, [column_num]) : 배열에서 한가지 인수를 표시합니다.

  • array : 배열 상수나 셀 범위입니다.
  • row_num : 값을 반환할 배열의 행을 선택합니다.
  • [column_num] : 값을 반환할 배열의 열을 선택합니다. 

 

Index 함수를 사용해서 배열을 표시하는 방식은

=INDEX({1,2,3;4,5,6},2,1)은 행 2, 열 1에 위치한 4가 출력됩니다.

=INDEX({1,2,3;4,5,6},1,2)행 1, 열 2에 위치한 2가 출력됩니다.

다만 INDEX 함수 내에 배열이 있어야지 배열을 사용한 셀을 참조할 수는 없습니다.

 

 

 

3. 함수내에서 배열 활용하기

 

우선 함수내에서 배열을 입력할 수 있습니다. 배열은 한개의 인수로 계산됩니다.

=SUM(1,2,3,4,5,6,7,8,9) → 1~9를 다 더합니다. 인수는 9개

=SUM({1,2,3;4,5,6;7,8,9}) → 1~9를 다 더합니다. 인수는 1개

보통 엑셀의 함수는 인수를 255개를 사용할 수 있음으로 배열은 인수를 절약하는 효과가 있습니다.

하지만 결정적인 것은 연산을 겹칠 수 있습니다.

=SUM({1,2,3;4,5,6;7,8,9}*{1,2,3;4,5,6;7,8,9})를 Alt+Shift+Enter로 입력하면 각 인수들을 곱해서 더합니다.

행렬 계산하고는 다릅니다.

=SUM({1,2,3;4,5,6;7,8,9}*4)라고 입력하면 모든 인수에 4를 곱해서 더합니다.

다른 연산함수를 사용하면 해당 함수의 기능으로 연산합니다.

배열을 계산하려면 입력할 때 Alt+Shift+Enter로 입력 하여야 합니다.

 

 

4. 배열을 만드는 함수 - SEQUENCE

 

배열을 만들어 주는 함수가 있습니다.

등차수열 방식으로 원하는 배열을 만들어주는 Sequence 함수입니다.

 

SEQUENCE(rows, [columns], [start], [step]) : 시작 숫자(start)부터 Step 만큼 커지는 배열을 만듭니다.

 

  • rows : 배열의 행의 수 입니다.
  • [columns] : 배열의 열의 수 입니다.
  • [start] : 시작하는 수 입니다.
  • [step] : 칸마다 증가하는 수 입니다.

 

원하는 갯수의 원하는 간격만큼의 배열을 만들어 냅니다.

예를 들어 =SEQUENCE(3,4,2,4)의 결과는 아래와 같습니다.

 

이걸 사용 하면 많은 양의 데이터도 편하게 만들 수 있습니다.

 

 

5. 연산해서 배열을 반환하는 함수

 

어떤 함수들은 배열 그 자체를 반영합니다. 한 함수로 2가지 이상의 숫자를 출력합니다.

예로 LINEST 함수는 "기울기""절편"을 출력하는데요.

LINEST 함수를 INDEX로 나누어 보면 2가지 숫자를 출력하는 것을 알 수 있습니다.

 

2.117  =INDEX(LINEST(C1:C9,B1:B9),1)

-0.694 =INDEX(LINEST(C1:C9,B1:B9),2)

Index 함수는 두가지 값을 출력합니다.

 

 

 

 

반응형
728x90

엑셀의 셀 주소는 기본적으로 A1 스타일이라고 부르는 방식을 사용합니다.

가로 주소인 열 문자는 A, B, C, D ... 으로 진행하고 세로 주소인 행 문자는 1, 2, 3, 4로 진행합니다.

셀의 주소는 A1, B4식으로 표시하고 범위(배열)을 나타낼 때는 A1:B4로 나타냅니다.

 

또 다른 주소 시스템인 R1C1 스타일은 숫자로만 주소를 표시합니다.

행 주소 Row의 R과 열 주소 Column의 C를 사용해서 R1C1입니다.

R1C1 스타일에서는 열 문자가 숫자로 바뀌고 표시되는 주소가 변경됩니다.

R1C1

 

320x100

 

 

R1C1 스타일로 변경하는 방법은 [홈] - [옵션] - [수식] - "R1C1 참조 스타일"을 체크합니다.

체크를 해제하면 원래의 A1 스타일로 돌아옵니다.

R1C1 스타일 사용하기

A1 스타일에 상대참조, 절대참조는 링크에 정리해 두었습니다.

링크 : (함수사용법, 상대참조, 절대참조)

 

 

 

1. 상대참조 : R[]C[] 주소

 

본격적으로 R1C1 스타일이 어디가 다른지 보겠습니다.

상대 참조는 기본적으로 수식에 참고하면 "R[2]C[3]" 이라는 식으로 [] 안에 표시됩니다.

"지금 셀에서 Row로 2칸, Column 3칸 위치에 참조한다"라는 의미입니다.

왼쪽이나 위로 갈때는 "-"부호를 사용해서 R[-2]C[-3] 처럼 됩니다.

같은 행일때는 R[2]C / 열일때는 RC[2]처럼 사용하지 않는 곳을 빈칸으로 두어도 되고 [0]을 써도 됩니다.

상대참조

 

2. 절대참조 : R1C1 주소

 

절대참조는 심플합니다. 그냥 R2C4 식으로 []없는 주소로 작성하면 됩니다.

A1 주소처럼 복사 붙여넣기나 자동채우기로 참조가 이동하지 않습니다.

상대참조와 절대참조가 섞인 경우에는 R[2]C4처럼 사용하면 됩니다.

절대참조

 

3. 범위 참조

 

범위는 A1 스타일과 똑같이 : 연산자를 사용합니다.

R[1]C[2]:R[4]C[4]처럼 사용하면 되는데 중괄호와 R,C 때문에

주소가 기본적으로 길어집니다.

그래서 A1:B4처럼 작은 범위에서는 좀 쓸모없어 보이기도 합니다.

그러나 R[2]C[2]:R[1002]C[1002]처럼 한번에 1000 x 1000짜리 범위를 만들 수도 있습니다.

범위참조


 

R1C1 스타일은 범위가 작거나 짧은 함수일때는 주소도 길어 알아보기 힘듭니다.

하지만 상대참조일때는 R1C1 ~ R100C100같이 숫자만 커지면 되기 때문에 알기 쉽습니다.

(A1스타일에서는 A1~CV100입니다. CV가 100번째라는건 어지간하면 바로 모릅니다.)

 

범위 참조에서도 이야기를 했지만 A1 시스템에서 325 x 325 범위를 직관적으로 아는 것은 어렵습니다.

특히 절대참조와 겹치면 더 편리해지는데, R2C4:R[325]C[325]라고 하면 한번에 해결됩니다.

 

이렇게 자기 위치를 기준으로 참조를 건다는 것은 프로그래밍 - VBA 작성시에는 편리한 경우가 많습니다.

변수에 숫자를 늘리는 식으로 참조범위의 크기나 거리를 직관적으로 조정할 수 있으니까요.

그래서 아주 큰 엑셀파일에 다양한 함수를 사용할 때는 거의 필수일 수 있습니다.

반응형
728x90

오머다 시리즈 처음으로 보스가 등장합니다.
전쟁 시나리오 마지막에 등장하는데 진형이 충분히 강해진 마지막 턴에 나오기 때문에 딱히 어렵지 않습니다.

공통적으로 균열점수를 한번에 10점을 깍는 극악한 스펙이 있지만 잘 쓸일이 없네요.

잘 만들었는데 계속해서 두 마리 한번에 나오거나 하는등 보스의 좀더 다양하게 배치했으면 좋았을 껀데요.

주간이벤트 던전에라도 등장했으면 좋았을 것 같은데 아쉽습니다.

 

320x100

 

 

▶ 보스 01 크래그

처음 등장하는 보스입니다.
함정을 만나면 땅을 내려쳐서 함정을 마비시킵니다.
사이크롭스 주술사의 토템만 못합니다.
마비시키는 범위나 시간이 좀더 길어야 할 것 같습니다.

 

 

 

▶ 보스 02 고르바쉬

바리케이트를 부스는 보스입니다.
한 두방에 부서지는 것도 아니고 피도 많지도 않는게 한참 달라붙어있습니다.
등장하는 판이 자원이 넉넉해서 3줄정도 타워를 깔아두고는 그냥 때려도 됩니다.

 

 

▶ 보스 03 몽그리펠

방심하면 가장 안되는 보스입니다.
바리케이드를 넘어서 뛰어가는 코볼드 러너의 보스버전인데,
잡몹들은 함정으로 막게 두고 이 녀석을 따라다니면서 계속 때리다보면 잡을 수 있습니다.
딱히 보스스러운 몸빵을 가진건 아니라서 미니맵을 보다 등장하면 달려가서 집중 딜을 넣습니다.
마법을 활용하면 더 쉽게 막을 수 있습니다.

 

 

▶ 보스 04 젤자도어

적군을 살리는 기술을 가지고 있습니다.
한번에 여러마리를 살리는 것도 아니고 몸이 단단한 것도 아니라서 함정만 가지고 막으라고 해도 막아 집니다.

그냥 딴 일하고 있어도 온지 모르는 보스입니다. 좀더 이펙트 있게 차라리 광역 치료였다면 어떨까 하네요.

 

 

▶ 보스 05 크로마티카

공중유닛이고 범위공격을 하는 것 같은데 공격할 틈도 없이 죽습니다.
워낙 공중이 많이 나오는 판에서 나오기 때문에 공중을 빈틈없이 막아두어 보스도 별거 없네요.

등장하는 맵이 후반부에는 자원이 남는 맵이라 큰 위협이 안됩니다.

반응형
728x90

오크 머스트 다이 3에서는 오크뿐 아니라 다른 몬스터도 나옵니다.

기본적으로 가까히 달려오나 플레이어를 보면 공격하는 형태입니다.

하지만 원거리 공격, 플레이어부터 공격, 비행능력등등 다양한 적들이 나옵니다.

 

320x100

 

 

▶ 기본오크들

기본 오크들

오크 3종 세트 가장 기초적인 적 유닛입니다.
마법 데미지를 좀더 잘 받는데 이것 때문에 함정들에 둘러 쌓이면 거의 녹습니다.
무거운 오크가 전작에 비해서는 좀 위협적입니다.
체력도 많고 밀어내는 공격에 멀리 밀리지 않습니다.

 

 

 

▶ 오크궁수

오크 궁수는 원거리 공격을 합니다.
전작과는 다르게 초록색 피부를 하고 등장합니다.
역시 체력이 약해서 막는건 어렵지 않습니다.
우리 영웅을 쏘려다 바리케이트가 맞기도 함니다.
이게 횟수가 많아지면 결국 부서지니 데미지가 누적되지 않도록 관리해야 합니다.

 

 

▶ 화염마귀 / 코볼드

이 두녀석은 원리적으로 아주 똑같습니다.
빠르게 달려오는 몸이 약한 녀석들이죠.
화염 마귀는 화염에 면역이라서 유황을 그냥 뚫고 나옵니다.
이번 작에서는 오크들 사이사이에 섞여서 오기 때문에 놓칠 수도 있습니다.

 

 

▶ 화염 마귀

화염 마귀 시리즈 때문에 화염 계열 함정이 잘 사용되지 않습니다.
냉기에 약하고 화염이 면역인것을 제외하면 오크와 완전히 같습니다.
대충 상대하다 보면 녹아 없어지는 적들이죠

 

 

▶ 화염 마귀 대군주

화염마귀의 대형 몹입니다.
덩치 때문에 던지는 공격에 면역이고 또 화염마귀라 화염에 면역입니다.
평타가 화염방사인데요. 맞으면 아프니까 거리를 두고 싸워야 합니다.

스펙이 좋아보이지만 큰 위험은 아닙니다. 오거에 좀 많이 밀립니다.

 

 

▶ 화염 마귀 마법사

마찬가지로 화염마귀 계열의 대형몹입니다.
파이어볼을 던집니다. 원거리 공격에 바리케이드가 께지지 않도록 주의하세요.

 

 

▶ 오거

기본 오크 중 덩치를 담당하고 있습니다.

어느 정도 가까이 오면 플레이어보다 빠르게 달려와 스턴을 거는 공격을 하는데 피하기가 상당히 힘듭니다.

실질적으로 난이도를 높이는 덩치다운 카리스마가 좀 생겼습니다.
아직 일반 오거는 화염/냉기/헤드샷에 약해서 트랩의 수량이 많아지면 오기도 전에 녹습니다.
갑옷 오거는 번개에 약한데 번개함정은 거의 대부분 비싸고 효율이 떨어져 초반부터 충분한 양을 모으기 어렵습니다.
각종 마법을 활용해서 막아야 합니다.

 

 

▶ 코볼드 공병

코볼드 공병은 플레이어나 베리케이드 중 가까운 쪽에 돌격해서 자폭합니다.

베리케이드를 가장 잘 파괴합니다.
다른 걸 무시하고 베리케이드나 영웅에게 빠르게 달려오는 공병을 잘 대응하는 것이 이 게임의 묘수입니다.
판이 시작하면 맨 처음 코볼드 공병이 나오는지 확인해야 할 정도로 중요한 적입니다.
이번 작에서는 미니 맵에 노란색으로 표기되기 때문에 대응은 쉬워 졌습니다.

적들 무리 가운데서 터트리면 적에게 데미지를 줍니다.

 

 

▶ 놀 사냥꾼

플레이어를 향해서 장벽을 뛰어넘고 달려오는 놀들입니다.

독속성 근접 공격을 하는 사냥꾼과 폭탄으로 원거리 공격을 하는 척탄병 두 종류가 있습니다.
맵에 다이아몬드로 구별되 막는 것은 어렵지 않지만 척탄병이 터트리는 폭탄에 바리케이드가 깨지지 않아야 합니다.
이들이 나오는 판에는 미니맵을 잘 보면서 대응합시다.
보통 이속이 빨라 일반 적들과 나누어 오기 때문에 오히려 함정이 강한 곳에서 기다렸다 한번에 죽여버려도 됩니다.
전작과 외모가 많이 바꼈습니다.

 

 

▶ 다이너마이트 궁수

화살을 피해도 없어지지 않고 폭탄의 심지가 타오르다가 폭발합니다.
범위 내에 바리케이트를 상대로 데미지를 줍니다.
영웅이 보이면 그 자리에 멈춰서서 계속 공격하는데 바리케이트가 금방 부서집니다.
잠시 도망가 함정으로 궁수가 걸어가면 다시 돌아와 방어를 하거나 아니면 앞쪽으로 이동하여 빨리 헤치워 버려야 합니다.
그나마 항상 소수로 나오니까 작전을 잘 세워 보세요.

 

 

▶ 트롤

대형몹인 트롤족입니다. 공격은 약하지만 중독을 시킵니다.
물리피해에 강하고 재생까지 하기 때문에 산 트롤은 아주 많이 트랩도 뚫고 옵니다.
그러나 산 트롤 혼자 뚫고 와봤자 뭐 이속도 빠르지 않고 오거같은 특수능력도 없으니 위협적이지 않습니다.

그러나 맨 앞에서 트랩의 화력을 흡수하는건 무시 못합니다.

길쭉길쭉한 외모에 어울리지 않는 몸빵담당입니다.

 

 

▶ 대지의 정령

대지의 정령시리즈는 대지의 군주가 죽으면 2마리의 대지의 정령이 나오고 그걸 또 파괴하면,

부서진 시체에서 대지의 하수인이 튀어나옵니다.
화력으로 잘 막는다 해도 이 과정에서 상당히 앞으로 전진합니다.
특히 대지의 정령이 부서지면서 등장하는 하수인은 바로 보이지 않아 어느정도 돌진을 허용하게 되는데요.
이거 때문에 가끔 균열 점수를 빼앗깁니다.

 

 

▶ 화염의 정령

불의 정령시리즈는 불의 정령이 죽으면 하수인 2마리를 군주가 죽으면 4마리가 나옵니다.
이 하수인이 자폭을 하는 것이 포인트입니다.
바리케이트 한가운데서 죽으면 엄청난 피해를 줍니다.
멀리서 보이면 강력한 마법공격으로 미리미리 차단하는 것이 요령입니다.

 

 

▶ 치유사 망령

이름처럼 치유사로 약한 데미지를 받은 적을 치료합니다.
하지만 대부분의 함정이 한순간에 큰 피해를 주는 타입이라서 대활약은 못합니다.
드믈게 타이빙 맞게 죽을 녀석을 치료를 해서 귀찮을 때가 있습니다.

 

 

▶ 비행유닛 시리즈

비행유닛 시리즈입니다.
한가지 속성씩 면역이 있으며 원거리 공격을 합니다.
매우 위력적이고 일점사를 해서 영웅 체력을 녹입니다.
프로스트배트의 얼리기가 피하기 어렵습니다.
석화 지팡이의 석화공격을 맞으면 다수가 한번에 떨어져 처리할 수 있습니다.

 

 

▶ 사이클롭스 주술사

차가운 눈동자 캠페인의 주력입니다.
토템을 소환해서 함정을 무력화 시키는데 부서질 때까지 없어지지 않습니다.
대형몹 치고는 체력이 작으니 소환하기 전에 헤치우는 것이 포인트입니다.

 

 

▶ 사이클롭스

차가운 눈동자 캠페인의 사이클롭스 병사들입니다. 사망하면 주변의 적을 치료합니다.
비전과 얼음에 강하지만 하지만 완전한 면역은 아니라서 난이도가 확 높지는 않습니다.
이 덩치들이 우르르 몰려오면 동토의 전쟁느낌이 물씬 납니다.

 

 

▶사이클롭스 마법사

원거리 유도공격을 하는데 원거리 공격은 언제나 바리케이트를 부슬까봐 걱정해야 합니다.
헤드샷에 약해서 대량의 데미지가 들어가는데, 원거리에서 마법구를 날리는 것을 피하면 짜증나다가도

헤드샷이 명중해서 처리하면 상당히 즐겁습니다.

 

 

▶ 사이클롭스 최면술사

사이클롭스 최면술사는 멀리서 공격하지는 못하지만 가까히 가면 ,

빔을 계속 쏴서 빨리 뒤로 도망가거나 헤치우지 않으면 대량의 피해를 입습니다.
원거리 치고는 바리케이드를 공격 못하는 놈이기도 합니다.

 

 

▶ 투아타라

사막맵인 저울 기울이기 캠페인에 등장하는 도마뱀 병사입니다.
한번에 입는 데미지가 상한이 있어서 헤치우기가 상당히 힘듭니다.
연사를 하는 함정이 많지 않아서 약점이라고 할 수 있는게 없습니다.

그냥 타르나 석화를 통해 전진을 못하게 한 후에 계속 쳐야 합니다.

 

 

▶ 투아타라 레인저

도마뱀 족의 원거리 공격수입니다.
긴 사정범위로 멈춰서서 계속 쏘는데 다른 아쳐들 보다 바리케이트를 잘 파괴하는 느낌이 듭니다.
이 놈 때문에 어려워 죽겠네요.

 

 

▶ 투아타라 암살자

다른 투아타라들과 피부색이 다릅니다. 상어처럼 보입니다.

등장하자마자는 투명하고 다가와서 한번 때려야 보이는 스타크레프트의 다크 템플러 같은 녀석입니다.
자세히 보면 투명한 뭔가가 아름아름 오는게 보이는데 바빠서 눈치 못체는 경우가 많습니다.
방어를 하는 리듬을 께고 악소리 나게하는 적입니다.

반응형

+ Recent posts