Excel2010でマクロ、VBAを使わずに自動で同じ文字を複数行に表示するための関数の組み方などを探しています。
環境情報
・Excel2010
背景
・Excelをユーザに渡して、メンテや回収は自主的にやってもらうため、プログラムやマクロなどを設定はしない。
・ユーザは関数は理解でき、自分でカスタマイズもできる前提。
質問
・Excelで任意の数字(n)を入力したときに、関数である列に指定された文字列(Name)を入力されたn数だけ、表示したい。
・考え方としては、COUNTIFで同じ列の文字のカウントを求める逆のパターン(カウントの分だけ表示)。
・No.は表示する順番ですが、こちらはある程度並び替えれるやり方(VLOOKUPなど)がわかっているので、対象外で問題ないです(必要なら組み合わせていただいてもかまいません)。
Sample
http://imgs.link/ffAXkK.png
考えた対策とそのNG内容
・REPT関数を使用して、同じセルにNameをn個つなげることができますので、それを分解して、セルにおいていくことを考えましたが、実現は可能ですが、次の文字(AAAの次であるBBB)を表示するのが条件が複雑すぎて断念しました。
⇒試した関数(Sample)
G2:=REPT(A2,C2)
G3以降:=LEFT(G2,LEN(G2)-LEN(A$2))
D列:=IF(A$2=LEFT(G2,LEN(A$2)),A$2)
IF文でG2とG3を組み合わせればできますが、$を条件をIF等を使って分岐すると複雑になりすぎました。
・INDIRECT関数とMATCH関数を組み合わせると2文字目以降がやはり複雑になりすぎたため断念しました。
条件
・Sampleでは7までしかありませんが、No.は概ね100前後で、数量に変動あり。
・Countは1~300としています。つまり最大で1列の自動表示のNameは30000セル。
・計算領域は自由。
・Sampleの列や行に関してはどの列や行を利用するかは自由としてます(作業列の追加など)。
求めている目標
・必要なのはCount個のName(SampleのE列)であって、No.やCountの表示方法は不要です。
・あまりに複雑な関数を多くのセルに適用すると、重くなることはさける(NGにした要因もその一つ)。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/06 04:05
2017/01/06 04:37