web-dev-qa-db-ja.com

コンマ区切りリストのデータ検証

セル内のコンマ区切りリストを取得し、そのうちの1つを選択するためのドロップダウンボックスを提供する簡単な方法が必要です。

たとえば、セルには次のものが含まれます。
24、32、40、48、56、64

そして、別のセルで、データ検証を使用して、これらの値の1つを選択するためのドロップダウンリストを提供したいと思います

VBAやマクロなしでこれを行う必要があります。これをExcel2010以降で動作させたい。
リスト内のカンマの数を数えて、これを単一の数字の行の数などに分割しようとしていますが、まだ喜びはありません。

3
Brad

個々の番号を識別するためにコンマを使用することで、正しい方向に進んでいます。これは50個のコンマ区切り値で機能します-Excel2010を使用している場合、これは8000個のアイテムに拡張できます(ただし、その多くの場合、これが問題を処理するための最良の方法であるかどうかを再検討します:)

番号のリストがセルA2にあるとしましょう。

  1. 数値のリストのコンマの後にスペースが含まれている場合は、検索と置換を行ってそれらを削除するか、セルB2で置換を行います:=SUBSTITUTE(A2," ","")

  2. それでは、すべてのコンマを見つけましょう。セルC2に、=SEARCH(",",$B2,1)と入力します。これにより、最初のコンマのテキスト内の位置が検索されます。

  3. D2で、次のカンマを見つけるために、類似しているがわずかに異なる数式を入力します:=SEARCH(",",$B2,C2+1)

  4. これを(たとえば)50列にコピーします。これにより、列AZに移動します。

  5. これで、個々の番号を取得できます。セルBA2に、=IFERROR(LEFT(B2,C2-1),"")と入力します。これにより、最初のコンマの左側にあるすべてのテキストが取得されるか、セルが空の場合は何も返されません。

  6. BB2で、=MID($B2,C2+1,D2-C2-1)を入力して次の番号を引き出すか、この位置に番号がない場合は何も返しません。

  7. BB2を50列にわたってコピーします。これにより、列CXに移動します。

  8. これで、セル検証を範囲BA2:CX2に割り当てることができ、各番号がドロップダウンに表示されます。

enter image description here

1
Andi Mohr

Office 2010では、次のように入力することで、スプレッドシートの列を使用せずに、データ検証用の数値リストを埋め込むことができました。

=0,1,2,3,4,5

ニーズによっては、適切な構文を使用している場合は、スプレッドシートの列がまったく必要ない場合があります。

0
Andrew Gertz