10/04/2020

Excel。入力規則のリスト。2列表示で選択出来る方法。かなり強引ですが…【Input rule】

Excel。入力規則のリスト。2列表示で選択出来る方法。かなり強引ですが…

<入力規則のリスト・LEFT+FIND関数>

見積書や納品書など、VLOOKUP関数と入力規則のリストを組み合わせて使うと便利ですよね。


例えば、次の表。


A:B列の表は、見積り表のようなものだとして、D:E列が商品リストとします。

A列には、入力規則のリストが設定してあります。

データの入力規則をつかって、次のように設定してあります。


 

B列には、数式を設定しております。

=IFERROR(VLOOKUP(A2,$D$2:$E$6,2,FALSE),"")

VLOOKUP関数をつかうことで、商品リストである、D:E列から商品コードに該当する商品名を検索し表示しています。


このままで十分といえば十分なのですが、このぐらいの商品数ならば、商品コードとその商品名を覚えることもできますが、商品数が多くなったり、あるいは、商品コードがバーコードのように覚えられるボリュームでない場合、イチイチ確認したあとに、入力規則のリストで入力するわけですね。


だったら、コピー&ペーストしたほうが早い場合もでてしまいます。


そこで、入力規則のリストを2列表示することができないものか?と思うわけですね。

こんな感じです。


この方法をご紹介していきますが、かなり強引なので…ご了承のほど。


用意するものがあります、G列に、数式を使ってリストに表示したい列を作ります。


 G2の数式は、

=CONCAT(E2,"…",F2)

CONCAT関数は、旧バージョンにはありませんので、CONCATENATE関数を使いましょう。

「&」をつかった結合でもOKです。


つづいて、A列とB列の間に、列を挿入します。追加した列幅は、狭くてOKです。


その挿入したB列に次のように、入力規則のリストを設定します。


 

C列に変わった、VLOOKUP関数の数式を確認修正します。

=IFERROR(VLOOKUP(A2,$E$2:$F$6,2,FALSE),"")

検索値が、A列になっていることを確認します。


そして、商品コードのA列に数式を設定します。]

入力規則のリストが設定されているようでしたら、消去しておきます。


A2には、次の数式を設定します。

=IFERROR(LEFT(B2,FIND("…",B2,1)-1),"")

何をしているのか説明します。


IFERROR関数は、B列が空白の場合エラーが表示されるので、その予防です。


LEFT関数は、左から指定された文字数を抽出します。

今回対象は入力規則のリストで入力したB列です。


何文字なのかが、FIND関数で算出しています。

FIND("…",B2,1)-1。

今回は、”…”が区切り文字になっています。

最初に登場する、”…”を見つけた文字数を算出したら、”…”の文字数が余計なので、その値から「-1」します。


これで動きを確認してみましょう。


入力規則のリストが2列分表示されているので、検索しやすくなっています。

リストの幅が狭い場合は、B列を広げるとリストの幅も広がります。


動くことは動くのですが、B列の文字が見えていては、カッコ悪すぎですね。

最後の処理となりますが、文字を見えないようにしていきます。

文字の色を「白」にするとかではありません。


表示形式のユーザー定義をつかって、文字を隠していきます。

B2:B6を範囲選択して、セルの書式設定ダイアログボックスを表示します。


ユーザー定義の種類に「;;;」(セミコロン×3)と設定します。

文字を見えなくすることができました。


かなり強引な方法ですが、入力規則のリストを2列表示にする方法でした。