Excel総合相談所 91

このエントリーをはてなブックマークに追加
952951:2010/05/23(日) 00:54:46
phonetic関数で変換しない場合は、  こうすれば変換するよってことで。
953951:2010/05/23(日) 00:58:59
>>952じゃうまく伝えきれてないな。

phonetic関数で変換しない場合は、>>951を行えば  
phonetic関数で変換出来るよってことで。
954名無しさん@そうだ選挙にいこう:2010/05/23(日) 04:46:31
ある行の数値の合計を求めたいのですがSUMを使うと
その行に全く数値が入っていない場合0と表示されてしまいます

行に全く数値が入っていない場合はブランクとし
行に数値が入っていて計算後0となる場合は0と表示したい場合
どのような関数を用いれば良いでしょうか?
955名無しさん@そうだ選挙にいこう:2010/05/23(日) 05:06:15
>>954
こんな感じ。
=IF(COUNTA(ある行)<>0,SUM(ある行),"")
956名無しさん@そうだ選挙にいこう:2010/05/23(日) 05:20:19
>>955
ありがとうございます
やってみましたがやはり0と表示されてしまいます
あと対象の行には文字の入っているセルもあります
(文字も入っていない行でも0と表示されてしまいます)
957名無しさん@そうだ選挙にいこう:2010/05/23(日) 06:08:59
>>954
=IF(SUM(ある行)=0,"",SUM(ある行))
958名無しさん@そうだ選挙にいこう:2010/05/23(日) 06:38:50
>>957
行に数値が入っていて計算後0となる場合は0と表示したいので・・・
959名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:00:52
>>954
=IF(COUNT(ある行)=0,"",SUM(ある行))
960名無しさん@そうだ選挙にいこう:2010/05/23(日) 07:31:48
>>955
COUNTに変えていけました
961940:2010/05/23(日) 13:48:15
>>945
数式を書き込んでるのは分りますが、
siki = Replace(siki, "+", "=", 1, 1) と Range("c4:h8").Formula = siki の意味がよくわからなくて・・・

Replace
指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。

Formula
セルに定数が入力されているときは、Formula プロパティはその定数を返します。セルが空のときは、空の文字列を返します。セルに数式が入っているときは、数式バーでの表示と同じ形式で、等号を含む数式を文字列として返します。
962940:2010/05/23(日) 13:50:08
>>950
勉強のため、漏れてた箇所を教えてください。
963名無しさん@そうだ選挙にいこう:2010/05/23(日) 14:13:40
>>961
Replaceする前 → +r[7]c+r[14]c
ここで先頭の「+」を「=」に置き換えると =r[7]c+r[14]c
となって数式になる。R1C1形式の数式だからちょっとわかりにくいけどプログラムで使うには便利な書き方。

Formulaの説明は読む場所を間違えてる。それは右辺の説明。ここでは左辺に使っている点に注意。
左辺に使ったときは数式を書き換えることができる。
964名無しさん@そうだ選挙にいこう:2010/05/23(日) 14:16:08
>>961
マクロは実行の時にVB画面で「F8」を押しながら、どういう動きをしているか見ると分かりやすい。

sikiにはループで「+r[7]c+r[14]c・・・」と入っていくので、ループから出た後、最初の「+」を「=」に置き換えている。
この式をRange("c4:h8")に一気に数式として代入している。

本来「FormulaR1C1」とするべきだったかな・・・
http://www.moug.net/tech/exvba/0050098.htm
965949:2010/05/23(日) 14:57:07
>>950
どうも、できました。
参考までに下で読みをたしかめると「フクチチ」と出たのですが、合ってますか?

Sub gg()
MsgBox Application.GetPhonetic("複乳")
End Sub


>>951-953

いや実は、漢字のデータが大量にあってそれを効率的にひらがなにする方法を考えてたわけで、いちいち1つ1つ編集するのでは意味ないので。
966名無しさん@そうだ選挙にいこう:2010/05/23(日) 14:59:45
いつも何気なく使ってたのですが、「FormulaR2D2」の「R2D2」ってどういう意味があるのですか?
967名無しさん@そうだ選挙にいこう:2010/05/23(日) 15:17:54
スターウォーズに出て来るロボットですね
968名無しさん@そうだ選挙にいこう:2010/05/23(日) 15:29:18
C3PO(´・ω・`)
969名無しさん@そうだ選挙にいこう:2010/05/23(日) 16:13:20
WinXPで、Excel 2002を使ってます。
エクセルを起動したときに、セルの色を塗りつぶすバケツみたいなマーク
『塗りつぶしの色』が、いつも黄色で起動します。

エクセルを起動時に、塗りつぶしの色を青にしたいのですが
どうすればいいのでしょうか? 教えて下さい m(_ _)m
970名無しさん@そうだ選挙にいこう:2010/05/23(日) 17:38:29
>>969
ブックごとの設定になるけど、ツール、オプション、色の黄色のところを変更すれば、
そのブックを開いたときだけ設定した色になる。

どんなブックでも青にしたいならテンプレートかVBA。
971927:2010/05/23(日) 18:12:21
>>932-937
delete
したいのではなく、列そのものを削除したかったんです。
938,939さんありがとうございます。
助かりました。
972名無しさん@そうだ選挙にいこう:2010/05/23(日) 19:22:34
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 使えません

13行目 1.5  2.5  3.1  1.9  2.7  1.2  2.3

15行目  3    6         2         7    3

上のような表で
「15行目の数値を合計する」
「ただし合計するのは同じ列の13行目の数値が大きいもの上位3つのみ」
という式が欲しいのですがどのようになるでしょうか?
973名無しさん@そうだ選挙にいこう:2010/05/23(日) 19:40:34
上位3番目までに同位があったら・・・・

=SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A15:G15)
974940:2010/05/23(日) 19:47:21
>>963
>>964
ご丁寧に説明してくださり、ありがとうございます。
しかし凄いですね。こんなアイデアは思いもつきませんでした。
975名無しさん@そうだ選挙にいこう:2010/05/23(日) 20:12:02
=>>973
やってみましたが#N/Aと出ます。。。
976名無しさん@そうだ選挙にいこう:2010/05/23(日) 20:29:31
>>975
NAがでるのは配列が揃っていない時が多いよ。チェックしてみて
977名無しさん@そうだ選挙にいこう:2010/05/23(日) 20:42:09
>>976
>972の各数値列の間にブランク列があるのですがそれが原因でしょうか?
15行目の数値の左に記号が入っていてその列が各数値間に挟まってます
978名無しさん@そうだ選挙にいこう:2010/05/23(日) 21:50:39
>977
1行下に作業行を設けることはできませんか?
=IF(ISNUMBER(A15),A15,0)
をA16に設定し、右へフィルコピーした上で、
=SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A16:G16)
ではいかが?
979名無しさん@そうだ選挙にいこう:2010/05/23(日) 22:03:48
>>799です
>>800-804の皆様、お礼が遅くなりましたが、ありがとうございます。m(_ _)m

あの後、自分でも試してみて、思ったとおりの動作をしてくれたのですが、
式の中に出てくる、*3や+7、-30とかの数字がどこからでてくるのか、何を表すのかがわかりませんでした。orz
本当に申し訳ありませんが、これらの数字が何を表しているのか教えて頂けると非常に助かります。。
何卒ご教授の程、よろしくお願い致します。
980名無しさん@そうだ選挙にいこう:2010/05/23(日) 22:12:54
>>978
たびたびすいません。
15行目と同様の行が200行ほど続いていまして
その各行で同じ計算をしたいので・・・
元の表から作りなおした方が良いでしょうか
981名無しさん@そうだ選挙にいこう:2010/05/23(日) 22:16:11
>>979
ごめん回答したけど、どんな表だっけ(´・ω・`)?
10行目から飛び飛びに3行おきのデータを見るんだよね・・・?

=INDEX(D:D,ROW(A1)*3+7,0)

ROW(A1)は「1」 1*3+7で10 
下にいっこずれると 
ROW(A2)は「2」 2*3+7で13 ・・・・って感じ

INDEXのD列の中で10、13、16・・・行目を見ていけってこと
982複乳:2010/05/23(日) 22:42:58
>>962
C65535 → $c$65535
行は65535までしかない。これ以上増やそうとしたのでエラーになった
>>965
あってるよ
後は応用だけど、もう面倒なので作った。A1:A100に漢字のデータを貼付け。B1:B100に読み方が出る
Sub gg()
Dim i
For i = 1 To 100
Cells(i, 2) = Application.GetPhonetic(Cells(i, 1))
Next
End Sub
983978:2010/05/23(日) 22:59:53
>980
ブランク(半角or全角の空白がある)なセルも含め、全てのデータから空白を削除できませんか?(置換機能にて)
そしたら作業行は不要になるはずですが。
984名無しさん@そうだ選挙にいこう:2010/05/23(日) 23:21:00
>>983
時間掛かりそうですがやってみます
それと>>978の式で*が入っているのですがこれは積を求めることになるのでしょうか?
15行目の合計が求めたいのですが・・・
985940:2010/05/23(日) 23:30:15
>>982
ありがとうございます。
986978,983:2010/05/23(日) 23:33:30
>984
=SUMPRODUCT((RANK(A13:G13,A13:G13)<=3)*A16:G16)
の * は論理積を求めるものです。合計は SUMPRODUCT 関数で求めます。

例えば↓をみてください。ぐぐればいろいろわかります。
http://excel.onushi.com/function/sumproduct.htm
初心者のエクセル入門

空白を一度に取り除くのは 検索/置換 です。「全て置換」だとワンクリックで済みます。
検索する文字列 に 空白、置換後の文字列 にはなにも入力しない  これだけです。
※ただし、文字列の中の空白も削除されるので、要注意
http://www.h6.dion.ne.jp/~yakichan/nyumon/02/nyumon2-30.html
エクセル講座
987986:2010/05/24(月) 00:15:49
>986の自己訂正 * は結果的に論理積になるだけで、普通にかけ算です。

(RANK(A13:G13,A13:G13)<=3)の部分が論理式となるので、かけ算のときは1or0になるので、
結果的にA13:G13のなかのトップ3の部分だけが1,他は0になる
→A16:G16のそれぞれに1or0をかけたものの和(SUMPRODUCT)が答えになるということです。
988名無しさん@そうだ選挙にいこう:2010/05/24(月) 01:06:10
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初心者レベル

下記Aのような表で、セルの色をツール-オプション-色で細かく調整して色分けしてあります。
これをオートフィルタでBのように抽出し、この状態をマクロボタンを押して新規のブックにして
保存したいのですが、抽出してないデータも一緒にコピーされたり、セルの色も初期状態に
戻ってしまい、マクロボタンも一緒にコピーされてしまいます。

----- A --------------
支店   計画   実績
青森   300    256
福島   120    111
千葉   550    563
岐阜   330    299
鳥取   120    132
---------------------
===== B ==============
支店   計画   実績
青森   300    256
千葉   550    563
岐阜   330    299
=====================

抽出した部分だけをコピーし、セルの色を引き継ぎ、マクロボタンを消すには
どうすればいいですか?

Sub 保存()
Sheets("Sheet1").Copy

ActiveWorkbook.SaveAs "C:\data\" & "test.xls"
End Sub
989名無しさん@そうだ選挙にいこう:2010/05/24(月) 01:39:02
マクロで、日付の変数で、1か月分後の日付を計算するにはどうすればいいですか?
日にちなら単純に1を足せばいいけど、月だとうまくできないので困っています。

関数じゃなく、マクロでお願いします。
990名無しさん@そうだ選挙にいこう:2010/05/24(月) 06:04:22
>>989
31日の一ヶ月後は?たとえば1月31日の一ヶ月後は?
991989:2010/05/24(月) 07:52:31
2月31日
992989:2010/05/24(月) 07:53:53
というか月までしか表示しないからそんな計算しなくていいのだ
993名無しさん@そうだ選挙にいこう:2010/05/24(月) 10:16:32
>988
抽出した部分だけのコピー、セルの色を引き継ぐ、マクロボタン(とマクロ)は引き継がない ということならば、
シートのコピーではなく、シート上の全セルをコピーする方法ではどうですか?
マクロの自動記録で下記の手順を記録してみてください。
1 全セル選択(A1セルの左上部分をクリック)
2 メニュー−編集−コピー(右クリックからの操作でも可)→ここでオートフィルタの結果だけになる
3 メニュー−ファイル−新規ブック
4 セルカーソルがA1にあるのを確認してメニュー−編集−貼り付け
5 A1セルをクリック
6 メニュー−ファイル−名前を付けて保存

セルの色と罫線は引き継がれますが、行の高さ、列の幅の情報は引き継げないようなので、
必要によりVBAで設定が必要になります。それと、ページ設定も引き継げません。
もっといい方法があるかもしれませんが、誰かアイデアをだしてくれるでしょう。
994名無しさん@そうだ選挙にいこう:2010/05/24(月) 12:12:47
行の高さは左端の行番号を選択して行全体をコピペすれば引き継がれます。
列の幅は形式を選択して貼り付けの中に「列幅」というのがあります。
印刷書式を引き継ぐ方法は、プリンターの機種を限定すればできますが、
汎用の方法はありません。ブックごとコピーする必要があります。
995名無しさん@そうだ選挙にいこう:2010/05/24(月) 13:29:25
78
996名無しさん@そうだ選挙にいこう:2010/05/24(月) 14:42:05
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 フォームコントロール 連動

御願いします。
シート1にあるフォームコントロール(チェックボックス1)に、
チェックをつけると、
シート2にあるフォームコントロール(チェックボックス4とフォームコントロール(チェックボックス5)
も連動してチェックが付き(シート1のチェックを外すと4と5も外れる)、
かつシート2のA1セルに○を入力するといった
方法をとりたいのですが、どのように記述(VBA)したら良いでしょうか?
997名無しさん@そうだ選挙にいこう:2010/05/24(月) 15:11:36
>>988
コピーしてから削除が早いな。全てのボタン(shapes)を削除
不可視セルのD列に1を付け、fornextでstepを-1。D列が1の行を削除
と思ったら不可視セルの判定方法が分からなかった。hiddenプロパティが何故か取得できない。。悔しいっ(ビクビクッ
プログラム板のvbaスレに行ってみては?
>>996
シートaとbを用意、それぞれにcheckboxを一つずつ用意
'Sheet1(a) に記述
Private Sub CheckBox1_Change()
Call unko
End Sub
'標準モジュールに記述
Sub unko()
Sheets("b").CheckBox1.Value = Sheets("a").CheckBox1.Value
End Sub
これでcheckboxが連動する。後は何とかなるだろう
998名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:12:37
※ 次スレのご案内 ※
http://pc11.2ch.net/test/read.cgi/bsoft/1274695863/
999名無しさん@そうだ選挙にいこう:2010/05/24(月) 19:48:33
埋め
1000ならVBAマスター\(^o^)/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。