質問: excel関数に関する質問です。 excel関数に関する質問です。 横のセル「対象*」セルに対する項目と値があるとします。横のセル1列分が1セットです。 添付画像にある、「対象*」セル、「項*」セル、「値*」セル(「*」は数字)がそれです。 「項*」セルには項目の名称、文字列が入ります。 「値*」セルには通常の数値とは異なり、コードのようなものが入ります。例えば「00-1234」。 「結果」セルに「項目1,値1,項目2,値2,項目3,値3~」のように計算結果を出します。 重要な点は、 ■1. それぞれのセル(「項*」、「値*」)の間に必ず「,」(コンマ)をつけて表示する。 「結果」セルの例:項目1,値1,項目2,値2,~ ■2. 「値*」セルの内容が、「none」の場合、その部分は表示しない。表示させないキーワードは空白や他の文字でもいいのですがとりあえず「none」で設定。 「結果」セルの例(1番目、3番目のセルが「none」の場合): 項目2,値2,項目4,値4 ■3. 計算結果を出すセルは「対象*」ごとに必ず同じセルでなければならない。 例えば、「対象1」は「j1」セル、「対象2」は「j4」セルに最終的な計算結果を出す。 ■4. 「対象*」セルによって項目があるもの(「値*」が「none」以外)と、ないもの(「値*」が「none」)の場所は決まっていない。 マクロや簡単なプログラムは知っているので作れると思いますが、関数のみでできるようにしたのですがどのようにするのか具体的に教えていただけないでしょうか? 回答で分からなかった点は、改めて補足で質問すると思いますがそのときはよろしくお願いします。 回答よろしくお願いします。
回答: 最後にカンマを付けないということになれば式は長くなってしまいますね。j1セルには次の式を入力して下方にオートフィルドラッグします。 =left(if(c1="","",b1&","&c1&",")&if(e1="","",d1&","&e1&",")&if(g1="","",f1&","&g1&",")&if(i1="","",h1&","&i1),len(if(c1="","",b1&","&c1&",")&if(e1="","",d1&","&e1&",")&if(g1="","",f1&","&g1&",")&if(i1="","",h1&","&i1))-1)