- 締切済み
連続しないセルから最小値を引き出すが、ゼロを除外
3つおきにセルを拾い(20セル)それから最小値を引き出すのですが、min関数では、ゼロを拾ってしまいますし、small関数では、連続しないセルは対応しないようです。 お知恵をお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
No.2です。 (1)先に書かなかった私も悪いのですが、「列方向に、かつ途中(セルc3)から横に飛んでいきます。 (2)まあ、多分大丈夫かとおもうのですが。 (3)普通のEnterとCtrl+Shift+Enterは何が違うのでしょうか。 まず(1)について ↓の画像のような配置だとします。 (2)について まったく大丈夫ではないと思います。 数式そのものが変わってしまいます。 (3)について 文章で説明するより「配列数式」で検索すれば山ほど説明がでてきます。 簡単にいえば、普通は各行(各列)バラバラに計算したものをさらに別の計算(足し算・掛け算等々)をする! といったような操作を一塊に格納して一気に計算してしまおう!という方法です。 さて本題ですが、 ↓の画像(今回は20列分だけとしました)でA3セルに =MIN(IF((MOD(COLUMN(C3:V3),3)=0)*(C3:V3<>0),C3:V3)) 今回も配列数式ですので、Ctrl+Shift+Enterで確定します。 この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → A3セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! これで画像のような感じになります。m(_ _)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >3つおきにセルを拾い(20セル) ↓の黄色いセルの中で最小値という解釈です。 画像ではC1セルに =MIN(IF((MOD(ROW(A1:A60),3)=1)*(A1:A60<>0),A1:A60)) これは配列数式になりますので、Ctrl+Shift+Enterで確定! 「3つおき」が画像でいうと1・4・7・・・の解釈が違って 1・5・9・・・というコトであれば 数式を =MIN(IF((MOD(ROW(A1:A60),4)=1)*(A1:A60<>0),A1:A60)) にしてみてください。 ※ 実際の表のレイアウトが判らないので、1行目からのデータにしていますが、 データの配置により数式の >ROW(A1:A60) 部分を変更する必要があります。m(_ _)m
お礼
早速のご回答有難うございます。 先の方とはMODの中が少し違いますね。 先に書かなかった私も悪いのですが、「列方向に、かつ途中(セルc3)から横に飛んでいきます。 まあ、多分大丈夫かとおもうのですが。 もし疑問が出たらまたここに書きますのでよろしくお願いします。 ちなみに。 普通のEnterとCtrl+Shift+Enterは何が違うのでしょうか。 配列数式?というのも良く知りませんので・・・すみません無学で。 とりあえず頑張ってみます。 有難うございました。
- Chronos198
- ベストアンサー率30% (105/349)
=MIN(IF((MOD(ROW(A1:A20),3)=0)*(A1:A20<>0),A1:A20,"")) 【重要】Ctrl+Shift+Enter で決定する。 A1:A20(対象範囲)と=0(行数を3で割った余り、=0だと3、6、9行目などが拾われる)を適時変更してください。
お礼
素早い回答ありがとうございます。 早速試してみます。 ちなみに、行ではなく、列方向に参照しますが、要は参照範囲が変わるだけで問題はないですよね? 「MOD(ROW(A1:A20),3)」の3とは3つおきという意味ですか?いや、範囲で「3で割る」?という意味でしょうか。 無学でスミマセン。 ここまで複雑な関数式だと、理解が難しいもので。 とりあえず、表に当てはめてみます。 ありがとうございました
お礼
返信遅くなりすみません。 バタバタしてて中々時間がなかったのと、実は、更に項目数が増え、5つおきの場合も必要となり、おうようして、とやったのですが、何故か正しいデータを拾えない状況になってしまい、頭を痛めてた所です。 間に挟むセル、桁数が、2増えたらMOD(COLUMN(C3:v3),3)の部分をMOD(COLUMN(C3:v3),5)にすれば良いのではないのですか? と、考えたのですが、うまく行きません。 なぜなんだろうと頭を捻っております。 また、スレッドを立てるかも知れません。 その際はよろしくお願いします。 ありがとうございました。