Excel VBA質問箱 IV

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

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


11679 / 13646 ツリー ←次へ | 前へ→

【14770】配列数式? ぴかる 04/6/7(月) 18:05 質問[未読]
【14772】Re:配列数式? BOTTA 04/6/7(月) 20:02 発言[未読]
【14795】Re:配列数式? ぴかる 04/6/8(火) 9:04 お礼[未読]
【14797】できました。 ぴかる 04/6/8(火) 9:56 お礼[未読]
【14816】Re:できました。 Asaki 04/6/8(火) 15:34 発言[未読]
【14821】Re:できました。 ぴかる 04/6/8(火) 16:06 お礼[未読]

【14770】配列数式?
質問  ぴかる  - 04/6/7(月) 18:05 -

引用なし
パスワード
   現在、ライン停止集計ソフトを作成中でして、下記の様なものを所得しようとしています。

データベース(例)
 A列…ライン名(組立A〜E)
 B列…設備名
 C列…故障時間(分)
上記データが、ぎょうさんあります。

各ラインごとに60分以上の数を所得したいと思っております。データベース関数を使えば、所得可能なのですが、なんせ手間がかかります。配列数式にて、所得可能でしょうか?。VBAではありませんが、よろしくお願いいたします。
配列数式って???状態でして、私の未開拓ゾーンのひとつです。分かりやすいサイト等、ございましたらご紹介の方もよろしくお願いします。

もうすぐ帰宅いたします。確認は、明日させて頂きます。すみません。

【14772】Re:配列数式?
発言  BOTTA  - 04/6/7(月) 20:02 -

引用なし
パスワード
   ぴかるさん、こんばんは。
>各ラインごとに60分以上の数を所得したいと思っております。データベース関数を使
>えば、所得可能なのですが、なんせ手間がかかります。配列数式にて、所得可能でしょ
>うか?。VBAではありませんが、よろしくお願いいたします。
>配列数式って???状態でして、私の未開拓ゾーンのひとつです。分かりやすいサイト
>等、ございましたらご紹介の方もよろしくお願いします。

配列数式については、
「日経PC21」のサイトの中に、とっても詳しく解説しているページがあります。

ttp://
pc21.nikkeibp.co.jp/
special/hr/

直接リンクを貼ると怒られるかもしれないんで、こんな書き方でごめんね。
(って、あんまり直貼りとかわんない(゚゚)(。。)ペコッ)

【14795】Re:配列数式?
お礼  ぴかる  - 04/6/8(火) 9:04 -

引用なし
パスワード
   BOTTAさん、おはようさんです。

>配列数式については、
>「日経PC21」のサイトの中に、とっても詳しく解説しているページがあります。
>
> ttp://
>pc21.nikkeibp.co.jp/
>special/hr/
>
>直接リンクを貼ると怒られるかもしれないんで、こんな書き方でごめんね。
>(って、あんまり直貼りとかわんない(゚゚)(。。)ペコッ)
ありがとさんです。ビギナーのあっしには、とてもえ〜とこです。今から、勉強してみます。
そして自分の内容が、配列数式にあてはまるかどうか解析してみます。
結果は、また後ほど!。

【14797】できました。
お礼  ぴかる  - 04/6/8(火) 9:56 -

引用なし
パスワード
   ありがとうございました。希望の数値を所得する事が出来ました。
ANDが使えないのが、ミソですね。最初の方だけ見て、こりゃANDでいけるぞと思って、
やってみたところNGでした。下の方の複数条件ていう所を見てみると、*を使うと
なってました。とても勉強になりました。今後も、いろんな所に使えそうです。
朝から、気分がいいです。BOTTAさん、またたのんますね!。

A列 … ライン名
C列 … 故障時間
D1 … 検索ライン名
=COUNT(IF((A2:A26=D1)*(C2:C26>=60),C2:C26,""))

【14816】Re:できました。
発言  Asaki  - 04/6/8(火) 15:34 -

引用なし
パスワード
   こんにちは。

配列数式ではないのですが、この手の問題でよく掲示板で回答されるのは、
Sumproduct() を用いた式ですね。

=SUMPRODUCT(($A$2:$A$26=$D$1)*($C$2:$C$26>=60))

いずれにしても、配列数式や、配列を扱う式は重いそうなので、データ量と相談のようです。
個人的には、難しい数式より、VBAを使います。

【14821】Re:できました。
お礼  ぴかる  - 04/6/8(火) 16:06 -

引用なし
パスワード
   Asakiさん、こんにちは。

>配列数式ではないのですが、この手の問題でよく掲示板で回答されるのは、
>Sumproduct() を用いた式ですね。
>
>=SUMPRODUCT(($A$2:$A$26=$D$1)*($C$2:$C$26>=60))
確認させて頂きました。こちらも希望の数値を所得出来ました。
SUMPRODUCTは、よく掲示板で拝見しています。(意味?で)
こっちも学習していこうと思います。

>いずれにしても、配列数式や、配列を扱う式は重いそうなので、データ量と相談のようです。
10数個の配列数式を削除してみたら、886KB→881KBとなりました。
今回のは、あんまり気にしないようにします。確かにピボットテーブル・データベース関数のデータ領域が大の場合は、アホぐらい重なりますね。こういう時は、マクロで領域を変更して対応しています。

>個人的には、難しい数式より、VBAを使います。
非常に新鮮さを感じたので、もう少しトライしていくつもりです。

色々と情報ありがとうございました。今後もよろしくお願いします。

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