Почему не работает массив в 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.

Как узнать, является ли данная формула формулой массива? Что вообще она означает?

На этапе создания формула (или также функция) сама по себе не является ни формулой массива, ни обычной формулой. Это вы определяете, как Excel должен истолковать формулу, которую вы вводите. То, что формула является формулой массива – это не столько особенность самой формулы, а скорее способом, которым программа Excel введенную формулу «обрабатывает». Подтверждение формулы с помощью сочетания клавиш «Ctrl + Shitf + Enter» – это является для Excelя командой на выполнение (обработку данных) как массив вычислений. Тогда он используется в качестве аргумента функции и возвращает в качестве результата вычислений таблицу (массив данных).

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

Некоторые функции Excelя по умолчанию в качестве аргумента принимают диапазон ячеек (массив) и в результате возвращают одно значение. Отличными примерами являются функции СУММ, СЧЕТЕСЛИ, СРЗНАЧ и т.д. Для этих функций не имеет никакого значения, вводите ли вы их как функции массива или нет. Они и так обрабатывают таблицы, и найдут выход (сработают правильно) из любой ситуации. Вот такие маленькие Excel-евские приспособленцы.

К счастью, существуют другие функции, которые работают совершенно иначе, т.е. в зависимости от вашего решения относительно их принадлежности к «функциям массива» (иногда они вообще не хотят работать). Прекрасным примером является функция ЕСЛИ.



Когда формула является формулой массива, а когда обычной?

Для начала определимся как выглядит обычный массив значений в Excel. Это значения, которые находятся внутри фигурных скобок и разделены между собой точкой с запятой. Например:

{23;-32;15;7} – это синтаксис массива значений в Excel. Он может быть использован в аргументах функций.

Диапазон ячеек A1:A4 – так же является массивом значений в Excel. Естественно так же используется в аргументах функций. Например сравним результаты вычислений двух формул: =СУММ(A1:A4) и =СУММ({23;-32;15;7}) – они идентичны:

Массив логических значений.

Визуально формула массива находится так же внутри фигурных скобок, но они не должны быть введены вручную, а только лишь при помощи комбинации клавиш CTRL+SHIFT+Enter. Если ввести вручную фигурные скобки, то формула не будет выполнятся в массиве – это будет синтаксическая ошибка в Excel.

Формула массива (введенная с помощью сочитания CTRL+SHIFT+Enter) будет использоваться везде, где вы хотите, чтобы функция, которая обычно работает с отдельными значениями (ячейками), внезапно повела себя иначе и приняла в качестве аргумента и вернула в качестве результата массив значений (таблицу). Вернемся к уже упомянутой функции ЕСЛИ. В качестве аргумента она принимает логическое значение ИСТИНА или ЛОЖЬ. В классической форме:

=ЕСЛИ($A$1>0;»больше»;»меньше»)

ЕСЛИ.

Если значение в ячейке A1 больше нуля, в качестве аргумента функция получит значение ИСТИНА и в качестве результата вернет текстовую строку «больше». Однако, если бы вы хотели проверить несколько ячеек сразу и передать результат такой проверки другой функции, вы должны были бы использовать вышеуказанную формулу как формулу массива. Для этого при вводе нажмем сочитание клавиш CTRL+SHIFT+Enter, а не как обычно (просто Enter):

Сочетание клавиш формулы массива.

{=ЕСЛИ($A$1:$A$4>0;»больше»;»меньше»)}

Формула массива в фигурных скобках.

В качестве аргумента функция принимает целый диапазон $A$1:$A$4. В результате проверки каждой ячейки диапазона в памяти компьютера создается таблица значений в массиве. Схематически таблицу можно отобразить так:

Таблица в памяти компьютера.

А так выглядят эти значения в массиве:

{ИСТИНА;ЛОЖЬ;ИСТИНА;ИСТИНА}

Например, чтобы прочитать этот массив и получить второе значение (сделать выборку значений) воспользуемся функцией:

=ИНДЕКС({ИСТИНА;ЛОЖЬ;ИСТИНА;ИСТИНА};2)

ИНДЕКС.

Тоже самое что и:

Выборка из массива значений.

Затем создается другая таблица, значения которой зависят непосредственно от значений в первой таблице. Если элемент в первом массиве имеет значение ИСТИНА, во втором массиве он примет значение «больше». Если он имеет значение ЛОЖЬ, элемент во второй таблице примет значение «меньше». После этой операции первая таблица удаляется из памяти компьютера, и в конечном счете, функция возвращает массив {«больше», «меньше», «больше», «больше»}. Схематически вторую таблицу можно отобразить так:

Так же ее можно прочитать функцией:

=ИНДЕКС({«больше»;»меньше»;»больше»;»больше»};2)

Массив значений.

В примере с функцией ЕСЛИ была введена формула массива только в одну ячейку, поэтому в результате получили только одно значение, соответствующее первому значению в таблице. Однако достаточно ввести формулу массива в диапазон ячеек, чтобы увидеть все значения массива результатов. Для этого выделяем диапазон из нескольких ячеек, нажимаем клавишу F2 (или заново вводим формулу вручную) и жмем CTRL+SHIFT+Enter.

Все значения массива.

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

Примеры как использовать формулу массива в Excel

Это все хорошо, но возникают некоторые вопросы: «Зачем же нужна формула массива?» или «Как или где использовать формулу в массиве?», «Чем она лучше обычной формулы?».

Разумеется, массив, возвращаемый функцией ЕСЛИ, может передаваться далее на «обработку» в качестве аргумента для другой функции.

Пример. Представим, что вы хотели бы найти сумму ячеек B7:B10, но только тех, которые имеют значение больше нуля. Конечно же, вы можете использовать функцию СУММЕСЛИ, однако в нашем примере мы хотим сделать это только с помощью формулы массива. Суммируя значения ячеек нашего диапазона, необходимо будет как-то избавиться от значения «-32». Функции СУММ необходимо передать массив, в котором содержатся только значения больше нуля. Везде там, где значение меньше нуля, мы заменяем его на ноль, что, конечно же, не повлияет на результат. Как вы уже знаете, временную таблицу с соответствующими значениями вы можете получить, используя функцию ЕСЛИ. В конечном итоге соответствующая формула будет выглядеть так:

СУММ.

Вводим формулу и не забываем для подтверждения ввода нажать комбинацию клавиш CTRL+SHIFT+Enter. В результате проверки каждой ячейки диапазона $A$1:$A$4 (является ли значение больше нуля) в памяти компьютера создается массив {ИСТИНА; ЛОЖЬ; ИСТИНА; ИСТИНА}. Затем создается очередная таблица. Если элемент в первом массиве имеет значение ИСТИНА, то во второй таблице будет отображаться значение из соответствующей ячейки. Если он имеет значение ЛОЖЬ, то элемент во второй таблице примет значение 0. После этой операции первая таблица удаляется из памяти компьютера, и в конечном итоге функция ЕСЛИ возвращает массив {23; 0; 15; 7}. Затем эта таблица передается в качестве аргумента функции =СУММ({23; 0; 15; 7}), которая, согласно своему предназначению, возвращает сумму всех элементов в таблице. В нашем примере сумма равна 45. В завершении, посмотрите, что произойдет, если вы скажете Excelю обработать приведенную выше формулу не как формулу массива.

не массив без фигурных скобок.

Ни одна из описанных выше таблиц, в этом случае, не будет создана. Только одна ячейка диапазона будет проверена (ячейка в той же строке, в которой находится функция). В нашем случае 15>0 значит, как первый аргумент функция ЕСЛИ получит логическое значение ИСТИНА. Затем ВЕСЬ диапазон A1:A4 будет передан функции СУММ, и в результате функция возвращает значение равное 13 (23-32+15+7). Если бы в ячейке вместо значения 15 было число меньше нуля, функция ЕСЛИ в качестве аргумента получила бы значение ЛОЖЬ, и, следовательно, только значение нуля было бы передано функции СУММ. Наша функция СУММ в результате также вернет значение равное нулю.

Как отличать формулу массива от обычной формулы

При нажатии клавиш CTRL+SHIFT+Enter для подтверждения ввода в строке формул будут отображены фигурные скобки по краям. Значит данная формула выполняется в массиве. Но что если еще на этапе создания неизвестно какой тип формул следует применять?

Правильное «распознавание», когда следует нажимать CTRL+SHIFT+Enter, а когда просто Enter полностью зависит от понимания того, как работают массивы в формулах. Когда вы это поймете, сможете сказать, что конкретную формулу следует вводить (подтверждать) сочетанием клавиш – CTRL+SHIFT+Enter.

Конечно же, не подтвержденная, а просто как формула также может возвращать КАКОЙ-ТО результат (в чем вы могли только что убедиться сами). Однако, если вы сможете прочитать формулу и понять механизм, то вы заметите, что такой результат является ОШИБОЧНЫМ. И поэтому для правильной работы формулы вам необходимо ее подтвердить «Ctr+Shift+Enter». Как и все, понимание и использование формул массива требует практики. Тем не менее, стоит некоторое время посвятить тому, чтобы во всем разобраться. Потому что формулы массива позволяют решить многие проблемы, которые на первый взгляд могут казаться неразрешимыми.

Примеры вычислений и анализа формул массива

Каким образом можно просматривать и проверять значения промежуточных результатов расчета, например, содержание массивов, созданных в памяти компьютера и используемых для выполнения последующих действий? Ничего сложного! Пример 1:

Перейдите на ячейку с формулой, а затем в строке формул выделите в первом аргументе функции ссылку на диапазон ячеек:

ссылка на диапазон ячеек.

Нажмите клавишу F9 (или «Пересчет» в правом верхнем углу меню «Формулы»), и вы получите (в строке формулы) значения аргументов, которые используются для вычислений, как показано ниже:

Содержимое массива.

— запись с использованием двоеточий означает, что мы имеем дело с элементами вертикального (столбикового) массива, элементы горизонтального (строкового) разделены стандартным символом — «;» (точкой с запятой).

Пример 2: Снова перейдите на ячейку с формулой массива, но на этот раз выделите первый аргумент функции целиком вместе со знаком сравнения «>» и значением критерия – «0»).

вместе с оператором сравнения и аргументом.

Нажмите кнопку F9, и вы получите массив результатов вычислений, как показано ниже:

массив результатов вычислений.

То есть, созданный в памяти компьютера массив:

{ИСТИНА:ЛОЖЬ:ИСТИНА:ИСТИНА}

Пример 3: Выделите ячейку формулой массива где в функцию СУММ вложена функция ЕСЛИ. Затем в строке формул выберите весь аргумент функции СУММ (вместе с функцией ЕСЛИ):

аргумент целиком с функцией и ссылками.

Нажмите клавишу F9 и вы получите массив итоговых результатов вычисления, которые используются для суммирования, как показано ниже:

Массив итоговых результатов вычисления.

То есть, созданный в памяти компьютера массив:

{23157}

Пример 4: Просто перейдите на ячейку с формулой B1 и выберите инструмент «ФОРМУЛЫ»-«Зависимости формул»-«Вычислить формулу»

Вычислить формулу.

После чего нажмите на кнопку «Вычислить»:

Кнопка Вычислить.

В результате ссылка на диапазон ячеек в аргументе вложенной функции ЕСЛИ разложилась на массив значений. Снова нажмите на кнопку «Вычислить»:

Готово.

Мы получили массив значений теперь уже для функции СУММ. Такой же, как и в примере 3.

Читайте также: Работа с массивами функций в Excel.

Часто неопытные пользователи Excel возмущаются, что формула не работает. В конце концов оказалось, как легко догадаться, формулу в массиве вводили как обычную (просто Enter). Речь идет не о недоразумении, которое произошло, а о том факте, что у этих пользователей возникает вопрос: как избегать таких ошибок? Поэтому важно сразу во всем разобраться, чтобы в дальнейшем больше не задавать таких вопросов.

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

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