>source

고유하지만 동일한 스키마 테이블에서 값 목록을 검색하려고합니다. 그러나 나는 그 수를 줄이려고 노력하고 있습니다. ImportHTML 최상의 성능을 위해 시트가 만들어야하는 콜 아웃. 내가 겪고있는 몇 가지 문제 :

예를 들어 "Wikipedia에서 Google 시트로 데이터 스크랩"사용 :

A1 = 인 새 시트에서 =ImportHtml("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)", "table", 4)

  • 결과를 확장하지 않고 데이터를 사용할 수 있습니까?

    예를 들어 근처 열에 데이터가있는 경우 :

  • 1.b) 다음을 쿼리 할 수 ​​있습니까? A1 그것이에있을 때도 결과 #REF! 오류?

    1. 단일 가져 오기 테이블을 수행하고 데이터를 여러 번 배열하는 (확장없이) 쿼리를 수행하는 가장 좋은 방법은 무엇입니까?

    2. 확장을 허용하면 다음과 같이 쿼리 할 수 ​​있다는 것을 알고 있습니다.

      =query(A1:F100,"select F where A = 'India'")


    • 답변 # 1

      Google 시트가 정보를 가져 오는 방법을 이해하기 위해 몇 가지 테스트를 시도했습니다.

      내가 한 일은 :

      만든 request bin 요청이 언제 이루어 졌는지 확인하기 위해

      가능한 한 다양한 방법으로 HTML을 가져 왔습니다.

      importhtml(urlInCell)

      importhtml(urlInFormula)

      query({importhtml(urlInCell), importhtml(urlInFormula)})

      그 결과 Google 시트는 요청을 한 번만 수행하고 모든 요청에 ​​대해 가져온 값을 캐시했으며 시트를 닫았다가 다시 열고 새로 고치고 심지어 하드 새로 고침을 시도했지만 요청은 여전히 ​​한 번만 이루어졌습니다. 아래와 같이 :

      그런 다음 위의 방법을 호출하여 결과를 쿼리하려고 시도했지만 제대로 작동하지 않았습니다.

      정확히 만들고자하는 유일한 해결책은 데이터를 직접 쿼리하는 것입니다. importhtml 와:

      =query(ImportHtml("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)", "table", 4),"select Col6 where Col1='India'")

      암시

      여기서 내 제안은 데이터를 자체적으로 시트로 가져온 다음 다른 위치에서 전체 시트를 쿼리하는 것입니다.

      시트 정보- =ImportHtml("https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)", "table", 4)

      타겟 시트- =query(Info!A:Z, "select F where A = 'India'")

      테스트

      다음은 내가 한 테스트와 결과가 담긴 이미지입니다.

      도움이되기를 바랍니다. 추가 정보가 필요하면 의견에 알려주십시오.

    • 답변 # 2

      @nabais의 대답은 주스가 흐르고 실제로 테이블 형식을 단일 문자열로 검색 한 다음 찾기 기능을 사용하여 필요한 데이터를 검색 할 수있었습니다.

      예:

      =CONCATENATE(IMPORTHTML(CONCATENATE("https://finviz.com/quote.ashx?t=",Watchlist!$A4),"table",9))
      
      

      다음과 같은 문자열을 생성합니다.

      Index*DJIA S&P500*P/E*35.92*EPS (ttm)*3.27*Insider Own*0.07%*Shs Outstand*17.06B*Perf Week*-1.61%*Market Cap*1994.16B*Forward P/E*27.26*EPS next Y*4.31*Insider Trans*-6.88%*Shs Float*16.99B*Perf Month*1.37%*Income*57.41B*PEG*2.84*EPS next Q*1.39*Inst Own*61.70%*Short Float*0.47%*Perf Quarter*-6.77%*Sales*274.52B*P/S*7.26*EPS this Y*10.20%*Inst Trans*-*Short Ratio*0.52*Perf Half Y*48.19%*Book/sh*3.83*P/B*30.64*EPS next Y*8.99%*ROA*17.60%*Target Price*123.11*Perf Year*79.14%*Cash/sh*5.35*P/C*21.93*EPS next 5Y*12.64%*ROE*75.20%*52W Range*53.15 - 137.98*Perf YTD*59.84%*Dividend*0.82*P/FCF*33.64*EPS past 5Y*7.30%*ROI*31.70%*52W High*-14.96%*Beta*1.33*Dividend %*0.70%*Quick Ratio*1.30*Sales past 5Y*3.30%*Gross Margin*38.20%*52W Low*120.76%*ATR*3.15*Employees*147000*Current Ratio*1.40*Sales Q/Q*1.00%*Oper. Margin*24.10%*RSI (14)*52.96*Volatility*1.72% 2.66%*Optionable*Yes*Debt/Eq*1.73*EPS Q/Q*-3.00%*Profit Margin*20.90%*Rel Volume*0.47*Prev Close*118.64*Shortable*Yes*LT Debt/Eq*1.52*Earnings*Oct 29 AMC*Payout*24.10%*Avg Volume*154.64M*Price*117.34*Recom*2.10*SMA20*1.13%*SMA50*1.75%*SMA200*25.71%*Volume*72,188,812*Change*-1.10%*
      
      

      그런 다음 다음과 같은 것을 사용하여 특정 데이터 값에 대해 구문 분석 할 수 있습니다.

      =IFERROR(VALUE(substitute(LEFT(MID(MID(<stringcell>,FIND("Rel Volume",<stringcell>),21),FIND("*",MID(<stringcell>,FIND("Rel Volume",<stringcell>),21))+1,LEN(MID(<stringcell>,FIND("Rel Volume",<stringcell>),21))),FIND("*",MID(MID(<stringcell>,FIND("Rel Volume",<stringcell>),21),FIND("*",MID(<stringcell>,FIND("Rel Volume",<stringcell>),21))+1,LEN(MID(<stringcell>,FIND("Rel Volume",<stringcell>),21))))-1),"%",""))/100,"Not Found")
      
      

    관련 자료

  • 이전 Presto의 파일 기반 시스템 액세스 제어에서 테이블 규칙을 설정할 때 AccessDeniedException 발생
  • 다음 Haskell의 목록에있는 모든 요소를 ​​전환합니다