Найдите наименьший номер столбца, где появляется подстрока (в многострочном диапазоне) - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть диапазон $A$1:$C$10 с ячейками, которые могут быть пустыми или содержать текст в следующем формате

  1. string1 (только строка 1)
  2. string1, string2, ... (string1 в начале последовательности строк, разделенных запятыми)
  3. stringN, ..., string1, ... (string1 где-то в середине последовательности)
  4. ..., string1 (string1 в конце последовательности)

Кроме того, у меня также есть таблица "myTable" с двумя столбцами "String" и "firstOccurence".

В столбце "string" у меня есть такие значения, как:

string1
string2
string3
...
stringN

В столбце "firstOccurence" я хотел бы вставить наименьший номер столбца, в котором появляется строка (например, выше форматов) в диапазоне $A$1:$C$10 (несколько строк). То есть если у меня есть "string1" в столбце "string" и "string1" в ячейках B2 и C6 (независимо от формата), я хотел бы иметь "2" в столбце «firstOccurrence» (B - второй столбец)

Как мне добиться этого с помощью формулы (массива) Excel?

Пока у меня есть этот код:

=IF([@[String]]<>"";
    IF(
        OR(
            COUNTIF($A$1:$C$10;[@[String]])>0;
            COUNTIF($A$1:$C$10;[@[String]]&", *")>0;
            COUNTIF($A$1:$C$10;"*, "&[@[String]])>0;
            COUNTIF($A$1:$C$10;"*, "&[@[String]]&", *")>0
        );
        ### What should I put here ? ### ;
        ""
    );
    ""
)

Заранее большое спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Если, как и я, вы пытаетесь избежать формул массива любой ценой, и вам нужно только проверить столбцы A, B и C, вы можете использовать следующую формулу:

=IF(COUNTIFS(A$1:A$10,"*"&$E2&"*")>0,1,
    IF(COUNTIFS(B$1:B$10,"*"&$E2&"*")>0,2,
        IF(COUNTIFS(C$1:C$10,"*"&$E2&"*")>0,3,0)
    )
)

Это выберетup String1, даже если это подстрока строки 2. Она также чувствительна к регистру.Но довольно просто изменить формулу, если вам нужно.

Вот изображение, показывающее, как оно работает:

enter image description here

Если вам интересно, формула для получения буквы в столбце:

=IFERROR(LEFT(ADDRESS(1,$F2,2),FIND("$",ADDRESS(1,$F2,2))-1),"Not Found")

Если у вас есть дополнительные вопросы, дайте мне знать, и я сделаю все возможное, чтобы помочь.

0 голосов
/ 14 ноября 2018

Попробуйте использовать эту формулу массива в столбце [firstOccurence] в myTable. Поскольку это формула массива, подтвердите ее с помощью CTRL+shift+enter

=AGGREGATE(15;6;IF(FIND([@[String]];$A$1:$C$10)>0;COLUMN($A$1:$C$10));1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...