Функция Arrayformula
dminicab
Дата: Вторник, 26.04.2022, 23:39 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация:
0
±
Замечаний:
20% ±
Google
Добрый день! Написал формулу для выведения списка текстовых значений массивом по условию. Вот формулаКод
=ARRAYFORMULA(UNIQUE(ЕСЛИ('Лист3'!$C$1:$C$54=$A$1;ПРАВСИМВ('Лист3'!$A$1:$A$54;(ДЛСТР('Лист3'!$A$1:$A$54)-4)));""))
Выполняется проверка на соответствие значению в ячейке A1 и выводится список значений удовлетворяющих условию. Но проблема в том, что в начале списка выводится значение "ЛОЖЬ", то что не удовлетворяет условию. Как поправить не понимаю, чтобы не отображалось значение "ЛОЖЬ", а выводился только список значений, удовлетворяющих условию. Вот примерhttps://docs.google.com/spreads....sharing Помогите пожалуйста? [admin]Тема закрыта. Причина: Нарушение правил форума п.2 [/admin]
Добрый день! Написал формулу для выведения списка текстовых значений массивом по условию. Вот формулаКод
=ARRAYFORMULA(UNIQUE(ЕСЛИ('Лист3'!$C$1:$C$54=$A$1;ПРАВСИМВ('Лист3'!$A$1:$A$54;(ДЛСТР('Лист3'!$A$1:$A$54)-4)));""))
Выполняется проверка на соответствие значению в ячейке A1 и выводится список значений удовлетворяющих условию. Но проблема в том, что в начале списка выводится значение "ЛОЖЬ", то что не удовлетворяет условию. Как поправить не понимаю, чтобы не отображалось значение "ЛОЖЬ", а выводился только список значений, удовлетворяющих условию. Вот примерhttps://docs.google.com/spreads....sharing Помогите пожалуйста? [admin]Тема закрыта. Причина: Нарушение правил форума п.2 [/admin] dminicab
Ответить
Сообщение Добрый день! Написал формулу для выведения списка текстовых значений массивом по условию. Вот формулаКод
=ARRAYFORMULA(UNIQUE(ЕСЛИ('Лист3'!$C$1:$C$54=$A$1;ПРАВСИМВ('Лист3'!$A$1:$A$54;(ДЛСТР('Лист3'!$A$1:$A$54)-4)));""))
Выполняется проверка на соответствие значению в ячейке A1 и выводится список значений удовлетворяющих условию. Но проблема в том, что в начале списка выводится значение "ЛОЖЬ", то что не удовлетворяет условию. Как поправить не понимаю, чтобы не отображалось значение "ЛОЖЬ", а выводился только список значений, удовлетворяющих условию. Вот примерhttps://docs.google.com/spreads....sharing Помогите пожалуйста? [admin]Тема закрыта. Причина: Нарушение правил форума п.2 [/admin] Автор - dminicab Дата добавления - 26.04.2022 в 23:39
Gustav
Дата: Среда, 27.04.2022, 00:37 |
Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация:
1161
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Конец формулы должен выглядеть вот так: [vba][/vba] а не как сейчас у вас вот так: [vba][/vba] т.е. одна скобка не там поставилась. А чтобы и пустая ячейка не появлялась, можно применить принципиально иной подход к формированию списка - через FILTER (и даже без ArrayFormula): [vba]Код
=FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)
[/vba] Дополнительно можно проуникалить список (хотя конкретно здесь и не требуется) и отсортировать: [vba]Код
=SORT(UNIQUE(FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)))
[/vba]
Конец формулы должен выглядеть вот так: [vba][/vba] а не как сейчас у вас вот так: [vba][/vba] т.е. одна скобка не там поставилась. А чтобы и пустая ячейка не появлялась, можно применить принципиально иной подход к формированию списка - через FILTER (и даже без ArrayFormula): [vba]Код
=FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)
[/vba] Дополнительно можно проуникалить список (хотя конкретно здесь и не требуется) и отсортировать: [vba]Код
=SORT(UNIQUE(FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)))
[/vba] Gustav
МОИ: Ник , Tip box: 41001663842605
Сообщение отредактировал Gustav - Среда, 27.04.2022, 00:55
Ответить
Сообщение Конец формулы должен выглядеть вот так: [vba][/vba] а не как сейчас у вас вот так: [vba][/vba] т.е. одна скобка не там поставилась. А чтобы и пустая ячейка не появлялась, можно применить принципиально иной подход к формированию списка - через FILTER (и даже без ArrayFormula): [vba]Код
=FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)
[/vba] Дополнительно можно проуникалить список (хотя конкретно здесь и не требуется) и отсортировать: [vba]Код
=SORT(UNIQUE(FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)))
[/vba] Автор - Gustav Дата добавления - 27.04.2022 в 00:37
dminicab
Дата: Среда, 27.04.2022, 00:49 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация:
0
±
Замечаний:
20% ±
Google
Gustav, ну там основная проблема не в скобке. Изменив скобку, получаем пустую ячейку А2. А как сделать так, чтобы она вообще не выводилась. Т.е. я понимаю, что формула отображает в этой ячейке значение, которое не удовлетворяет заданному условию, но мне нужно чтобы оно вообще не отображалось, чтобы выводился список только тех значений, которые удовлетворяют условию. Это вообще возможно выполнить с такой формулой? Может просто есть какое-то другое решение? Моих знаний увы хватило только на такую формулу(
Gustav, ну там основная проблема не в скобке. Изменив скобку, получаем пустую ячейку А2. А как сделать так, чтобы она вообще не выводилась. Т.е. я понимаю, что формула отображает в этой ячейке значение, которое не удовлетворяет заданному условию, но мне нужно чтобы оно вообще не отображалось, чтобы выводился список только тех значений, которые удовлетворяют условию. Это вообще возможно выполнить с такой формулой? Может просто есть какое-то другое решение? Моих знаний увы хватило только на такую формулу( dminicab
Ответить
Сообщение Gustav, ну там основная проблема не в скобке. Изменив скобку, получаем пустую ячейку А2. А как сделать так, чтобы она вообще не выводилась. Т.е. я понимаю, что формула отображает в этой ячейке значение, которое не удовлетворяет заданному условию, но мне нужно чтобы оно вообще не отображалось, чтобы выводился список только тех значений, которые удовлетворяют условию. Это вообще возможно выполнить с такой формулой? Может просто есть какое-то другое решение? Моих знаний увы хватило только на такую формулу( Автор - dminicab Дата добавления - 27.04.2022 в 00:49
Gustav
Дата: Среда, 27.04.2022, 00:52 |
Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация:
1161
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
А как сделать так, чтобы она вообще не выводилась.
Дописал в сообщении выше.
А как сделать так, чтобы она вообще не выводилась.
Дописал в сообщении выше.Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение А как сделать так, чтобы она вообще не выводилась.
Дописал в сообщении выше.Автор - Gustav Дата добавления - 27.04.2022 в 00:52
Gustav
Дата: Среда, 27.04.2022, 01:05 |
Сообщение № 5
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация:
1161
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
=SORT(UNIQUE(FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)))
Ну, и это можно в данном конкретном случае попроще записать - без необходимости вычислять длину строки: [vba]Код
=SORT(UNIQUE(FILTER(MID('Лист3'!$A$1:$A$54;5;500);'Лист3'!$C$1:$C$54=$A$1)))
[/vba]
=SORT(UNIQUE(FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)))
Ну, и это можно в данном конкретном случае попроще записать - без необходимости вычислять длину строки: [vba]Код
=SORT(UNIQUE(FILTER(MID('Лист3'!$A$1:$A$54;5;500);'Лист3'!$C$1:$C$54=$A$1)))
[/vba]Gustav
МОИ: Ник , Tip box: 41001663842605
Ответить
Сообщение =SORT(UNIQUE(FILTER(RIGHT('Лист3'!$A$1:$A$54;LEN('Лист3'!$A$1:$A$54)-4); 'Лист3'!$C$1:$C$54=$A$1)))
Ну, и это можно в данном конкретном случае попроще записать - без необходимости вычислять длину строки: [vba]Код
=SORT(UNIQUE(FILTER(MID('Лист3'!$A$1:$A$54;5;500);'Лист3'!$C$1:$C$54=$A$1)))
[/vba]Автор - Gustav Дата добавления - 27.04.2022 в 01:05