#sql #google-sheets
Вопрос:
Я пытаюсь выполнить то, что начиналось как простая задача, но оказалось сложнее.
Я должен выполнить локальную сумму столбца по различным элементам другого столбца с помощью функции запроса. Проблема возникает из — за того, что запрос выполняет нежелательную сортировку сгруппированного столбца (он находится в формате строк рабочих недель), и я не могу заставить его отменить или повторно отсортировать в исходном формате.
Первоначальный запрос таков:
=query(A1:B350,"select A, sum(B) group by A")
Смотрите пример:
нажмите здесь, чтобы посмотреть пример
Впоследствии я попытался с:
=query(A1:B350,"select A, sum(B) where A matches '"amp;join("|", query(G2:G, "select G where G is not null"))amp; "' group by A")
вот так:
нажмите здесь, чтобы посмотреть пример
но нежелательная сортировка остается.
Есть идеи о том, как принудительно выполнить начальную сортировку или предотвратить ее изменение? Заранее спасибо
Комментарии:
1. поделитесь копией своего листа
Ответ №1:
Для правильной сортировки необходимо выровнять отдельные цифры. Вы можете сделать это либо в исходных данных, либо с помощью формулы:
=QUERY({INDEX(REGEXREPLACE(A:A,"-(d)$","-0$1")),B:B},"SELECT Col1, SUM(Col2) GROUP BY Col1")
Ответ №2:
пробовать:
=INDEX(IFNA(VLOOKUP(G2:G,
QUERY(A1:B350, "select A,sum(B) group by A label sum(B)''"), {1, 2}, 0)))
Комментарии:
1. Привет, кажется, это не работает. Он выводит только с 2021-13 и далее — с 2021-3 по 2021-12 не распечатывается, и там есть пустые ячейки.
2. @Lore456 не могли бы вы поделиться копией своего листа?