複数の区切られたルックアップソース値を含むセルに非ルックアップ値も含めることを許可する


1

区切られた複数の値を含むセルを指定して、異なるテーブルで複数の値を検索します。

以前に答えられた質問を見るためにリンクを開けてください。

そのコンテキストを考えると、columnにあるテキスト値を直接返すことができる式があります E ルックアップを実行する代わりに?

列の場合 E 数字とテキスト値の組み合わせが含まれている場合、式はルックアップによって番号に関連付けられた名前とテキスト値の両方を直接返すことができますか

例:

E3 含む 2;3;JohnnyF3 公式結果 B;C;Johnny

enter image description here

回答:


2

新しい式は元のものよりも少し長いです。 MID(…) 関数をもう2回コピーして使用する必要があります。

Worksheet Screenshot

配列が入ります( Ctrl + シフト + 入る )以下の式 F2 そして、残りの列にコピー&ペースト/記入します。

{=
  TEXTJOIN(
  ";",
  TRUE,
  IF(
    ISNUMBER(
      --MID(
        SUBSTITUTE(E2,";",REPT(" ",99)),
        99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
        +(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
        99
      )
    ),
    INDEX(
      (B:B),
      N(IF(1,
        MATCH(
          --MID(
            SUBSTITUTE(E2,";",REPT(" ",99)),
            99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
            +(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
            99
          ),
          (A:A),
          0
        )
      ))
    ),
    TRIM(
      MID(
        SUBSTITUTE(E2,";",REPT(" ",99)),
        99*(ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))-1)
        +(1=ROW(OFFSET($A$1,,,LEN(E2)-LEN(SUBSTITUTE(E2,";",""))+1))),
        99
      )
    )
  )
)}

式の変更は単なる追加であることに注意してください。 IF() 抽出された値が数値であるかテキストであるかを確認し、それを異なる方法で処理する関数。テキスト値はそのまま返されますが、数値は以前と同じようにルックアップを実行するために使用されます。



変更された、より単純なExcel 2016(Windowsのみ)の公式は次のとおりです。

{=TEXTJOIN(";",TRUE,IF(ISNUMBER(--FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b")),INDEX(B:B,N(IF(1,MATCH(--FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b"),A:A,0)))),FILTERXML("<a><b>" & SUBSTITUTE(E2, ";", "</b><b>") & "</b></a>", "//b")))}

勇者。楽しく働きます。
Lucio

@Lucioこれで15+の評判に達したので、同様に答えを投票することを忘れないでください;-)(そして、あなたの前の質問と今後の質問へのすべての実用的/有用な答えも同様に)。
robinCTS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.