今仮に、表1において「x」と入力されているセルがSheet1のA1セルであり、Sheet2のA列~B列を作業列として使用して、Sheet3及びSheet4に、表5の様な変換後の表を表示させるものとします。
尚、Sheet3の表は「xの値が等しいと共にyの値も等しいデータが複数存在している場合には、その中でzの値が最も大きいものの値を表示する」表とし、
Sheet4の表は「xの値が等しいと共にyの値も等しいデータが複数存在している場合には、その中でzの値が最も小さいものの値を表示する」表とします。
まず、Sheet2のA1セルに次の関数を入力して下さい。
=IF(COUNT(Sheet1!$C:$C),REPLACE(REPT(0,15),ROUNDUP(LOG10(MAX(ABS(MAX(Sheet1!$C:$C)),ABS(MIN(Sheet1!$C:$C)))),0),1,"0."),"")
次に、Sheet2のA2セルに次の関数を入力して下さい。
=IF(AND($A$1<>"",COUNT(INDEX(Sheet1!$A:$A,ROW()):INDEX(Sheet1!$C:$C,ROW()))=3),IF(COUNTIF(A$1:A1,INDEX(Sheet1!$A:$A,ROW())&"◆"&INDEX(Sheet1!$B:$B,ROW())&"◆"&TEXT(INDEX(Sheet1!$C:$C,ROW()),"1"&$A$1&";0"&$A$1)),"",INDEX(Sheet1!$A:$A,ROW())&"◆"&INDEX(Sheet1!$B:$B,ROW())&"◆"&TEXT(INDEX(Sheet1!$C:$C,ROW()),"1"&$A$1&";0"&$A$1)),"")
次に、Sheet2のB2セルに次の関数を入力して下さい。
=IF(COUNTIF($A2,"*?◆*?◆*?"),COUNTIF($A:$A,">"&$A2),"")
次に、Sheet2のA2~B2の範囲をコピーして、同じ列範囲の3行目以下に貼り付けて下さい。
次に、Sheet3とSheet4のB1セルに次の関数を入力して下さい。
=IF(OR(ISNUMBER(A1),COLUMNS($B:B)=1),IF(COUNTIF(Sheet1!$A:$A,">"&IF(COLUMNS($B:B)=1,-9E+307,A1)),LARGE(Sheet1!$A:$A,COUNTIF(Sheet1!$A:$A,">"&IF(COLUMNS($B:B)=1,-9E+307,A1))),""),"")
次に、Sheet3とSheet4の各々のシートにおいて、B1セルをコピーして、同じ表内の1行目においてB1セルよりも右側にある全てのセルに貼り付けて下さい。
次に、Sheet3とSheet4のA2セルに次の関数を入力して下さい。
=IF(OR(ISNUMBER(A1),ROWS($2:2)=1),IF(COUNTIF(Sheet1!$B:$B,">"&IF(ROWS($2:2)=1,-9E+307,A1)),LARGE(Sheet1!$B:$B,COUNTIF(Sheet1!$B:$B,">"&IF(ROWS($2:2)=1,-9E+307,A1))),""),"")
次に、Sheet3とSheet4の各々のシートにおいて、A2セルをコピーして、A3以下に貼り付けて下さい。
次に、Sheet3のB2セルに次の関数を入力して下さい。
=IF(OR($B$1="",$A2=""),"",IF(COUNTIF(Sheet2!$A:$A,B$1&"◆"&$A2&"◆*"),INDEX(Sheet1!$C:$C,MATCH(COUNTIF(Sheet2!$A:$A,">"&B$1&"◆"&$A2&"◆9"),Sheet2!$B:$B,0)),""))
次に、Sheet3のB2セルをコピーして、同じ表内において、zの値を表示する可能性のある全てのセルに貼り付けて下さい。
次に、Sheet4のB2セルに次の関数を入力して下さい。
=IF(OR($B$1="",$A2=""),"",IF(COUNTIF(Sheet2!$A:$A,B$1&"◆"&$A2&"◆*"),INDEX(Sheet1!$C:$C,MATCH(COUNTIF(Sheet2!$A:$A,">"&B$1&"◆"&$A2&"◆")-1,Sheet2!$B:$B,0)),""))
次に、Sheet4のB2セルをコピーして、同じ表内において、zの値を表示する可能性のある全てのセルに貼り付けて下さい。
これで、表5の様な変換後の表がSheet3とSheet4に表示されます。
尚、
>(3)異なるzが存在した場合、その行列を残す。
との事ですが、それは一体どの様な残し方にすれば宜しいのでしょうか?
例えば、表1において、xの値が15でyの値が12となっていて、尚且つzの値が異なっている行が複数存在していた場合、表5の1行目(xの値欄)には15が複数列に表示され、1列目(yの値欄)には15が複数行に表示される事になりますが、
その際、表1においてxの値が15で、yの値が例えば14、zの値が例えば6となっている行が1行だけ存在していた場合には、
表5において、yの値が14となってる行においては、xの値が15となっている全ての列において6と表示しなければならないのでしょうか?
お礼
keithin様 ご回答ありがとうございます。 ご教示頂いた方法を試したところ、 解が得られました。 丁寧に教えて頂き、ありがとうございます。 >こういった具体的な目に見える情報があれば、皆さん二度手間も無くもっとすっきり進んだと思いますよ。 本当に申し訳ございません。 例に示したもので十分かと思っておりました。 私のエクセルへの知識や情報伝達手段が拙かったため、皆様にご迷惑をお掛けいたしました。 >もう一回落ち着いて、「回答の手順をよく読みながら」最初からやり直してみてはいかがですか。他の方からのアドバイスと、ごっちゃにしないようによく気を付けて作業してください。 ありがとうございます。 時間が迫っていたのであわてておりました。 私があわてていたため、皆様にお手数をお掛けしてしまったこと、 また、丁寧に教えて頂いたのに失礼な言い方をしてしまったことをお詫びいたします。 もっと落ち着いて、具体的に伝えられるよう気をつけます。 ご回答頂いた他の皆様にも、この場を借りましてお礼とお詫びを申し上げます。 将来、皆様の様に他の人にアドバイスできるよう努力致します。 この度は本当にありがとうございました。