- 締切済み
自動入力の方法
ある数値を入れる度に(別に入れる欄があり)、A,B,C・・・の単位で計算された数値が図のように表示されるのですが、今まではその表示を目で見て共通する数字を(1)の欄に入れて条件付き書式で目立つようにしていました。 この同じものが、12シートあり、1つ1つ目で見て手入力するのは大変なので自動入力させたいのですが、自分の能力ではここまでかな?なんて半分諦めているのですが、(笑)。 自動入力させる方法があったらヒントだけでも教えていただけないでしょうか。 条件は 1.(1)の入力部は3つ。 2.2回連続したら、表示。(Bのようにブランクのところは考えないため、A,Cと同じ数字があれば2連続とする) 3.2連続したものは数字を保持。 4.(1)に入れる数字は上から小さい数字順とする。 5.エクセルVer.は今だに2003です。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
各シート名が何という名称なのかという事や、12枚のシート上のどこからどこまでのセル範囲に数値が入力されているのかという事、(1)の結果をどのシートのどのセル範囲に表示させれば良いのかという事、等々が不明ですので、 仮の話として、元データである数値が入力されている12枚のシートのシート名は「SheetA」、「SheetB」、「SheetC」、「SheetD」、「SheetE」、「SheetF」、「SheetG」、「SheetH」、「SheetI」、「SheetJ」、「SheetK」、「SheetL」であり、その12枚の各シートのA1:C4のセル範囲に数値が入力されていて、 「結果」というシート名のシートのA2:A4の範囲に(1)の結果を表示させるものとします。 又、「作業用」というシート名のシートの、A列~L列を作業列として使用する事とします。 まず、作業用シートのA1~L1の範囲に、「SheetA」、「SheetB」、「SheetC」、「SheetD」、「SheetE」、「SheetF」、「SheetG」、「SheetH」、「SheetI」、「SheetJ」、「SheetK」、「SheetL」といった、元データが入力されているシートのシート名を、シートが並んでいる順序通りに入力して下さい。 次に、作業用シートのA2セルに次の関数を入力して下さい。 =IF(ISERROR(1/COUNT(INDIRECT("'"&A$1&"'!A1:C4"))),"",COUNT(INDIRECT("'"&A$1&"'!A1:C4"))) 次に、作業用シートのA2セルをコピーして、作業用シートのB2セルに貼り付けて下さい。 次に、作業用シートの(A4セルでも、B3セルでもなく)B4セルに次の関数を入力して下さい。 =IF(ROWS($4:4)>SUM(B$2),"",IF(ISERROR(1/COUNTIF(INDIRECT("'"&INDEX($A$1:$L$1,MATCH(9E+307,$A$2:A$2))&"'!A1:C4"),SMALL(INDIRECT("'"&B$1&"'!A1:C4"),ROWS($4:4)))),"",IF(COUNTIF($A$4:INDEX(A:A,ROWS(A:A)),SMALL(INDIRECT("'"&B$1&"'!A1:C4"),ROWS($4:4)))+COUNTIF(B$3:B3,SMALL(INDIRECT("'"&B$1&"'!A1:C4"),ROWS($4:4))),"",SMALL(INDIRECT("'"&B$1&"'!A1:C4"),ROWS($4:4))))) 次に、作業用シートのB2~B4の範囲をコピーして、作業用シートのC2~L4の範囲に貼り付けて下さい。 次に、作業用シートのB4~L4の範囲をコピーして、同じ列範囲の5行目以下に貼り付けて下さい。 次に、結果シートのA2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNT(作業用!$A$4:INDEX(作業用!$L:$L,ROWS(A:A))),"",SMALL(作業用!$A$4:INDEX(作業用!$L:$L,ROWS(A:A)),ROWS($2:2))) 次に、結果シートのA2セルをコピーして、結果シートのA3以下に貼り付けて下さい。 これで、(数値が入力されていないシートは無視して)直前のシートに同じ数値が入力されているセルが存在する数値のみが抽出され、その結果が結果シートのA3以下に、値の小さい順に表示されます。