TEXTJOIN на основе нескольких столбцов и нескольких условий IF

Я пытаюсь выполнить TEXTJOIN на основе нескольких столбцов, в данном случае столбцы B и D в пределах выбранного диапазона (если столбец A = G9 и столбец C = H9), игнорируя элементы в столбце D, которые не находятся в диапазоне G2: G5 ( если столбец D = элемент в диапазоне G2:G5). Все, что я пытаюсь, похоже, приводит к NA #

TEXTJOIN на основе нескольких столбцов и нескольких условий IF

Привет, я думаю, что вам может не хватать Ctrl+Shift+Ввод при работе с массивами в функции TextJoin.

Mikku 22.05.2019 05:27

Я все еще получаю ошибки, когда использую массив ctr+shift+enter

Chris Bak 22.05.2019 05:34
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
818
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Будет ли это работать:

=TEXTJOIN(" | ",TRUE,IF(A2:A17=G9,IF(C2:C17=H9,IF(D2:D17=TRANSPOSE(G2:G5),E2:E17,""))))

Подтверждено через CtrlShiftEnter

К сожалению, у меня нет textjoin, и я не могу проверить себя.

Чтобы уточнить, я полагаю, вам нужна функция TRANSPOSE(). Прямо сейчас вы сравниваете вертикальный диапазон с вертикальным диапазоном. Это может вызвать проблемы, ошибку N/A#, из-за разного размера сравниваемых массивов. Я сам был смущен таким поведением и задал вопрос по этому поводу на здесь. Данный ответ был очень полезен для уточнения этого поведения Excel.

Надеюсь, это решит вашу проблему :)


РЕДАКТИРОВАТЬ

Я хотел бы поиграть с TEXTJOIN(), чтобы помочь вам, но чтобы иметь временный патч, пока кто-то действительно не сможет вам помочь, вы можете попробовать реализовать некоторые функции SUBSTITUTE(), чтобы поймать значения FALSE, например так:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXTJOIN(" | ",TRUE,IF(A2:A17=G9,IF(C2:C17=H9,IF(D2:D17=TRANSPOSE(G2:G5),E2:E17,""))))," | FALSE ",""),"| FALSE",""),"FALSE | ","")

Введено как массив

Спасибо, это становится намного ближе, чем NA #, которые я получал раньше. Он захватывает правильные комментарии, но добавляет кучу ЛОЖЬ между ними: комментарий 1 | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | комментарий 4 | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | комментарий 6 | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | комментарий 9 | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖНЫЙ

Chris Bak 22.05.2019 14:35

@ChrisBak, мне жаль, что у меня не было лицензии Excel 2019, чтобы самому поиграть с TEXTJOIN(), чтобы избавиться от этих ЛОЖНЫХ значений для вас. Возможно, попробуйте отредактированный ответ для временного «патча»

JvdV 22.05.2019 15:09

Спасибо JvdV, это работает очень хорошо: комментарий 1 | комментарий 4 | комментарий 6 | комментарий 9

Chris Bak 23.05.2019 02:42

У меня возникла еще одна странная проблема, когда я пытаюсь использовать динамические именованные диапазоны, кажется, диапазон меняется. Например, =OFFSET('данные ABAK'!F$2,0,0,COUNTA('данные ABAK'!$F:$F),1) изменит формулу диапазона на: =OFFSET('данные ABAK'!XEV $2,0,0,COUNTA('данные ABAK'!$F:$F),1) как только я нажму CTR-CHIFT-ENTER и получу значение#

Chris Bak 23.05.2019 10:48

Другие вопросы по теме