- 締切済み
関数式のチェック
すいません。式のチェックお願いします<m(__)m式の意味を理解してないので全然分かりません。6,10、25,26,28,30 と横一列に並べたいのですが、T3に6が入るようにしたいです。(>_<)
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルの初心者だろうが、こんな難しい式にこだわって、何回も同じ質問を他人に聞くなどする前に、操作でもできるからやってみたら。 エクセルは、できるものは、まず「操作でやる」というソフトだと思う。 ーー 第1行D2:M2をコピーして S2以右にコピー貼り付け T-AB列を範囲指定 ホームー検索と選択ー置換 ●を空白に置換 T-AB列を範囲指定 ホームー選択と選択ー条件を指定してセル選択ー空白セル を指定 ホームー削除ーセルの削除ー 左方向にシフト ーー こういうデータを空白セルをなくして詰めるというのは関数では、むつかしいのだ。 この質問よりも、似ていて、よくある課題では、 ある1列のデータに、条件を付けて、該当セルを選び出すという課題がある。 これとは課題的に似ていて、とびとびの該当セルを上方に詰めて結果データを積めるという点が、むつかしいのだ。本質問では左詰めと間隔は1セルと決まっているようだが。 その関数は、いまでは質問コーナーでは、有名ではあるが、一人で考え付くとか、理解するのは、最上級の次ぐらいの難度だよ。
- bunjii
- ベストアンサー率43% (3589/8249)
>式のチェックお願いします<m(__)m式の意味を理解してないので全然分かりません。 他人が組み立てた数式を理解できないのに処理範囲を変えようとしたことによるものです。 数式の論理を学習してから応用するよう心掛けてください。 数式のIFEROR関数については理解できていますよね? INDEX関数の範囲と何番目の値を取り出すかの関連性を考えてください。 D3:R30では28行×15列になりますからE3の値を取り出すには =INDEX(D3:R30,1,2) でなければなりません。しかし、D3:R3に変更すると =INDEX(D3:R3,2) と省略できます。 提示の数式では2列目、4列目、6列目、9列目、12列目、15列目の値を順次取り出すための工夫をしたつもりでしょうが使う値を間違えているようです。 SMALL関数の範囲をIF関数で列番号の配列に置き換えていますが此処でも思い違いが出ています。 COLUMN($D3:$R3) の値は {4,5,6,・・・,16,17,18} という配列なので目的の2がありませんので COLUMN($A3:$O3) に変更する必要があります。 COLUMN($D3:$R3)のままにするときはINDEX関数の範囲を変更する必要があります。 INDEX($A3:$R3,5)にすればE3セルの値である6が抽出できます。 SMALL関数の何番目についても提示の数式ではCOLUMN(D3)としていますので4番目からになってしまい目的とはかけ離れます。 数式の論理をもう1度考え直してみると良いでしょう。
お礼
アドバイスありがとうございます。
- watabe007
- ベストアンサー率62% (476/760)
T3セルに配列数式で、 =IFERROR(INDEX($A3:$R3,SMALL(IF(ISNUMBER($D3:$R3),COLUMN($D3:$R3)),COLUMN(A1))),"")
お礼
回答ありがとうございます。やってみます。
- msMike
- ベストアンサー率20% (364/1805)
お礼
回答ありがとうございます。