Как взять данные по вертикали и извлечь их по горизонтали на основе столбца флага в Google Sheets? - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть следующий формат данных в Google Sheets:

enter image description here

Я хочу извлечь столбец Количество в 2 отдельных столбца на основе, еслиФлаг готовности - Y или N. Имя и размер элемента - это столбцы группы By вместе с флагом Ready.Ниже приведен формат данных, который мне нужен после выполнения запроса:

enter image description here

Пока еще не пробовал никаких решений, так как я был вне цикла программированияв течение долгого времени и я супер ржавый с SQL.

Ответы [ 3 ]

0 голосов
/ 02 февраля 2019

Вы также можете сделать это как сводную таблицу - работает довольно хорошо.Название и размер предмета вводятся в виде строк, Готов?в виде столбцов и сумма (количество) в качестве значения.

enter image description here

Или действительно как сводный запрос

=QUERY(A:D,"SELECT A,B,sum(C) where A<>'' group by A,B pivot D ")
0 голосов
/ 02 февраля 2019
=ARRAYFORMULA(IF(NOT(ISBLANK(QUERY(QUERY(A1:D, 
 "select *", 1), 
 "select Col1, Col2, sum(Col3) 
  where Col1 <> '' 
  group by Col1, Col2 
  pivot Col4 
  order by Col1 desc", 1))),
  QUERY(QUERY(QUERY(A1:D, 
 "select *", 1), 
 "select Col1, Col2, sum(Col3) 
  where Col1 <> '' 
  group by Col1, Col2 
  pivot Col4 
  order by Col1 desc", 1), 
 "select * 
  label Col3 'Not ready', Col4 'Ready'", 1), 0))

0 голосов
/ 02 февраля 2019
={"Item name", "Size", "Not ready", "Ready";
 {QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col1, Col2", 0),
  ARRAYFORMULA(ARRAY_CONSTRAIN(IFERROR(VLOOKUP(QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col1", 0)&
  QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col2", 0), 
  QUERY(QUERY({A2:A&B2:B, C2:D}, 
  "select *", 0), 
  "select Col1, Col2, Col3 
   where Col3='N'", 0), 2, 0), 0),
  COUNTA(QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col1,Col2", 0))/2, 1)),
  ARRAYFORMULA(ARRAY_CONSTRAIN(IFERROR(VLOOKUP(QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col1", 0)&
  QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col2", 0), 
  QUERY(QUERY({A2:A&B2:B, C2:D}, 
  "select *", 0), 
  "select Col1, Col2, Col3 
   where Col3='Y'", 0), 2, 0), 0),
  COUNTA(QUERY(QUERY(QUERY(A2:D, 
  "select *", 0), 
  "select Col1, Col2, count(Col1) 
   where Col2 is not null 
   group by Col1, Col2 
   order by Col1 desc 
   label count(Col1)''", 0),
  "select Col1,Col2", 0))/2, 1))}}

...