Почему не работает формула массива в excel

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

нашел мощную формулу массива типа автофильтра (выборка по 2 и более критериям!!!!)  

http://spreadsheetpage.com/index.php/tip/summing_and_counting_using_multiple_criteria/  

  НО!!!  
то ли от активности на солнце, то ли еще чего  
размер и положение «просматриваемых диапазонов» меняется. (((((((  

  например формула  
=SUM((A2:A1000=»Jan»)*(B2:B1000=»North»)*C2:C1000)  
сегодня все работает.  

  завтра добавляю в массив еще 1000 строк получаю формулу  
=SUM((A2:A2000=»Jan»)*(B2:B2000=»North»)*C2:C2000)  
НЕ РАБОТАЕТ!!!!  

  формат ячеек копировал. не помогает.  
было такое: нужно просматривать колонку «А», а формула видит только с колонки «С».  
пришлось вставлять пустые колонки, что бы сместить «А» на место «С»  

  в чем заковырка?  
хелп плиз.

 

После ввода или изменения формулы массива нажать Ctrl+Shift+Enter не забываете?

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=}{date=13.04.2010 08:40}{thema=}{post}После ввода или изменения формулы массива нажать Ctrl+Shift+Enter не забываете?{/post}{/quote}  

  не забываю.

 

Dophin

Пользователь

Сообщений: 2684
Регистрация: 01.01.1970

вычислите формулу пошагово -посмотрите как и где спотыкается, выложите пример с неработающей формулой.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

{quote}{login=StalkeR}{date=13.04.2010 07:04}{thema=периодически не работает формула массива}{post}было такое: нужно просматривать колонку «А», а формула видит только с колонки «С». пришлось вставлять пустые колонки, что бы сместить «А» на место «С»{/post}{/quote}  
Меня это смутило. В любом случае лучше показать «вредный» файл (Не более 100 Кб!)

 

{quote}{login=The_Prist}{date=13.04.2010 09:31}{thema=}{post}Может стоит диапазоны закрепить?  

  =SUM(($A$2:$A$2000=»Jan»)*($B$2:$B$2000=»North»)*$C$2:$C$2000)  

  А еще можно обойтись без Ctrl+Shift+Enter  

  =SUMPRODUCT(($A$2:$A$2000=»Jan»)*($B$2:$B$2000=»North»);$C$2:$C$2000){/post}{/quote}  

  извините, а по-русски это как? ))))  

  я написал по англицки ибо со страницы формулу стащил для простоты. )))

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=vikttur}{date=13.04.2010 09:32}{thema=}{post}{quote}{login=StalkeR}{date=13.04.2010 07:04}{thema=периодически не работает формула массива}{post}было такое: нужно просматривать колонку «А», а формула видит только с колонки «С». пришлось вставлять пустые колонки, что бы сместить «А» на место «С»{/post}{/quote}  
Меня это смутило. В любом случае лучше показать «вредный» файл (Не более 100 Кб!){/post}{/quote}  

  более. ((( 4,8мб.  

  архив в мыло?

 

Микки

Пользователь

Сообщений: 3280
Регистрация: 24.12.2012

{quote}{login=}{date=13.04.2010 09:38}{thema=Re: }{post}{quote}{login=The_Prist}{date=13.04.2010 09:31}{thema=}{post}Может стоит диапазоны закрепить?  

  =SUM(($A$2:$A$2000=»Jan»)*($B$2:$B$2000=»North»)*$C$2:$C$2000)  

  А еще можно обойтись без Ctrl+Shift+Enter  

  =SUMPRODUCT(($A$2:$A$2000=»Jan»)*($B$2:$B$2000=»North»);$C$2:$C$2000){/post}{/quote}  

  извините, а по-русски это как? ))))  

  я написал по англицки ибо со страницы формулу стащил для простоты. ))){/post}{/quote}  
SUM=СУММ  
SUMPRODUCT=СУММПРОИЗВ  
«Jan»=Январь  
North=Север

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Упростите пример, сохранив структуру данных, строк 20-30 достаточно.

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=vikttur}{date=13.04.2010 09:32}{thema=}{post}{quote}{login=StalkeR}{date=13.04.2010 07:04}{thema=периодически не работает формула массива}{post}было такое: нужно просматривать колонку «А», а формула видит только с колонки «С». пришлось вставлять пустые колонки, что бы сместить «А» на место «С»{/post}{/quote}  
Меня это смутило. В любом случае лучше показать «вредный» файл (Не более 100 Кб!){/post}{/quote}  

  да!!!  
и моем «вредном» файле вопрос по сути в этом!  

  просматривает со 2 стоки по 900. делаешь больше — ошибка.  

  один чел говорит проблемы в длинных именах просматриваемых строк.  
но ведь до 900 тоже строки текстовые длинные….

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

У Вас еще и «имена строк»? Тем более покажите зверя :)  
По поводу языка тоже настораживает. У Вас локализация русская и формула работала?  
Или Excel английский, но хотите пристроить «русскую» формулу?  
Чем дальше, тем больше вопросов…

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=vikttur}{date=13.04.2010 09:47}{thema=}{post}У Вас еще и «имена строк»? Тем более покажите зверя :)  
По поводу языка тоже настораживает. У Вас локализация русская и формула работала?  
Или Excel английский, но хотите пристроить «русскую» формулу?  
Чем дальше, тем больше вопросов…{/post}{/quote}  

  возможно я не правильно формулирую названия… )))  
короче суть в файле. только архив иначе 1мб весит  
900 строк считает — выделено желтым  
ставлю 1500 — балалайка  
(((((((((((

 

Haken

Пользователь

Сообщений: 495
Регистрация: 09.01.2013

У Вас в ячейке D969 на листе «потреб» стоит «56/0.11». Это значение не суммируется и из-за этого ошибка вылетает при расчетах.

 

Dophin

Пользователь

Сообщений: 2684
Регистрация: 01.01.1970

ну и что? сложно было самому ошибку выцепить чтоли?  

  у вас в ячейке Д969 стоит значение 56/0.11, что не является числом и выдает ошибку.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

D969=56/0.11 — неверное значение, об него и спотыкается.

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=Dophin}{date=13.04.2010 10:01}{thema=}{post}ну и что? сложно было самому ошибку выцепить чтоли?  

  у вас в ячейке Д969 стоит значение 56/0.11, что не является числом и выдает ошибку.{/post}{/quote}  

  прошу прощения, что отнял время.  
всем большое спасибо.  

  …а сводная суммирует…. 8-\\

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

{quote}{login=StalkeR}{date=13.04.2010 10:32}{thema=Re: }{post}  
…а сводная суммирует…. 8-\\{/post}{/quote}  
Ни фига. Сводная при суммировании просто игнорирует нечисловые значения.  
Проверьте.  

  В сводной Шплинт 3.2х32.019 ГОСТ397-79 даёт значение 0,60  
из    
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 56/0.11  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=The_Prist}{date=13.04.2010 10:42}{thema=}{post}=СУММ((потреб!$B$2:$B$1500=$A5)*(потреб!$A$2:$A$1500=D$4)*Ч(потреб!$D$2:$D$1500)){/post}{/quote}  

  это чего? Ч будет только числовые суммировать?  
когда не важна точность результата — очень даже пригодится 8)

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=Serge 007}{date=13.04.2010 10:45}{thema=Re: Re: }{post}{quote}{login=StalkeR}{date=13.04.2010 10:32}{thema=Re: }{post}  
…а сводная суммирует…. 8-\\{/post}{/quote}  
Ни фига. Сводная при суммировании просто игнорирует нечисловые значения.  
Проверьте.  

  В сводной Шплинт 3.2х32.019 ГОСТ397-79 даёт значение 0,60  
из    
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 56/0.11  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10  
Шплинт 3.2х32.019 ГОСТ397-79 кг 0,10{/post}{/quote}  

  не просчитывал, просто исправил  

  если число * текст = ошибка  
это есть индикатор что что-то не так  
а если сводная игноририет такие ошибки, то кому верить? (((

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Верить правильным данным. Или ставить проверку, например, =СЧЕТЗ(диапазон)-СЧЕТ(диапазон)

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

{quote}{login=StalkeR}{date=13.04.2010 11:55}{thema=Re: Re: Re: }{post}  
если число * текст = ошибка  
это есть индикатор что что-то не так  
а если сводная игноририет такие ошибки, то кому верить? ((({/post}{/quote}  
Что значит «кому верить»?  
Если число * текст = ошибка, то оно и в сводной ошибкой будет. А у Вас не число * текст, а просто «число/текст» (т.е. текст), что ошибкой не является. В документации к сводным это есть. «При суммировании значений текстовые данные игнорируются.»  
Как-то так…

 

Stalker

Пользователь

Сообщений: 19
Регистрация: 01.01.1970

{quote}{login=Serge 007}{date=13.04.2010 12:07}{thema=Re: Re: Re: Re: }{post}{quote}{login=StalkeR}{date=13.04.2010 11:55}{thema=Re: Re: Re: }{post}  
если число * текст = ошибка  
это есть индикатор что что-то не так  
а если сводная игноририет такие ошибки, то кому верить? ((({/post}{/quote}  
Что значит «кому верить»?  
Если число * текст = ошибка, то оно и в сводной ошибкой будет. А у Вас не число * текст, а просто «число/текст» (т.е. текст), что ошибкой не является. В документации к сводным это есть. «При суммировании значений текстовые данные игнорируются.»  
Как-то так…{/post}{/quote}  

  не то имею ввиду.  
берем ту же, пропущенную мной при форматировании, ячейку….  
ставим E969=D969*5  
пишет #ЗНАЧ!  
а сводная проглатывает — это плохо.  

  если таких строк с материалами и количествами 10000 будет?  
нет ну я конечно буду внимательнее просматривать в следующий раз, но все же…  
((((

 

Serge

Пользователь

Сообщений: 11308
Регистрация: 01.01.1970

#23

13.04.2010 13:00:42

{quote}{login=StalkeR}{date=13.04.2010 12:31}{thema=Re: Re: Re: Re: Re: }Не то имею ввиду.  
берем ту же, пропущенную мной при форматировании, ячейку….  
ставим E969=D969*5  
пишет #ЗНАЧ!  
а сводная проглатывает — это плохо.  
{/post}{/quote}Именно то. Сводная #ЗНАЧ не «проглатывает». В ней тоже будет #ЗНАЧ, если Вы принудительно не поставите что-то в параметрах сводной «Для ячеек с ошибкой отображать   » .  

  См пример.

Прикрепленные файлы

  • post_116734.xls (67 КБ)

<#0>

@california2007 

Sorry, but I disagree.  To use 365 as if nothing has changed is a dreadful choice.  True Mike Girvin puts out some great material with more tricks than a cart load of monkeys, but the game has changed.  All of the time-honoured tricks with AGGREGATE (to compress a list of indices) and ROW (to generate a sequence of numbers) are no longer needed.

= FILTER(Table, (SalesRep=SelectedRep)*(Date=selectedDate))

is neater or, padding it out

= LET(
    repCriterion,  (SalesRep=selectedRep)+(selectedRep=""),
    dateCriterion, (Date=selectedDate)+(selectedDate=""),
    FILTER(Table, repCriterion*dateCriterion)
  )

is more flexible in terms of catering for omitted criteria.  Similarly, Mike’s other formula would now be

= TAKE(SORTBY(UnitsRep, Units,-1), Top)

or, failing that,

= INDEX(
    SORTBY(UnitsRep, Units,-1), 
    SEQUENCE(Top),
    {1,2}
  )

enter image description here

On the illustration all formulas are array. The range that each formula spans is bordered, and the first formula on each block is written on the top of that block.

Range A4:A103 is an input vector (which is numeric), range C4:G23 is a given (input) permutation of the rows of A4:A103 (necessarily positive non-zero integer numbers not greater then the length of the input vector).

Let us I interpret the permutation matrix as set of rows.

How to compute for each row in a constant number of cells the minimal number in the input vector? By the constant number of cells, I mean solution, that would require fixed number of cells for each row, regardless of the number of columns in permutation. (In the production case each dimension is much, much bigger; there is about 100 columns in the permutation matrix.)

I don’t ask for VBA solutions. If it is necessary the solution can use a free and publicly available Excel add-on, like MoreFunc, but I’d prefer to keep it vanilla Excel 2007 or later.


I thought that the formula {=MIN(INDEX(INDIRECT($A$2);$C4:$G4))} would solve my problem. Surprisingly, Excel seems to not take into account the array nature of the formula, and evaluates it as if it was written as =MIN(INDEX(INDIRECT($A$2);$C4) which is equivalent to dysfunctional =INDEX(INDIRECT($A$2);$C4).

On the other hand, we can see the argument to the MIN is understood as array in the range I4:M4.

Правила изменения формул массива

Вы пытаетесь изменить формулу массива и не можете ее найти. Если вы щелкните формулу в ячейке или в области формулы, вы ничего не сможете изменить. Формулы массива — это особые варианты, поэтому вы можете делать следующее:

Если вы ввели формулу массива с одной ячейкой, выберите ячейку, нажмите F2, введите изменения и нажмите CTRL + SHIFT + ENTER.

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

Вы не можете перемещать отдельные ячейки, содержащие формулу, но можете перемещать их все как группу, и ссылки на ячейки в формуле изменятся вместе с ними. Чтобы переместить их, выберите все ячейки, нажмите CTRL + X, выберите новое место и нажмите CTRL + V.

Вы не можете удалить ячейки в формуле массива (вы увидите ошибку «Невозможно изменить часть массива»), но вы можете удалить всю формулу и начать заново.

Вы не можете добавлять новые ячейки в блок ячеек результата, но вы можете добавить новые данные на свой компьютер, а затем развернуть формулу.

После внесения изменений нажмите CTRL + SHIFT + ENTER.

Наконец, вы можете сэкономить время, используя константы массива, которые являются частями формулы массива, которую вы вставляете в формулу. Но у них также есть некоторые правила для редактирования и использования. 

Нельзя изменять часть массива. Ошибка Excel

Сталкивались ли вы с ошибкой типа «Невозможно изменить часть массива»? Недавно я несколько раз сталкивался с файлом, в котором невозможно было удалить определенные строки или столбцы, вместо этого выскакивает ошибка, как показано

1. Нельзя изменять часть массива — уберите все объединение ячеек в файле

Как мы уже неоднократно обсуждали, конкатенация ячеек — это локальное зло в Excel. Если вам нужно создать красивый текстовый дизайн, выровняйте его по центру, тогда вы можете воспользоваться специальной функцией Excel.

Чтобы убрать слияние ячеек целиком, достаточно выполнить простые действия: выделить всю таблицу на листе, нажав кнопку в верхнем левом углу

Я рекомендую выбрать именно эту кнопку и не выбирать ее вручную, возможно, у вас есть объединения в невидимой части таблицы.

Затем перейдите в Main — Alignment Block — Кнопка Merge Cells, если она активна, как на картинке, то есть слияния — нажмите на нее, это должно помочь.

2. Используется формула массива

Если предыдущий пункт не помог, попробуйте этот. Используется ли в расчетах формула массива? Удалите его на время внесения изменений, если вы не знаете, есть ли он в файле, сделайте следующее:

Мы включаем видимость всех формул в модуле зависимости формул в меню Формула

Невозможно изменить часть массива 4

И посмотрите, где находятся формулы в фигурных скобках . 

3. Ячейка ссылает на группу ячеек с формулой массива

Скорее всего, это сбой в Excel 2007 и более ранних версиях. Те есть формула массива, она корректно работает и тд. Но обратитесь к 2 или более ячейкам этого массива, например, для вычисления суммы.

При попытке удалить строку, в которой подсчитывается сумма, отображается указанная выше ошибка. Я не могу опубликовать пример — защищенный конфиденциальностью, но поверьте мне на слово, я потратил 10 минут, исследуя, почему я не могу удалить строку.

Проблема обнаружена только в этом файле. Об этой ошибке уже сообщалось на англоязычных форумах, и в версиях 10 и выше ее необходимо исправить.

Я могу предложить поискать такое условие самостоятельно или, если файл огромен, перенести данные на новый чистый лист в качестве значения и заново переписать формулы.

Если это не поможет, вам, по-видимому, придется перенести данные в блокнот, чтобы все форматы и мусор не сохранялись и не возвращались в Excel, но я рекомендую вам делать это только в самых крайних случаях.

Почему не работает формула массива в таблице?

Rusel

Дата: Вторник, 31.07.2012, 13:14 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 156


Репутация:

10

±

Замечаний:
0% ±


Добрый день. В приложении файлик, который был создан при непосредственной помощи форумчан. Но, что-то не так там сейчас, точнее — при добавлении строк в таблице А56:F57 не подсчитывается площадь в ячейке B52, т.е. не учитывает данные в новых добавленных строках. Что там не так, подскажите?

К сообщению приложен файл:

__.xlsx
(35.1 Kb)

 

Ответить

Serge_007

Дата: Вторник, 31.07.2012, 14:18 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Диапазоны-то в формуле тоже надо увеличить smile
Так например:

Code

=СУММПРОИЗВ(0,000001*C57:C100*D57:D100*E57:E100)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Rusel

Дата: Вторник, 31.07.2012, 14:22 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 156


Репутация:

10

±

Замечаний:
0% ±


Но в формуле в ячейке В53 диапазоны формулы увеличиваются автоматически при добавлении новых строк в таблице, а в ячейке В52 это не происходит. Почему?

 

Ответить

Serge_007

Дата: Вторник, 31.07.2012, 14:29 |
Сообщение № 4

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Как добавляете данные?
Если Вы протягиваете таблицу за маркер автозаполнения или вносите данные в строку под ней — то формулы (ОБЕ!) будут самостоятельно увеличивать диапазон. Если Вы просто изменяете размер области печати (тяните за синенькую рамочку), то естественно, формулы автоматически меняться не будут. ОБЕ.


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

_Boroda_

Дата: Вторник, 31.07.2012, 14:32 |
Сообщение № 5

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Напишите вот так

Code

=СУММ(0,000001*Таблица1[кол-во]*Таблица1[длина (L)]*Таблица1[ширина (W)])

и не морочьтесь


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Rusel

Дата: Вторник, 31.07.2012, 15:02 |
Сообщение № 6

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 156


Репутация:

10

±

Замечаний:
0% ±


Serge_007, строки в таблице добавлял путем внесения новых данных в строках ниже заполненной, а не протягиванием диапазона печати. И в этом случае иногда диапазон в формуле площади увеличивается иногда нет. Не понял почему такое происходит. Но воспользовался советом Borodы, думаю проблема решена. Спасибо всем, кто откликнулся!!!

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Почему не работает формула если в excel
  • Почему не работает формула впр в excel для
  • Почему не работает формула в ячейке excel
  • Почему не работает формула в excel при протягивании
  • Почему не работает формула в excel пишет значение