Как использовать Excel SUMIFS с оператором, большим или равным, когда числа хранятся в виде текста - PullRequest
0 голосов
/ 03 мая 2019

У меня есть таблица, в которой базовая база данных хранит числа в виде текста.В этом случае оператор больше или равно не захватывает первое значение.

Эта формула игнорирует первую строку данных в результате, где AcctNum = 123.Формула возвращает 11, когда она должна вернуть 21.

=SUMIFS(Table1[Balance],Table1[AcctNum],">='123'", Table1[AcctNum],"<='500'")

enter image description here

То, что я пробовал: 1. Подстановочный знак "*".2. Множество комбинаций функций T () и TEXT ().

Чего я не хочу делать: 1. Использовать массивы.2. Добавьте в мою таблицу столбцы, которые преобразованы в числовые, потому что не все AcctNum отформатированы одинаково, поэтому они должны оставаться текстовыми.3. Используйте SUMPRODUCT, потому что в этом случае важна читаемость формулы.

Я написал пользовательскую функцию для решения проблемы, но мне хотелось бы знать, существует ли естественное решение Excel.Я прочитал SUMIF и SUMIFS не работают хорошо, когда числа хранятся или извлекаются из базы данных в виде текста.Я использую Excel 2016.

Ответы [ 3 ]

1 голос
/ 03 мая 2019

Попробуйте SUMPRODUCT с двойными минусами для преобразования текста и логических значений в числа.

=SUMPRODUCT(--(--Table1[acctnum]>=123), --(--Table1[acctnum]<500), Table1[balance])
0 голосов
/ 03 мая 2019

Если вы используете Sumproduct, вы можете явно преобразовать текст в числа.

=SUMPRODUCT(Table1[Balance],--(Table1[AcctNum]+0>=123),--(Table1[AcctNum]+0<=500))

enter image description here

0 голосов
/ 03 мая 2019

Что вы подразумеваете под 2. Добавьте в мою таблицу столбцы, которые преобразованы в числовые, потому что не все AcctNum отформатированы одинаково, поэтому они должны оставаться текстовыми?

Вы можете сделать это с помощью массива или вспомогательного столбца, кроме этого, если вы не уверены, возможно ли это с помощью SUMIFS.

...