Как/какую формулу использовать, чтобы показать результаты объединения текста для ложного условия (для использования отчетов о незавершенных задачах)?

#excel #excel-formula

Вопрос:

Хотел проверить, можно ли использовать КОНКАТЕНАЦИЮ (не уверен, что в моем excel есть TEXTJOIN), и как показать только текст с пустым значением в ячейках.

Например, в моем приложении ниже я хочу, чтобы предполагаемый результат был показан, как в B2 и B3, где тексты показаны с разделителем, когда значения являются ложными (пустыми).

Если бы я использовал ОБЪЕДИНЕНИЕ, как в строке 10 и строке 11, это было бы довольно вручную, и оно фиксировало бы только «положительные значения», как в непустых ячейках.

Цель: Отображение ожидающих задач (пустые/незаполненные ячейки статуса)

скриншот

Комментарии:

1. Если у вас есть КОНКАТ, то у вас есть ТЕКСТОВОЕ СОЕДИНЕНИЕ. Просто попробуй =TEXTJOIN(",",1,{"A","B","C"}) . Если это дает вам «A,B,C», то у вас есть ТЕКСТОВОЕ соединение. Если это так, то, возможно, то, что мешает вам использовать решение Эйлера, — это ФИЛЬТР. Тогда вам нужен обходной путь для этого.

2. @markfitzpatrick CONCATENATE , который использует операция, отличается от CONCAT . CONCATENATE доступен во всех версиях Excel, в то время CONCAT как доступен только в Office 365 и Excel 2019.

3. Эй, @ScottCraner — я этого не знал. Это действительно старая функция. В любом случае, я не вижу способа объединить его с КОНКАТЕНАЦИЕЙ. Кажется почти бесполезной функцией в современном Excel.

4. @markfitzpatrick, на мой взгляд, это было бесполезно с момента его создания. Тот факт, что я могу использовать amp; для того же самого, не печатая CONCATENATE , делает его утомительным в использовании.

5. спасибо, ребята, ценю комментарии, был занят другими делами, так что у меня нет времени, чтобы действительно попробовать, и я обычно тоже изучаю предоставленные формулы, и это займет время, попробую и то, и другое и опубликую результаты как можно скорее,

Ответ №1:

Используйте MID с ОБЪЕДИНЕННЫМИ IFS:

 =MID(IF(C2="","/"amp;$C$1,"")amp;IF(D2="","/"amp;$D$1,"")amp;IF(E2="","/"amp;$E$1,"")amp;IF(F2="","/"amp;$F$1,"")amp;IF(GC2="","/"amp;$G$1,"")amp;IF(H2="","/"amp;$H$1,""),2,999)
 

введите описание изображения здесь

Комментарии:

1. =MID(IF(C2=»»,»/»amp;$C$1,»»)amp;IF(D2=»»,»/»amp;$D$1,»»)amp;IF(E2=»»,»/»amp;$E$1,»»)amp;IF(F2=»»,»/»amp;$F$1,»»)amp;IF(G2=»»,»/»amp;$G$1,»»)amp;IF(H2=»»,»/»amp;$H$1,»»),2,999) это работает в моем текущем excel на листе тестирования благодаря @Scott Craner позже примерит рабочие файлы и посмотрит, как пойдет работа с объединенными ячейками и будут ли данные мешать другим формулам

Ответ №2:

Я бы использовал TEXJOIN и FILTER , если у вас есть новейшая версия Excel.

Например: =TEXTJOIN("/",1,FILTER($E$2:$I$2, ISBLANK(E3:I3)))

введите описание изображения здесь

ИЗМЕНИТЬ: Для более старых версий временное решение заключается в следующем:

  1. создайте временный массив того же размера, что и исходный кадр данных, где каждое значение определяется такой формулой, как =IF(ISBLANK(E3), E$2amp;"/","")
  2. Используйте что-то вроде =LEFT(CONCAT(E15:J15), LEN(CONCAT(E15:J15))-1) , чтобы получить желаемый результат (где E15:J15-это место, где я решил хранить первую строку временного массива, созданного на шаге 1).

Комментарии:

1. Привет, только что попробовал, и да, очевидно, я все еще оснащен более старой версией, так как я не могу использовать эту функцию. Есть ли какая-либо функция, аналогичная текстовому соединению? Я могу вернуться только к КОНКАТЕНАЦИИ, в которой я пытался, хотя и не понимал, как это сделать. Однако я попытаюсь импортировать свои файлы в Gsheet и сделать некоторые настройки и тестирование, надеюсь, это сработает в соответствии с моими намерениями.

2. @Дик Вун Данг, тогда я не совсем уверен, как сделать это за один раз. Посмотрите мой комментарий, чтобы найти обходной путь, который может помочь, но импорт в Google Таблицы и работа оттуда тоже неплохая идея. Надеюсь, у вас все получится!

3. @Euler’S Disgracedstepchild просто к вашему сведению, если у них нет текстового соединения, у них нет КОНКАТА. Они вышли одновременно.

Ответ №3:

Я не уверен в вашей версии Excel, но я думаю, что это будет работать в более старых версиях (отформатировано для удобства чтения — будет работать, если вы вставите его непосредственно в ячейку B2 и скопируете вниз):

 =LEFT(CONCAT( INDEX( CHOOSE({1;2;3},$C$1:$H$1,{"/","/","/","/","/","/"},{"","","","","",""}),
                     INDEX( IF(ISBLANK(C2:H2),{1;2},{3;3}),
                            MOD(COLUMN(A1:INDEX(1:1,,12))-1,2) 1,
                            (COLUMN(A1:INDEX(1:1,,12))-1)/2 1 ),
                     (COLUMN(A1:INDEX(1:1,,12))-1)/2 1 ) ),
      SUM(7*ISBLANK(C2:H2))-1 )
 

Результат

Примечания

  • Поскольку это формула массива, вам, возможно, придется ввести ее с CTRLпомощью SHIFT ENTERв более старой версии Excel.
  • Все метки статистики должны иметь длину 6 символов, как показано в вашем сообщении. Если нет, то они должны, по крайней мере, иметь одинаковую длину, и последняя строка SUM(7*ISBLANK(C2:H2))-1 должна быть изменена, чтобы заменить 7 на длину строки 1, например, будет длина 9 SUM(10*ISBLANK(C2:H2))-1 .
  • Если они не имеют одинаковой длины, ЛЕВАЯ( может быть удалена вместе с SUM(10*ISBLANK(C2:H2))-1) концом. В конце концов у вас будет конечный / разделитель в конце. Вы могли бы исправить это для случая , когда статистика F является последней частью, изменив {"/","/","/","/","/","/"} значение на {"/","/","/","/","/",""} , но в других случаях все равно будет стоять /. Другой подход гораздо сложнее, но компонент SUM(10*ISBLANK(C2:H2))-1) может быть сформирован таким образом, чтобы определить, что нужно отрезать, или, возможно, может быть встроен вспомогательный столбец — в любом случае, давайте надеяться, что ваша ситуация такова, что все метки статистики имеют одинаковую длину.
  • Разделитель «/» можно изменить, но он всегда должен состоять из одного символа. Если нет, то последняя строка должна быть изменена на SUM( [label length delimiter length] *ISBLANK(C2:H2))-1 .
  • Эта формула закреплена в 6 столбцах статистики. Если вам нужно, чтобы он вместил больше, это можно сделать, расширив {"/","/","/","/","/","/"} и {"","","","","",""} (по одному элементу для каждого нового столбца) и заменив каждые 12 на 2-кратное количество столбцов. Кроме того, очевидно, что ссылки $C$1:$H$1 и C1:H2 должны быть изменены для чтения в ваших новых столбцах.