query - ¿Cómo devuelvo varias columnas de datos usando ImportXML en Google Spreadsheets?
numeros a letras google sheets (4)
Estoy usando ImportXML
en una hoja de cálculo de Google para acceder al método user_timeline
en la API de Twitter . Me gustaría extraer los campos created_at
y text
de la respuesta y crear una visualización de dos columnas de los resultados.
Actualmente estoy haciendo esto llamando al API dos veces, con
=ImportXML("http://twitter.com/status/user_timeline/matthewsim.xml?count=200","/statuses/status/created_at")
en la celda en la parte superior de una columna, y
=ImportXML("http://twitter.com/status/user_timeline/matthewsim.xml?count=200","/statuses/status/text")
en otro.
¿Hay alguna manera de crear esta pantalla con una sola llamada?
ImportXML admite el uso de xpath |
separador para incluir tantas consultas como desee.
=ImportXML("http://url"; "//@author | //@catalogid| //@publisherid")
Sin embargo, no expande los resultados en múltiples columnas. Obtendrá una sola columna de trillizos repetidos (o los atributos que haya seleccionado) como se muestra a continuación en la columna A
Lo siguiente está en desuso
2015.06.16: continue
no está disponible en "las nuevas Hojas de cálculo de Google" (ver: Documentación de Google para continue
).
Sin embargo, no necesita usar la función CONTINUE()
insertada automáticamente para colocar sus resultados.
=CONTINUE($A$2, (ROW()-ROW($A$2)+1)*$A$1-B$1, 1)
Colocado en B2
que debe rellenarse limpiamente hacia abajo y hacia la derecha para proporcionarle datos de columna correctos.
- ImportXML está en
A2
. -
A3
y cómo se completan automáticamente las funcionesCONTINUE()
. -
A1
es la cantidad de atributos. -
B1:D1
son el índice de atributo para sus columnas.
Otra forma de convertir las filas de = CONTINUAR () en columnas es usar transpose ():
=transpose(importxml("http://url","//a | //b | //c"))
Planteé esta pregunta al Foro de asistencia de Google y esta fue una solución que funcionó para mí:
=ArrayFormula(QUERY(QUERY(IFERROR(IF({1,1,0},IF({1,0,0},INT((ROW(A:A)-1)/2),MOD(ROW(A:A)-1,2)),IMPORTXML("http://example.com","//td/a | //td/a/@href"))),"select min(Col3) where Col3 <> '''' group by Col1 pivot Col2",0),"offset 1",0))
Reemplace los contenidos de IMPORTXML con sus datos y consultas y vea si eso funciona para usted. yo
Aparentemente, esto intenta invocar la función IMPORTXML solo una vez. Es una solución por ahora, al menos.
Aquí está el hilo completo .
Solo concatena tus consultas con "|"
=ImportXML("http://twitter.com/status/user_timeline/matthewsim.xml?count=200","/statuses/status/created_at | /statuses/status/text")