Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5054 / 13644 ツリー ←次へ | 前へ→

【52843】複数行どうしの積の最小値? youko 07/12/5(水) 23:08 質問[未読]
【52846】Re:複数行どうしの積の最小値? 再投稿 ichinose 07/12/6(木) 0:25 発言[未読]
【52847】Re:複数行どうしの積の最小値? 再投稿 youko 07/12/6(木) 2:04 お礼[未読]

【52843】複数行どうしの積の最小値?
質問  youko  - 07/12/5(水) 23:08 -

引用なし
パスワード
   こんにちは、
下図のような二つの範囲について、
i)2行目から、1行目が1となる列のものを選び、そのうちの最小値(0以外)を出す 
ii)また、その最小値のある列番号を出す
というものを、それぞれ直接「数式として」セルに入力します。

1行目が0か1なのを利用して、A1*A2,B1*B2…という配列を得られれば最小値など求めやすいのですが、そのような関数はあるのでしょうか?


  ABCDEFG
1 0010100 (1行目は0か1です)
2 1204501


わかりにくかったらすみません、よろしくお願いします。

【52846】Re:複数行どうしの積の最小値? 再投稿
発言  ichinose  - 07/12/6(木) 0:25 -

引用なし
パスワード
   ▼youko さん:
こんばんは。


分かりやすい記述ですね!!

>下図のような二つの範囲について、
>i)2行目から、1行目が1となる列のものを選び、そのうちの最小値(0以外)を出す 
>ii)また、その最小値のある列番号を出す
>というものを、それぞれ直接「数式として」セルに入力します。
>
>1行目が0か1なのを利用して、A1*A2,B1*B2…という配列を得られれば最小値など求めやすいのですが、そのような関数はあるのでしょうか?
>
>
>  ABCDEFG
>1 0010100 (1行目は0か1です)
>2 1204501
>
本当は、上記例題でのほしい結果も記述してください。
1行目が1で2行目が0以外の最小値だと5で、列はE列だからこれも5
という結果でよいですか?

だとしたら、
i)は、

適当なセル(仮にセルH1とします)に

=MIN(IF((A1:G1)*(A2:G2)>0,A2:G2))

但し、配列数式ですから、セルの確定はEnterキーではなく、
Ctrl+Shift+Enterキーで確定してください。

さらにii)は、

=MIN(IF(IF((A1:G1)*(A2:G2)>0,A2:G2)=H1,COLUMN(A2:G2)))

但し、配列数式ですから、セルの確定はEnterキーではなく、
Ctrl+Shift+Enterキーで確定してください。
尚、ii)の配列数式内では、i)の結果を参照していますから、注意してください。

試してみてください。

【52847】Re:複数行どうしの積の最小値? 再投稿
お礼  youko  - 07/12/6(木) 2:04 -

引用なし
パスワード
   ▼ichinose さん:
拙い説明でしたが、意を酌んでくださってありがとうございます。
i)のほうはこんなにすっきりとできるんですね!感服です。
ii)は式の内容はまだ理解しきれていないのですが、期待していた列番号を得ることができました。
本当に助かりました、どうもありがとうございます!

5054 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free