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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение столбца данными в соответствии с другими стобцами - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Заполнение столбца данными в соответствии с другими стобцами
ivanov_74 Дата: Пятница, 01.07.2022, 14:00 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Всем доброго времени суток!
Задача такая: имеется два столбца, заполненных от руки, в первом мощности прибора(цифры) - расположены в хаотичном порядке, не отсортированы, во втором его названия (цифры + буквы), соответствуют мощностям приборов. В третьем столбце я расположил мощности с порядке убывания, с помощью формулы "=НАИБОЛЬШИЙ(A:A;СТРОКА(C1))". И необходимо в четвертом столбце расположить названия приборов, в соответствии с отсортированными мощностями, находящимися в третьем столбце.
Пробовал сделать через "=ВПР(C1;$A$1:$B$1000;2;ЛОЖЬ)" и "ИНДЕКС($B$1:$B$1000; ПОИСКПОЗ(C1; $A$1:$A$1000; 0))", но результат одинаков: при сортировке по убыванию, получаем в столбец много подряд идущих одинаковых значений и формула в четвертый столбец вставляет для всех мощностей первое попавшееся название. В этом и проблема. Название для каждой мощности должно быть уникальным и соответствовать как в первых двух столбцах.
Прикрепляю 2 файла: 123.xls - как должно получится (если не понятно объяснил) и 456.xls - как получается с моими формулами (неверно).
К сожалению на форуме ничего подходящего для решения этой задачи не нашел, да и сам в excel не силен. Всем заранее благодарен за какую либо помощь!
К сообщению приложен файл: 123.xls (28.5 Kb) · 456.xls (29.0 Kb)
 
Ответить
СообщениеВсем доброго времени суток!
Задача такая: имеется два столбца, заполненных от руки, в первом мощности прибора(цифры) - расположены в хаотичном порядке, не отсортированы, во втором его названия (цифры + буквы), соответствуют мощностям приборов. В третьем столбце я расположил мощности с порядке убывания, с помощью формулы "=НАИБОЛЬШИЙ(A:A;СТРОКА(C1))". И необходимо в четвертом столбце расположить названия приборов, в соответствии с отсортированными мощностями, находящимися в третьем столбце.
Пробовал сделать через "=ВПР(C1;$A$1:$B$1000;2;ЛОЖЬ)" и "ИНДЕКС($B$1:$B$1000; ПОИСКПОЗ(C1; $A$1:$A$1000; 0))", но результат одинаков: при сортировке по убыванию, получаем в столбец много подряд идущих одинаковых значений и формула в четвертый столбец вставляет для всех мощностей первое попавшееся название. В этом и проблема. Название для каждой мощности должно быть уникальным и соответствовать как в первых двух столбцах.
Прикрепляю 2 файла: 123.xls - как должно получится (если не понятно объяснил) и 456.xls - как получается с моими формулами (неверно).
К сожалению на форуме ничего подходящего для решения этой задачи не нашел, да и сам в excel не силен. Всем заранее благодарен за какую либо помощь!

Автор - ivanov_74
Дата добавления - 01.07.2022 в 14:00
китин Дата: Пятница, 01.07.2022, 14:22 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
так?

Код
=ИНДЕКС($B$1:$B$27;НАИМЕНЬШИЙ(ЕСЛИ($C1=$A$1:$A$27;СТРОКА($A$1:$A$27));СЧЁТЕСЛИ($C$1:C1;C1)))

формула массива. вводится Ctrl+Enter+Shift
К сообщению приложен файл: 123.xlsx (10.3 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениетак?

Код
=ИНДЕКС($B$1:$B$27;НАИМЕНЬШИЙ(ЕСЛИ($C1=$A$1:$A$27;СТРОКА($A$1:$A$27));СЧЁТЕСЛИ($C$1:C1;C1)))

формула массива. вводится Ctrl+Enter+Shift

Автор - китин
Дата добавления - 01.07.2022 в 14:22
ivanov_74 Дата: Пятница, 01.07.2022, 14:33 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

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

Автор - ivanov_74
Дата добавления - 01.07.2022 в 14:33
Pelena Дата: Пятница, 01.07.2022, 19:07 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
как дать понять коду, что это формула массива

.FormulaArray


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
как дать понять коду, что это формула массива

.FormulaArray

Автор - Pelena
Дата добавления - 01.07.2022 в 19:07
ivanov_74 Дата: Понедельник, 04.07.2022, 07:48 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Еще раз здравствуйте! Заранее прошу прощения, если будет не корректно будет продолжить обсуждение данного вопроса в этой теме, к сожалению раздела для этого не нашел.
Попробовав различные варианты написания в коде, получил следующее:
Код
range1.FormulaArray = "=INDEX(R1C2:R27C2, SMALL(IF(RC3=R1C1:R27C1, ROW(R1C1:R27C1)), COUNTIF(R1C3:RC[-1], RC[-1])))";
- формулу взял из макроса vb, для всех значений названия одинаковы (файл 123)
Код
range1.FormulaArray = "=ИНДЕКС(R1C2:R27C2, НАИМЕНЬШИЙ(ЕСЛИ(RC3=R1C1:R27C1, СТРОКА(R1C1:R27C1)), СЧЁТЕСЛИ(R1C3:RC[-1], RC[-1])))";
- тоже самое, только формула на русском, получаю ошибку #ИМЯ? для всех значений
Код
range1.FormulaArray = "=ИНДЕКС($B$1:$B$27; НАИМЕНЬШИЙ(ЕСЛИ($C1=$A$1:$A$27; СТРОКА($A$1:$A$27)); СЧЁТЕСЛИ($C$1:C1; C1)))";
- при компиляции получаю "в данной формуле ошибка". Формулу копировал прям с ответа выше, после просматривал, вроде синтаксических ошибок нет.
Код
range1.FormulaArray = "=INDEX($B$1:$B$27; SMALL(IF($C1 =$A$1:$A$27; ROW($A$1:$A$27)); COUNTIF($C$1:C1; C1)))";
- при компиляции получаю "в данной формуле ошибка"
Код
range1.FormulaR1C1 = "=INDEX(R1C2: R27C2, SMALL(IF(RC3=R1C1:R27C1, ROW(R1C1:R27C1)), COUNTIF(R1C3:RC[-1], RC[-1])))";
- для первого из повторяющихся значений ставит название, но не отсортированное, для остальных #ЧИСЛО! (файл 456)
К сожалению не представляю возможных решений, поэтому пишу сюда. Подскажите пожалуйста кто знает, в чем именно здесь ошибка и как ее можно исправить.
Еще в голове была мысль заменить формулу массива на обычную формулу, с ними у меня в коде все нормально. Если это конечно возможно, то прошу предложить такой вариант.
К сообщению приложен файл: 1522426.xlsx (26.7 Kb) · 456.xlsx (36.2 Kb)
 
Ответить
СообщениеЕще раз здравствуйте! Заранее прошу прощения, если будет не корректно будет продолжить обсуждение данного вопроса в этой теме, к сожалению раздела для этого не нашел.
Попробовав различные варианты написания в коде, получил следующее:
Код
range1.FormulaArray = "=INDEX(R1C2:R27C2, SMALL(IF(RC3=R1C1:R27C1, ROW(R1C1:R27C1)), COUNTIF(R1C3:RC[-1], RC[-1])))";
- формулу взял из макроса vb, для всех значений названия одинаковы (файл 123)
Код
range1.FormulaArray = "=ИНДЕКС(R1C2:R27C2, НАИМЕНЬШИЙ(ЕСЛИ(RC3=R1C1:R27C1, СТРОКА(R1C1:R27C1)), СЧЁТЕСЛИ(R1C3:RC[-1], RC[-1])))";
- тоже самое, только формула на русском, получаю ошибку #ИМЯ? для всех значений
Код
range1.FormulaArray = "=ИНДЕКС($B$1:$B$27; НАИМЕНЬШИЙ(ЕСЛИ($C1=$A$1:$A$27; СТРОКА($A$1:$A$27)); СЧЁТЕСЛИ($C$1:C1; C1)))";
- при компиляции получаю "в данной формуле ошибка". Формулу копировал прям с ответа выше, после просматривал, вроде синтаксических ошибок нет.
Код
range1.FormulaArray = "=INDEX($B$1:$B$27; SMALL(IF($C1 =$A$1:$A$27; ROW($A$1:$A$27)); COUNTIF($C$1:C1; C1)))";
- при компиляции получаю "в данной формуле ошибка"
Код
range1.FormulaR1C1 = "=INDEX(R1C2: R27C2, SMALL(IF(RC3=R1C1:R27C1, ROW(R1C1:R27C1)), COUNTIF(R1C3:RC[-1], RC[-1])))";
- для первого из повторяющихся значений ставит название, но не отсортированное, для остальных #ЧИСЛО! (файл 456)
К сожалению не представляю возможных решений, поэтому пишу сюда. Подскажите пожалуйста кто знает, в чем именно здесь ошибка и как ее можно исправить.
Еще в голове была мысль заменить формулу массива на обычную формулу, с ними у меня в коде все нормально. Если это конечно возможно, то прошу предложить такой вариант.

Автор - ivanov_74
Дата добавления - 04.07.2022 в 07:48
ivanov_74 Дата: Понедельник, 04.07.2022, 11:57 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Проблему решил! Всем спасибо, кто помог! Вопрос закрыт
Если вкратце, то кодом выделил одну ячейку, применил к ней формулу массива, и после формулу протянул на остальные ячейки
 
Ответить
СообщениеПроблему решил! Всем спасибо, кто помог! Вопрос закрыт
Если вкратце, то кодом выделил одну ячейку, применил к ней формулу массива, и после формулу протянул на остальные ячейки

Автор - ivanov_74
Дата добавления - 04.07.2022 в 11:57
ivanov_74 Дата: Среда, 06.07.2022, 12:12 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Всем снова здравствуйте! Смысл вопроса по сути остается тем же. Не могу разобраться с формулой. Необходимо в столбец G записать данные: как столбец F соответствует столбцу D, так же G должен соответствовать столбцу F. Пробовал:
Код
= ИНДЕКС($F$1:$F$100; НАИМЕНЬШИЙ(ЕСЛИ($D1 =$B$1:$B$100; СТРОКА($B$1:$B$100)); СЧЁТЕСЛИ($D$1:D1; D1)))

Но результат неверный. Пожалуйста помогите исправить, файл прикрепляю. И пожалуйста объясните каким образом работает данная формула. Спасибо!
В файле в столбцах M, N показано как должно получиться.
К сообщению приложен файл: 2757678.xlsx (15.0 Kb)
 
Ответить
СообщениеВсем снова здравствуйте! Смысл вопроса по сути остается тем же. Не могу разобраться с формулой. Необходимо в столбец G записать данные: как столбец F соответствует столбцу D, так же G должен соответствовать столбцу F. Пробовал:
Код
= ИНДЕКС($F$1:$F$100; НАИМЕНЬШИЙ(ЕСЛИ($D1 =$B$1:$B$100; СТРОКА($B$1:$B$100)); СЧЁТЕСЛИ($D$1:D1; D1)))

Но результат неверный. Пожалуйста помогите исправить, файл прикрепляю. И пожалуйста объясните каким образом работает данная формула. Спасибо!
В файле в столбцах M, N показано как должно получиться.

Автор - ivanov_74
Дата добавления - 06.07.2022 в 12:12
_Boroda_ Дата: Среда, 06.07.2022, 12:27 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Намного непонятно. Так для G1?
Код
=ВПР(B1;D$1:F$14;3;)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНамного непонятно. Так для G1?
Код
=ВПР(B1;D$1:F$14;3;)

Автор - _Boroda_
Дата добавления - 06.07.2022 в 12:27
ivanov_74 Дата: Среда, 06.07.2022, 12:31 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

По факту да, верно. Но в столбце B значения могут повторятся, ВПР не подойдет, поэтому пытался делать через ИНДЕКС.
 
Ответить
СообщениеПо факту да, верно. Но в столбце B значения могут повторятся, ВПР не подойдет, поэтому пытался делать через ИНДЕКС.

Автор - ivanov_74
Дата добавления - 06.07.2022 в 12:31
_Boroda_ Дата: Среда, 06.07.2022, 12:38 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тогда нарисуйте нормальный пример, где они повторяются. И, если они повторяются, то в столбце F что, разные значения? Короче, покажите все это безобразие


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда нарисуйте нормальный пример, где они повторяются. И, если они повторяются, то в столбце F что, разные значения? Короче, покажите все это безобразие

Автор - _Boroda_
Дата добавления - 06.07.2022 в 12:38
ivanov_74 Дата: Среда, 06.07.2022, 13:01 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

A и B соответствуют друг другу (мощность - название). Далее C, D и F тоже друг другу соответствуют (C,D - отсортированные по убыванию A и B). Надо создать формулу для столбца G, что бы он соответствовал A и B, как столбец F соответствует C и D. Файл с примером прикрепляю. В столбце F - фаза, на которой элемент будет расположен

[p.s.]С этим разобрался, но все равно большое спасибо за помощь!
К сообщению приложен файл: 5068679.xlsx (13.0 Kb)


Сообщение отредактировал ivanov_74 - Среда, 06.07.2022, 13:26
 
Ответить
СообщениеA и B соответствуют друг другу (мощность - название). Далее C, D и F тоже друг другу соответствуют (C,D - отсортированные по убыванию A и B). Надо создать формулу для столбца G, что бы он соответствовал A и B, как столбец F соответствует C и D. Файл с примером прикрепляю. В столбце F - фаза, на которой элемент будет расположен

[p.s.]С этим разобрался, но все равно большое спасибо за помощь!

Автор - ivanov_74
Дата добавления - 06.07.2022 в 13:01
  • Страница 1 из 1
  • 1
Поиск:

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