Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Предлагает сохранить изменения в файле без изменений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Предлагает сохранить изменения в файле без изменений (Формулы/Formulas)
Предлагает сохранить изменения в файле без изменений
justplan Дата: Понедельник, 30.11.2015, 09:59 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день. Суть проблемы: имеется файл .xlsx без использования в нем каких-либо волатильных функций. Каждый раз при закрытии предлагает сохранить изменения в файле, хотя никаких изменений не было, просто открыл-закрыл. Файл мой, никаких vba-скриптов в нем нет.
Таблица 2х12:
100 10
100 10
100 35
100 35
160 10
160 10
160 35
160 35
250 10
250 10
250 35
250 35

В D1 задаю число из первого столбца, в D2 из второго. Нужно получить порядковый номер значения из второго столбца в диапазоне соответствующем значению из первого. То есть для значений 160 35 получить значение 3, а для 250 10 значение 1.

Сама проблемная функция:
Код
=ПОИСКПОЗ(D2;ИНДЕКС(ИНДЕКС(A:A;ПОИСКПОЗ(D1;A:A;0)):ИНДЕКС(B:B;ПОИСКПОЗ(D1;A:A));;2);0)


Я специально искал замену для функции СМЕЩ(), чтобы такого не было, а по факту выходит, что поменял шило на мыло. Из-за чего так происходит?
 
Ответить
СообщениеДобрый день. Суть проблемы: имеется файл .xlsx без использования в нем каких-либо волатильных функций. Каждый раз при закрытии предлагает сохранить изменения в файле, хотя никаких изменений не было, просто открыл-закрыл. Файл мой, никаких vba-скриптов в нем нет.
Таблица 2х12:
100 10
100 10
100 35
100 35
160 10
160 10
160 35
160 35
250 10
250 10
250 35
250 35

В D1 задаю число из первого столбца, в D2 из второго. Нужно получить порядковый номер значения из второго столбца в диапазоне соответствующем значению из первого. То есть для значений 160 35 получить значение 3, а для 250 10 значение 1.

Сама проблемная функция:
Код
=ПОИСКПОЗ(D2;ИНДЕКС(ИНДЕКС(A:A;ПОИСКПОЗ(D1;A:A;0)):ИНДЕКС(B:B;ПОИСКПОЗ(D1;A:A));;2);0)


Я специально искал замену для функции СМЕЩ(), чтобы такого не было, а по факту выходит, что поменял шило на мыло. Из-за чего так происходит?

Автор - justplan
Дата добавления - 30.11.2015 в 09:59
justplan Дата: Понедельник, 30.11.2015, 10:17 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Файл
К сообщению приложен файл: 5515299.xlsx (9.2 Kb)
 
Ответить
СообщениеФайл

Автор - justplan
Дата добавления - 30.11.2015 в 10:17
Manyasha Дата: Понедельник, 30.11.2015, 11:08 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
justplan, если правильно поняла, то можно заменить такой формулой:
Код
=МИН(ЕСЛИ((A$1:A$20=D1)*(B$1:B$20=D2);СТРОКА($A$1:$A$20)))-ПОИСКПОЗ(D1;A1:A20;0)+1

формула массива, вводится через ctrl+shift+enter
К сообщению приложен файл: 5515299-1.xlsx (9.5 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеjustplan, если правильно поняла, то можно заменить такой формулой:
Код
=МИН(ЕСЛИ((A$1:A$20=D1)*(B$1:B$20=D2);СТРОКА($A$1:$A$20)))-ПОИСКПОЗ(D1;A1:A20;0)+1

формула массива, вводится через ctrl+shift+enter

Автор - Manyasha
Дата добавления - 30.11.2015 в 11:08
justplan Дата: Понедельник, 30.11.2015, 11:25 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, хмм, тогда такой вопрос: в конечном варианте таблицы 3 столбца, и соответственно поиск по трем значениям. В итоге нужно определить порядковый номер соответствующей ячейки из третьего столбца относительно начала таблицы. Можно ли это переделать через массивы? Просто особо с ними не работал до этого, думал через ИНДЕКС будет проще всего.
К сообщению приложен файл: 0807364.xlsx (10.1 Kb)
 
Ответить
СообщениеManyasha, хмм, тогда такой вопрос: в конечном варианте таблицы 3 столбца, и соответственно поиск по трем значениям. В итоге нужно определить порядковый номер соответствующей ячейки из третьего столбца относительно начала таблицы. Можно ли это переделать через массивы? Просто особо с ними не работал до этого, думал через ИНДЕКС будет проще всего.

Автор - justplan
Дата добавления - 30.11.2015 в 11:25
Manyasha Дата: Понедельник, 30.11.2015, 11:35 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
justplan, аа, т.е. номер нужен отностительно всей таблицы, тогда хвостик Поискпоз не нужен
Код
=МИН(ЕСЛИ((A$1:A$50=D1)*(B$1:B$50=D2)*(C1:C50=D3);СТРОКА($A$1:$A$50)))
К сообщению приложен файл: 0807364-1.xlsx (10.2 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеjustplan, аа, т.е. номер нужен отностительно всей таблицы, тогда хвостик Поискпоз не нужен
Код
=МИН(ЕСЛИ((A$1:A$50=D1)*(B$1:B$50=D2)*(C1:C50=D3);СТРОКА($A$1:$A$50)))

Автор - Manyasha
Дата добавления - 30.11.2015 в 11:35
justplan Дата: Понедельник, 30.11.2015, 11:46 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Manyasha, воу! Ничего не понятно, но работает... Спасибо огромное! Хотя так и не понял, почему ему ИНДЕКС не нравится.
 
Ответить
СообщениеManyasha, воу! Ничего не понятно, но работает... Спасибо огромное! Хотя так и не понял, почему ему ИНДЕКС не нравится.

Автор - justplan
Дата добавления - 30.11.2015 в 11:46
китин Дата: Понедельник, 30.11.2015, 11:54 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
а так не прокатит?формула массива
Код
=ПОИСКПОЗ($D$1&$D$2&$D$3;A:A&$B:$B&$C:$C;0)
К сообщению приложен файл: justplan.xlsx (10.0 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеа так не прокатит?формула массива
Код
=ПОИСКПОЗ($D$1&$D$2&$D$3;A:A&$B:$B&$C:$C;0)

Автор - китин
Дата добавления - 30.11.2015 в 11:54
justplan Дата: Понедельник, 30.11.2015, 12:02 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
китин, тоже работает, даже короче получилось варианта Manyasha. Единственное, что выборка по этим полученным значениям в четырех местах занимает теперь почти 2 секунды...
Всем спасибо! Так как новичок, плюсану всех только завтра.
 
Ответить
Сообщениекитин, тоже работает, даже короче получилось варианта Manyasha. Единственное, что выборка по этим полученным значениям в четырех местах занимает теперь почти 2 секунды...
Всем спасибо! Так как новичок, плюсану всех только завтра.

Автор - justplan
Дата добавления - 30.11.2015 в 12:02
justplan Дата: Понедельник, 30.11.2015, 12:17 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Сам себе отвечу про то что долго считается: если в формуле диапазоны указывать не как A:A, а конкретного размера, вроде A1:A31, то все считается быстро.
 
Ответить
СообщениеСам себе отвечу про то что долго считается: если в формуле диапазоны указывать не как A:A, а конкретного размера, вроде A1:A31, то все считается быстро.

Автор - justplan
Дата добавления - 30.11.2015 в 12:17
_Boroda_ Дата: Понедельник, 30.11.2015, 12:24 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Для разнообразия еще формула массива
Код
=ПОИСКПОЗ(1;(A$1:A$50=D1)*(B$1:B$50=D2)*(C1:C50=D3);)

и обычная формула
Код
=ПРОСМОТР(;-1/(A$1:A$50=D1)/(B$1:B$50=D2)/(C1:C50=D3);СТРОКА(A1:A50))

У Вас же в таблице нет одинаковых строк, правильно?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля разнообразия еще формула массива
Код
=ПОИСКПОЗ(1;(A$1:A$50=D1)*(B$1:B$50=D2)*(C1:C50=D3);)

и обычная формула
Код
=ПРОСМОТР(;-1/(A$1:A$50=D1)/(B$1:B$50=D2)/(C1:C50=D3);СТРОКА(A1:A50))

У Вас же в таблице нет одинаковых строк, правильно?

Автор - _Boroda_
Дата добавления - 30.11.2015 в 12:24
китин Дата: Понедельник, 30.11.2015, 12:25 | Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
обычная немассивная
Код
=ПРОСМОТР(1;1/ПОИСК(D1&D2&D3;A:A&B:B&C:C);СТРОКА(A:A))


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеобычная немассивная
Код
=ПРОСМОТР(1;1/ПОИСК(D1&D2&D3;A:A&B:B&C:C);СТРОКА(A:A))

Автор - китин
Дата добавления - 30.11.2015 в 12:25
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Предлагает сохранить изменения в файле без изменений (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!