Stalker Пользователь Сообщений: 19 |
нашел мощную формулу массива типа автофильтра (выборка по 2 и более критериям!!!!) http://spreadsheetpage.com/index.php/tip/summing_and_counting_using_multiple_criteria/ НО!!! например формула завтра добавляю в массив еще 1000 строк получаю формулу формат ячеек копировал. не помогает. в чем заковырка? |
После ввода или изменения формулы массива нажать Ctrl+Shift+Enter не забываете? |
|
Stalker Пользователь Сообщений: 19 |
{quote}{login=}{date=13.04.2010 08:40}{thema=}{post}После ввода или изменения формулы массива нажать Ctrl+Shift+Enter не забываете?{/post}{/quote} не забываю. |
Dophin Пользователь Сообщений: 2684 |
вычислите формулу пошагово -посмотрите как и где спотыкается, выложите пример с неработающей формулой. |
vikttur Пользователь Сообщений: 47199 |
{quote}{login=StalkeR}{date=13.04.2010 07:04}{thema=периодически не работает формула массива}{post}было такое: нужно просматривать колонку «А», а формула видит только с колонки «С». пришлось вставлять пустые колонки, что бы сместить «А» на место «С»{/post}{/quote} |
{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 |
{quote}{login=vikttur}{date=13.04.2010 09:32}{thema=}{post}{quote}{login=StalkeR}{date=13.04.2010 07:04}{thema=периодически не работает формула массива}{post}было такое: нужно просматривать колонку «А», а формула видит только с колонки «С». пришлось вставлять пустые колонки, что бы сместить «А» на место «С»{/post}{/quote} более. ((( 4,8мб. архив в мыло? |
Микки Пользователь Сообщений: 3280 |
{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} |
vikttur Пользователь Сообщений: 47199 |
Упростите пример, сохранив структуру данных, строк 20-30 достаточно. |
Stalker Пользователь Сообщений: 19 |
{quote}{login=vikttur}{date=13.04.2010 09:32}{thema=}{post}{quote}{login=StalkeR}{date=13.04.2010 07:04}{thema=периодически не работает формула массива}{post}было такое: нужно просматривать колонку «А», а формула видит только с колонки «С». пришлось вставлять пустые колонки, что бы сместить «А» на место «С»{/post}{/quote} да!!! просматривает со 2 стоки по 900. делаешь больше — ошибка. один чел говорит проблемы в длинных именах просматриваемых строк. |
vikttur Пользователь Сообщений: 47199 |
У Вас еще и «имена строк»? Тем более покажите зверя |
Stalker Пользователь Сообщений: 19 |
{quote}{login=vikttur}{date=13.04.2010 09:47}{thema=}{post}У Вас еще и «имена строк»? Тем более покажите зверя возможно я не правильно формулирую названия… ))) |
Haken Пользователь Сообщений: 495 |
У Вас в ячейке D969 на листе «потреб» стоит «56/0.11». Это значение не суммируется и из-за этого ошибка вылетает при расчетах. |
Dophin Пользователь Сообщений: 2684 |
ну и что? сложно было самому ошибку выцепить чтоли? у вас в ячейке Д969 стоит значение 56/0.11, что не является числом и выдает ошибку. |
vikttur Пользователь Сообщений: 47199 |
D969=56/0.11 — неверное значение, об него и спотыкается. |
Stalker Пользователь Сообщений: 19 |
{quote}{login=Dophin}{date=13.04.2010 10:01}{thema=}{post}ну и что? сложно было самому ошибку выцепить чтоли? у вас в ячейке Д969 стоит значение 56/0.11, что не является числом и выдает ошибку.{/post}{/quote} прошу прощения, что отнял время. …а сводная суммирует…. 8-\\ |
Serge Пользователь Сообщений: 11308 |
{quote}{login=StalkeR}{date=13.04.2010 10:32}{thema=Re: }{post} В сводной Шплинт 3.2х32.019 ГОСТ397-79 даёт значение 0,60 |
Stalker Пользователь Сообщений: 19 |
{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} это чего? Ч будет только числовые суммировать? |
Stalker Пользователь Сообщений: 19 |
{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} В сводной Шплинт 3.2х32.019 ГОСТ397-79 даёт значение 0,60 не просчитывал, просто исправил если число * текст = ошибка |
vikttur Пользователь Сообщений: 47199 |
Верить правильным данным. Или ставить проверку, например, =СЧЕТЗ(диапазон)-СЧЕТ(диапазон) |
Serge Пользователь Сообщений: 11308 |
{quote}{login=StalkeR}{date=13.04.2010 11:55}{thema=Re: Re: Re: }{post} |
Stalker Пользователь Сообщений: 19 |
{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} не то имею ввиду. если таких строк с материалами и количествами 10000 будет? |
Serge Пользователь Сообщений: 11308 |
#23 13.04.2010 13:00:42 {quote}{login=StalkeR}{date=13.04.2010 12:31}{thema=Re: Re: Re: Re: Re: }Не то имею ввиду. См пример. Прикрепленные файлы
<#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}
)
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. Используется формула массива
Если предыдущий пункт не помог, попробуйте этот. Используется ли в расчетах формула массива? Удалите его на время внесения изменений, если вы не знаете, есть ли он в файле, сделайте следующее:
Мы включаем видимость всех формул в модуле зависимости формул в меню Формула
И посмотрите, где находятся формулы в фигурных скобках .
3. Ячейка ссылает на группу ячеек с формулой массива
Скорее всего, это сбой в Excel 2007 и более ранних версиях. Те есть формула массива, она корректно работает и тд. Но обратитесь к 2 или более ячейкам этого массива, например, для вычисления суммы.
При попытке удалить строку, в которой подсчитывается сумма, отображается указанная выше ошибка. Я не могу опубликовать пример — защищенный конфиденциальностью, но поверьте мне на слово, я потратил 10 минут, исследуя, почему я не могу удалить строку.
Проблема обнаружена только в этом файле. Об этой ошибке уже сообщалось на англоязычных форумах, и в версиях 10 и выше ее необходимо исправить.
Я могу предложить поискать такое условие самостоятельно или, если файл огромен, перенести данные на новый чистый лист в качестве значения и заново переписать формулы.
Если это не поможет, вам, по-видимому, придется перенести данные в блокнот, чтобы все форматы и мусор не сохранялись и не возвращались в Excel, но я рекомендую вам делать это только в самых крайних случаях.
Почему не работает формула массива в таблице? |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |