nØthing specia¡
Posts
129 posts
Lookup()함수의 은밀한 사생활
vlookup()함수에 밀려 주목받지 못하는 형제들이 있는데, hlookup(), lookup()이 그들이다. 그중 lookup()에는 이상한 성질이 있는데, 찾으려는 값이 검색범위을 벗어나 큰 값인 경우(가령 찾는 값이 6인데, 검색범위가 1~5사이라면) 마지막 데이터를 돌려준다는 것이다. 위의 그림에서 1~5사이의 값을 주면 옆 컬럼의 One, Two, ~ Five값을 가져오는 작업을 lookup()함수를 사용하면 다음과 같다. =LOOKUP(D8,A8:A12,B8:B12) 그런데 A8:A12 범위를 벗어난 값 6(=D8)을 주면 B8:B12의 마지막 항목(Five)을 돌려준다. #NA를 돌려줘야 정상인 것 같은 데, 최신버전의 엑셀에서도 여전하다. 그런데 이런 개떡같은 성질을 잘 이용할 수

웹사이트에서 데이터 가져오는 방법 - Table Capture
파이썬이나 R에서 데이터를 가져오는 방법은 책과 각종 블로그에서 많이 소개하여 널리 알려져 있다. 게을러서 그런 걸 하지 않지만 웹사이트를 만들 때 디자인보다는 데이터위주의 HTML(그래서 XML이 나온 것이지만)을 사용하였다면 복잡한 도구가 필요하지 않았을 텐데 하는 생각이 든다. 크롬브라우저를 주력으로 사용한다면 'Table Capture'라는 애드인-확장프로그램을 추천한다. 웹페이지내 테이블만 골라 선택하고 테이블의 내용을 클립보드에 복사해두거나 구글스프레드시트에 옮길 수 있다(프로버전인 경우 xlsx, csv파일로 저장도 가능) 프로그래밍과 html문서구조분석이 어려운 분이라면 이 방법이 좋다. [URL]크롬 웹스토어-Table Capture
[까칠한 에러#3]TypeError: only length-1 arrays can be converted to Python scalars
예전에 겪은 에러인데, 참고삼아 기록을....TypeError: only length-1 arrays can be converted to Python scalars [CODE]import scipy.stats as sp import numpy as np import matplotlib.pyplot as plt from math import * x=np.linspace(0,3,200) mu=0 sigma0=[0.25,0.5,1] color=['blue','red','green'] target=[(1.2,1.3),(1.7,0.4),(0.18,0.7)] start=[(1.8,1.4),(1.9,0.6),(0.18,1.6)] for i in range(len(sigma0)): sigma=
[까칠한 에러#2]13 형식이 일치하지 않습니다
아래와 같은 코드를 작성하였는데, 13 형식이 일치하지 않습니다 에러메시지가 나온다. 코드는 워크시트 여러 개를 담을 수 있는 워크시트 컬렉션 개체(shts)를 선언하고 현재 통합문서의 워크시트들을 담으려고 한 것이다. [CODE]Sub demoWorksheetsCollection() Dim shts As Worksheets Set shts = ThisWorkbook.Worksheets End Sub[SOLUTION] 위의 에러는 선언한 변수와 할당한 개체의 타입이 서로 맞지 않아 생기는 것인데, ThisWorkbook.Worksheets는 Woeksheets 컬렉션 개체를 돌려주는 것이 아니라 Sheets 컬렉션 개체를 돌려준다. Sheets 컬렉션 개체는 워크시
![[까칠한 에러#1]'438' 런타임 오류가 발생하였습니다. 개체가 이 속성 또는 메서드를 지원하지 않습니다.](https://img.zoomtrend.com/2018/05/22/b0007036_5b04a390dd064.png)
[까칠한 에러#1]'438' 런타임 오류가 발생하였습니다. 개체가 이 속성 또는 메서드를 지원하지 않습니다.
워크시트를 참조하는 방법중 가장 선호하는 것은 코드명을 이용하는 것이다. 워크시트에는 두 개의 이름을 가진다. 하나는 사용자가 워크시트 탭에서 보는 이름(name), 나머지 하나는 VBA가 내부적으로 사용하는 워크시트이름(codename)이다. 워크시트를 참조하는 경우 이름이 변경되는 것은 그리 바람직하지 않다. 워크시트 탭에서 보는 이름은 사용자가 변경을 할 수 있어 참조하기엔 적합하지 않다. 그래서 코드명을 사용하여 워크시트를 참조한다. 위에서 [Sheet1], [Sheet2] 와 같이 ()밖에 있는 이름은 코드명이고 ()안의 [차트지표데이터조회] 같은 것이 워크시트 탭의 이름이다. 그래서 평소처럼 코드명을 가지고 아래와 같이 코드를 해두었더니, '438' 런타임 오류가 발생하였습니다. 개



