SUMIFS Excel в диапазоне чисел, которые отформатированы как строки - PullRequest
0 голосов
/ 14 января 2020

Я использую автоматический запрос в Excel, который запрашивает данные TFS с сервера. Эти данные существуют в листе под названием «TFSData». На другом листе я провожу некоторые статистические оценки c, например подсчет проверенных историй за спринт или другие уловки Я использую формулы COUNTIFS или SUMIFS для получения результатов.

Теперь я пытаюсь использовать SUMIF, чтобы получить «добавленную стоимость» на спринт из чисел, указанных в данных TFS. Здесь я попадаю в беду, потому что столбец с номерами «Добавленная стоимость» отформатирован как текст. У меня нет шансов манипулировать этими данными, так как изменения теряются при каждом повторном выполнении запроса.

Не работает и дополнительный вспомогательный столбец, поскольку вновь вставленные строки после refre sh не будут содержать никаких формул - это требует много ручной доработки после refre sh.

. Фактическая формула для ячейки выглядит следующим образом:

=SUMIFS(TFSData!J3:J352; TFSData!N3:N352;"*Sprint 212": TFSData!D3:D352;"Verified");

Это дает «0» результатов. Столбец «J» - это столбец, содержащий строковые значения, например «3», «5» и т. Д. c.

. Я хотел бы использовать что-то вроде:

=SUMIFS(VALUE(TFSData!J3:J352);TFSData!N3:N352;"*Sprint 212": TFSData!D3:D352;"Verified");

Есть идеи?

Решение выглядит так:

=SUMPRODUCT(TFSData!J3:J352+0;--ISNUMBER(SEARCH("Sprint 212";TFSData!N3:N352));--(TFSData!D3:D352="Verified"));

1 Ответ

1 голос
/ 14 января 2020

У вас есть несколько вариантов:

1) Используйте SUMPRODUCT, например,

= SUMPRODUCT(TFSData!J3:J352+0; (RIGHT(TFSData!N3:N352,10)="Sprint 212")+0; (TFSData!D3:D352="Verified")+0)

(обратите внимание, что первый +0 в приведенной выше формуле - это преобразование текста в числа, другие +0 должны преобразовать массив значений TRUE / FALSE в массив значений 1 / 0, который необходим для SUMPRODUCT.)

2) Измените свой запрос, чтобы он возвращал тип цифры c, а не «текст, который выглядит как числа», тогда вы могли бы фактически использовать формулу SUMIFS.

3) Еще лучше, измените свой запрос, чтобы получить эту сумму результат. Таким образом, ваш запрос возвращает именно то, что вы хотите, вместо необходимости выполнения дополнительной операции в Excel.

Но я не знаю всей истории, возможно, варианты 2) и 3) не осуществимы, потому что вы ' Вызываете хранимую процедуру, и в этом случае вы не можете изменить запрос. Просто отмечая, что в целом мне почти всегда легче позволить запросу выполнять всю работу и выполнять как можно меньше работы в Excel.

...