Excel総合相談所 113

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

Excel VBA 質問スレ
http://sirtuin.me/index.php?word=Excel%20VBA%20%E8%B3%AA%E5%95%8F%E3%82%B9%E3%83%AC%20

【質問不可】Excel総合相談所スレの雑談・議論スレ
http://sirtuin.me/index.php?word=Excel%20%E9%9B%91%E8%AB%87
2名無しさん@そうだ選挙にいこう:2014/05/01(木) 08:50:46.45
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
3名無しさん@そうだ選挙にいこう:2014/05/01(木) 14:49:45.50
>>1乙です
早速質問させてください

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ(英語的に色変更やセル変更などはできる程度)
【4 VBAでの回答の可否】 簡単なものであれば

範囲の中に一つだけ色がついてあるセルがあります
MAX関数のように、この色がついてるセルを導き出したいのですが、そのような関数or機能はあるでしょうか?

範囲は各行。右に現在の数値として、[ ]の値(色付きセル)を表示したい
1  [2] 3  4  5 → 2
1  2  3 [4] 5 → 4
[1] 2  3  4  5 → 1
4名無しさん@そうだ選挙にいこう:2014/05/01(木) 15:33:40.41
マクロ使わないと無理じゃね?
for each c in activesheet.usedrange
if c.interior.colorindex <> xlnone
なんか処理
endif
next
5988:2014/05/01(木) 16:25:05.29
前スレの988です。

ファイルをアップロードしましたので、
お手すきの際にでもチェックしていただければ幸いです。

↓実際に作ったファイル
http://test2test2.web.fc2.com/test.xlsx

↓web形式でアップロードしたファイル
http://test2test2.web.fc2.com/test.mht


自分のPC上ではweb形式保存でも閲覧できるのですが、
ネット上にアップロードすると、ソースらしきものだけで、正しく表示されません。
6名無しさん@そうだ選挙にいこう:2014/05/01(木) 16:36:49.49
>>5
なんで最初からhtm形式で保存&うpしないの?
表とテキストしかないのに。
7988:2014/05/01(木) 17:11:19.69
>>6
今までhtmlでやってきたのですが、
Excelの方がスッキリしてていいなぁ…と試していたところ、
上手くいかないので質問させていただきました。

自分でも相当調べてみたんですが、
どうしてもわからず、モヤモヤと……
8名無しさん@そうだ選挙にいこう:2014/05/01(木) 18:15:34.13
mhtはマイクロソフトの独自形式かも。IEなら開ける。
9名無しさん@そうだ選挙にいこう:2014/05/01(木) 18:18:45.15
>>3
セルの色を調べるような処理は、すべてVBAを使わないと無理と思っていい
色の付いたセルの場所とか、セルが何色かとか

例外は条件付き書式で色を付けたセルに対して、同じ条件式を使って判定する時ぐらい
10名無しさん@そうだ選挙にいこう:2014/05/01(木) 18:28:09.07
>>5 >>7
その症状はfc2のサーバがmhtに非対応
自分でサーバの設定が変更できるならいいけど、そうでなければアウト

参考
http://kajuhome.com/patio_thread/886.shtml
11名無しさん@そうだ選挙にいこう:2014/05/01(木) 18:34:37.40
>>8
うちのIE11では開けないんですよねぇ。
バージョンの問題でしょうか。調べてみます。

>>10
その書き込みにも目を通してはいましたが
やはり非対応という解釈になりますか。

設定変更は無理みたいなので他の方法を模索してみます。
ありがとうございました。
12名無しさん@そうだ選挙にいこう:2014/05/01(木) 18:40:39.13
前スレ>>992
=lookup(1,0/(a$1:a1<>""),a$1:a1)
これの解説だれか

lookupのヘルプには、
第二引数にソートされた配列じゃない場合は正しい結果を返さない
としか書いてなくて、実際には何が返るのか不明
13名無しさん@そうだ選挙にいこう:2014/05/01(木) 18:41:39.71
>>11
直接は開けないけど、ローカルに保存すればIEで開けるという意味だった
たぶん>>10のいうとおり
14名無しさん@そうだ選挙にいこう:2014/05/01(木) 19:37:32.89
>>3です。
>>4 >>9 お答え有り難うございます
やはりVBAしか方法がないのですね…
データ量が少ないので手動で行いつつ、>>4を参考に調べてみます
ありがとうございました
15名無しさん@そうだ選挙にいこう:2014/05/01(木) 20:17:55.09
>>12
なかなかおもしろそうだったので調べてみた。

まず(A$1:A2<>"")この部分は配列で返る。これは事前に勉強してね
割り算の意味は、
0/TRUE は0
0/FALSE はエラー
が返ることを利用する

見た目通り、第二引数が肝心です。
lookupは一番最後にマッチしたもの、またマッチしなければそれ未満の数でマッチしたものが返るっぽい。
そしてエラーは基本無視する。エラーしかなければエラーNAが返る。

つまり検査範囲は0かエラーのみになる。

第一引数は0より大きければなんでもいいことになる。まぁ1でいいだろうな。

A1A2に"a"
a3a4に"b"
でB3を見ると
=lookup( 1, { 0; #div/0!; 0}, A$1:A3)

読めるようになったかな?
エラーは虫、1未満の数で最後にマッチしたものなので、A3、すなわち"b"を返す

この仕様、公式に書いてないので怖くて業務用には使えないけど
16名無しさん@そうだ選挙にいこう:2014/05/01(木) 20:40:17.43
>>15
ありがとうございます。
第二引数がソートされてない場合は最後にマッチした結果を返す、という部分がミソですね。
これ最初に考えた人、どんな頭してんだろ…

縦方向の結合セルに対して、この式使えば便利だと思ったんですが、
確かにいつ変わるかわからない仕様なので業務で使うのは止めときます
17名無しさん@そうだ選挙にいこう:2014/05/02(金) 09:09:43.81
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

やりたいこと

別のフォルダにあるBookからID検索で顧客の名前、生年月日、性別を反映させたい。


過去に作成した顧客データがあるのですが、1月〜12月と月ごとにフォルダ分けしています。
原本であるBookの顧客ID欄にIDを入れると過去に作成した顧客データからデータを反映させるには
どうすればいいでしょうか?
18名無しさん@そうだ選挙にいこう:2014/05/02(金) 09:43:31.77
原本に過去データのシートをコピーしてvlookupでも使えば?
見た目悪ければ、過去データのシートは非表示で
1917:2014/05/02(金) 10:50:51.15
作業を早くする為にそうしたいという希望ですので
出来ればID入力で済ませたいです。
20名無しさん@そうだ選挙にいこう:2014/05/02(金) 11:37:01.93
>>19
顧客データのブックは12個?それともフォルダが12個で、その中にブックが複数ずつ入ってるの?
その顧客データは追加や修正されることはある?
21名無しさん@そうだ選挙にいこう:2014/05/02(金) 11:50:40.67
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

テーブルと書式設定をした上で、AからOまでセルを使い、価格表を作っている。
途中いくつかのセルに簡単な足し算の式を入れたんだが、昨日までは例えば
B10に日付を入力すると、書式設定が反映されて、上の式が自動で下におりてきて、
入り、セルのデザインも書式設定のデザインに変わったんだが、いきなりできなくなった。

ほかのexcelファイルもどうやらそうみたい。

原因わかる方いますか?
22名無しさん@そうだ選挙にいこう:2014/05/02(金) 12:28:43.45
>>21
Excelのオプションを開いて、数式→計算方法の設定→ブックの計算、を自動に
http://blogimg.goo.ne.jp/user_image/28/e5/f0530d20c897e014c0be959978442aa6.png
2317:2014/05/02(金) 12:31:33.36
>>20
その年度のフォルダ内に1月〜12月までのフォルダがあります(12個)
そして月ごとのフォルダ内に複数(詳細は不明ですがかなりの数)の顧客データがあります。
新規の顧客も継続されている顧客も関係なく常に新しいbookで作成しますので
顧客データの追加はありますが修正は今のところ不明です。


26年度のフォルダ→1月〜12月のフォルダ(12個)→顧客データ(かなりの数)

こういった形です。


継続されている顧客のbookを作成する際に、顧客IDを入力する名前、生年月日、性別が
反映される仕様にしたいのです。
24名無しさん@そうだ選挙にいこう:2014/05/02(金) 12:48:19.84
>>23
めんどくさすぎて笑えるw
ID打つ度に全部のブックを検索すんのか?w
2517:2014/05/02(金) 13:04:51.21
>>24
めんどくさいという事は可能なんでしょうか?
26名無しさん@そうだ選挙にいこう:2014/05/02(金) 13:19:43.47
>>25
可能だけどVBA必須なのと、1件入力するたびに検索で数十秒待たされる可能性がある
作るのも面倒だし、使うのも面倒な物になりそうな悪寒

対策の一つとしては、毎日朝一番にまず最新の検索用の名簿を作って、入力作業中はその名簿から検索するように作る
これなら名簿のアップデートに数分、あとは瞬時に検索できるようになるはず

この規模になるとボランティアで作れるもんじゃない
プロに金を払って作って貰うレベル
2717:2014/05/02(金) 14:09:36.44
>>26
可能だけど実用的ではないという事ですね。
わかりました。教えて頂いた理由を添えて断ることにします。
わざわざ教えて頂きありがとうございました。
28名無しさん@そうだ選挙にいこう:2014/05/02(金) 14:16:22.73
ソフトの作成に20万かけて、月給10万の入力要因のパートを一人クビにできれば、3ヶ月目からは利益が出る計算だけどな
2917:2014/05/02(金) 14:35:30.31
名前、生年月日、性別だけの項目ではないので少し厳しいかと思います。
30名無しさん@そうだ選挙にいこう:2014/05/02(金) 15:49:35.29
>>22

自動になっております。他に原因ありますか?
31名無しさん@そうだ選挙にいこう:2014/05/02(金) 19:04:22.41
>>21,30
>入力すると、書式設定が反映されて、上の式が自動で下におりてきて
マクロかな?
そのエクセルのセキュリティの設定が変更されてませんか?
ファイルタブ−オプション−セキュリティセンター−セキュリティセンターの設定 と開いていき
マクロの設定(4通り)のうち「警告を表示せずにすべてのマクロを無効にする」が選択
されてないか、みてください。
32名無しさん@そうだ選挙にいこう:2014/05/02(金) 19:31:32.26
>>25
書式設定が隣のセルから勝手にコピーされるのはわかるけど、式まで自動入力されるなんて初めて聞いたわ
>>31のいうとおりマクロだろうな
あと、マクロ署名の証明書有効期限が切れたとか
33名無しさん@そうだ選挙にいこう:2014/05/02(金) 19:36:36.69
テーブルだとふつうにしてくれる機能だけどな いっこのセルに式いれると全部の行に同じ式がはいる
34名無しさん@そうだ選挙にいこう:2014/05/02(金) 20:48:22.73
テーブルの範囲が解除されちゃってるんじゃね?単に。
35名無しさん@そうだ選挙にいこう:2014/05/03(土) 10:09:32.37
>>32
関連で…
お節介機能は出来るだけを消しているんだけど、
隣の書式のコピーを止められないかな?
36名無しさん@そうだ選挙にいこう:2014/05/04(日) 00:22:42.98
複数のExcelファイルに書かれているデータを
行にデータがある箇所だけ抜き取って
まとめて別の一つのExcelファイルにまとめたいのですが
そういうやり方とかあるのでしょうか?
37名無しさん@そうだ選挙にいこう:2014/05/04(日) 00:27:17.21
>>36
マクロ
38名無しさん@そうだ選挙にいこう:2014/05/04(日) 00:31:34.06
http://imgur.com/IglyEDz.jpg

勤務表なんですが、
13:00〜18:00という勤務の日は、書式設定の表示形式を、 [h]  にして分を表示させないようにしていて
11:30〜17:30という勤務の日は、とくに設定を変えずそのまま表示してます。


これを、 13:00 と入力した時だけ表示形式を自動で[h]にして 13 と表示されるようにすることってできませんか??

さらに、入力する際に 13 と入力するだけで、表示形式が[h]の 13:00 になるようにできませんか?

▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
39名無しさん@そうだ選挙にいこう:2014/05/04(日) 00:51:47.22
>>38
単に「13」とだけ入力すると、それは13日(24時間×13日=312時間)という意味になってしまうので、
VBA不可ならシリアル値(本当の日付けや時間)を使うのをあきらめて、13日を13時とみなして扱うしかない
40名無しさん@そうだ選挙にいこう:2014/05/04(日) 01:00:05.80
>>36
いくらでもあるが、場合による。
恐らくある程度決まっているだろうけど、全てのブック名、その中のシート名を列挙
>>38
そのままの要望だとvba必須

そうでなければ作業列を用いて、G列に
=if(g1=13,0.54166666666,g1) ・・・
みたいなアホな式を立てる必要がある

そうでなければ、基本的に全体を「時間」「分」に分ける必要がある
1 火 12 00 - 18 00
のようにするしかない

間違いなく後者のほうが良いだろう
41名無しさん@そうだ選挙にいこう:2014/05/04(日) 01:08:30.43
>>38
分が0の時に表示しないだけなら条件付き書式で
数式 =MINUTE(A1)=0
書式 h
にするだけ
4238:2014/05/04(日) 19:30:16.39
>>39-41
親切丁寧な解答、すごくありがたいです!

後者の要望に関してはさすがにVBAか複雑な式が必要になってしまうんですね・・。

前者の要望に関しては、>>41の条件付き書式を設定して使うとよさそうですね。
これで楽になりそうです。ありがとうございました!
43名無しさん@そうだ選挙にいこう:2014/05/04(日) 22:58:13.97
質問です
エクセルでフィルタかけて、抽出した行のみをまとめて色つける方法はありますか?
ドラッグドロップすると消えた行もまとめて色付けされてしまうorz
44名無しさん@そうだ選挙にいこう:2014/05/04(日) 23:05:39.51
>>43
どゆこと?
45名無しさん@そうだ選挙にいこう:2014/05/04(日) 23:21:41.53
A1 あ
A2 い
A3 あ
あ でフィルタかけてA1:A3を塗ると い も塗ってしまうってことだな
A1:A3を選択 ホーム 検索 条件を選択してジャンプ 可視セル
の状態で色塗りすればok
46名無しさん@そうだ選挙にいこう:2014/05/04(日) 23:22:15.00
>>45>>43アテネ
47名無しさん@そうだ選挙にいこう:2014/05/05(月) 00:53:25.99
>>44-46
ありがとうございます!
おかげで120行を一つづつctrl+しなくてすみます
48名無しさん@そうだ選挙にいこう:2014/05/05(月) 01:02:43.64
範囲選択した後、alt+;でええやん
49ぴころ ◆lHG3Yzo0a6 :2014/05/05(月) 06:48:17.84
>>48
おまえエライ(^▽^)
50名無しさん@そうだ選挙にいこう:2014/05/05(月) 08:51:17.98
>>48
そんなんあったのか、thx
そういや新しいショートカットキー、いつからか覚えなくなったなぁ
51名無しさん@そうだ選挙にいこう:2014/05/05(月) 13:40:42.55
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 否
別ファイルか、同ファイルの別シートに品名等の一覧を作っておき
メインシートで入力時にそれを参照させることはできますでしょうか?
品名、型番など多種に渡り数も多いので入力の手間を省きたいのです。
52名無しさん@そうだ選挙にいこう:2014/05/05(月) 13:52:48.46
>>51
LOOKUP関数でテーブルを別シートや別ファイルに作るってことは出来るけど
53名無しさん@そうだ選挙にいこう:2014/05/05(月) 14:00:25.36
>>52
ありがとうございます。それでやってみます。
54名無しさん@そうだ選挙にいこう:2014/05/08(木) 01:14:23.05
   G               H          i
1 #NAME?   2013/07/01 2013.07.01
式 =WEEKNUM(H1,2)  =SUBSTITUTE(I1,".","/")

と書かれた状態で正常に表記されていたG1がふと見るとエラを出すようになったのですが
H1をダブルクリックするとエラーが消えるのですがこれは一体何がおきているのでしょうか?
Excel2003です。
55名無しさん@そうだ選挙にいこう:2014/05/08(木) 01:16:57.25
>>54
ずれてしまったので訂正・・・
   G                    H                   i
1 #NAME?          2013/07/01            2013.07.01
式 =WEEKNUM(H1,2)  =SUBSTITUTE(I1,".","/")
5654:2014/05/08(木) 01:18:56.52
>>54
度々済みません
ダブルクリックエラーが解消されるのは「G1」でした。。
5754:2014/05/08(木) 01:47:49.69
>>54
メモリー不足かPCがおかしくなったのかと別のノートPCで確認してみましたが同じくエラーが出ていまして
ダブルクリックして式を1度表示させるとエラが消えます。。何なんでしょうねぇこれは。。
iの日付データが元からあったデータで
Gの=WEEKNUM(H1,2)とHの式はVBAで後から自動記述しています。
5854:2014/05/08(木) 02:06:57.62
>>54
自己解決!!
再度式を記述するVBAを実行しましてまったっく同じ式を再記入させるいと正常に表示されました。
式もデータも間違いはないようですがシート数が結構多く自動処理時に何らかの予期せぬ不具合に遭遇したようです。
59名無しさん@そうだ選挙にいこう:2014/05/08(木) 02:15:42.20
>>58
たぶん
Range("H1") = "=SUBSTITUTE(I1,""."",""/"")"
とかやってんじゃない?それじゃエラーになって当たり前だよ
6054:2014/05/08(木) 02:24:05.82
>>59
こう書いて列の最終行まで記述しています。

With Range("I1")
.Formula = "=Substitute(I1,""."",""/"")"
.AutoFill Destination:=.Resize(end_row)
End With

ご指摘頂いた式と類似してますね、、、
これはまずいのでしょうか?
61名無しさん@そうだ選挙にいこう:2014/05/08(木) 02:26:48.94
プロシージャの中で
Application.Calculation = xlManual
ってやってない?
62名無しさん@そうだ選挙にいこう:2014/05/08(木) 02:26:59.19
excelの不具合の前にまず自分の頭を疑え
excel作ってる人はお前なんかより遥かに頭いいよ
63名無しさん@そうだ選挙にいこう:2014/05/08(木) 02:27:35.65
>>60
With Range("I1") > With Range("H1") でした、、眠くてどうも駄目です、、w
6454:2014/05/08(木) 02:31:16.26
>>61
その記述は書かれていません。
65名無しさん@そうだ選挙にいこう:2014/05/08(木) 02:34:26.12
>>60
最後にCalculateって入れとけ
66名無しさん@そうだ選挙にいこう:2014/05/08(木) 02:37:01.22
>>64
じゃあ逆に入れといた方がいいかもね
6754:2014/05/08(木) 02:40:55.59
>>65
>>66
なるほど今までは何となく動いていましたが
入れておくとより確実になるわけですね
ありがとうございます。試して見ます。
68名無しさん@そうだ選挙にいこう:2014/05/08(木) 10:17:58.48
>>54
バグかなんか知らんが再計算は途中で終了することがある
http://oshiete.goo.ne.jp/qa/3727370.html
69名無しさん@そうだ選挙にいこう:2014/05/08(木) 10:59:58.10
キーボードの右下ふきんにセルを編集するためのショートカットキーはありませんか?
と申しますのは複数セル同時入力時にすでに入力されてる1つのセル値を他の複数のセルにコピーするとき
右手1つで操作したいときに便利だからです。(不明点はエスパーすること。Excel上級者なら意味は分かると思います。)
70名無しさん@そうだ選挙にいこう:2014/05/08(木) 11:33:34.52
>>69
無い
このへん使うか、多ボタンのゲーム用マウスなどがオススメ
http://www.forest.impress.co.jp/docs/review/20120905_557460.html
71名無しさん@そうだ選挙にいこう:2014/05/08(木) 12:00:46.59
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

VBAでSelectionが連続したセルの場合と連続していないセル(セルとセルが飛び地のようになっている。)の場合で処理を変えたいのですが
Ifで分岐するときどういう記述の仕方になりますか?
またそれと同等の書き方があれば教えて下さい。
よろしくお願いします。
72名無しさん@そうだ選挙にいこう:2014/05/08(木) 12:21:33.48
>>71
もっとスマートな方法もありそうだけど、とりあえず思いつきで

With Selection
  If .Rows.Count * .Columns.Count = .Cells.Count Then
    MsgBox "れんぞく"
  Else
    MsgBox "とびとび"
  End If
End With
7371:2014/05/08(木) 12:40:30.42
>>72
嗚呼、素晴らしい!
このスレ始まって以来のアインシュタインだ。
74名無しさん@そうだ選挙にいこう:2014/05/08(木) 12:45:29.41
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
vlookupをindexmatchに置換する簡単な方法って何かありますか?
75名無しさん@そうだ選挙にいこう:2014/05/08(木) 14:09:37.23
>>72
ありがとうございます。
シンプルでスマートだと思います。
勉強になります。
76名無しさん@そうだ選挙にいこう:2014/05/08(木) 15:01:45.60
>>74
Replace(文字列, "vlookup", "indexmatch")
77名無しさん@そうだ選挙にいこう:2014/05/08(木) 15:12:14.25
導入日 JANコード        メーカー名 商品名 規格 入数 原価 売価 率 a店 b店 c店 d店 e店 f店 g店 h店 i店 j店 k店 l店 m店 n店 o店 p店 q店 r店 s店 t店 u店 合計
05/13(火) 4901301026587 ○○商事 A機器 100g 5 1000 1500 33.3% 1 1 1 1 4
05/13(火) 4901301026587 ○○商事 A機器 100g 5 1000 1500 33.3% 1 1 1 3



導入日 JANコード    メーカー名 商品名 規格 入数 原価 売価 率 a店 b店 c店 d店 e店 f店 g店 h店 i店 j店 k店 l店 m店 n店 o店 p店 q店 r店 s店 t店 u店 合計
05/13(火) 4901301026587 ○○商事 A機器 100g 5 1000 1500 33.3% 1 1 1 1 1 1 1 7

のように2行を1行に集約したいのですが、1000行くらいあり、何か方法はないかと思い、書き込みをさせて頂きました。
よろしくお願いします。

http://www1.axfc.net/u/3237874

に同様のファイルをアップロードさせて頂きました。
78名無しさん@そうだ選挙にいこう:2014/05/08(木) 15:41:59.53
>>77
何と何が一致したら集約するの?
導入日から率まで9項目全部?
79名無しさん@そうだ選挙にいこう:2014/05/08(木) 15:54:16.20
80名無しさん@そうだ選挙にいこう:2014/05/08(木) 18:45:32.99
>>78
そうです。
重複する 導入日から率までが一致した場合に a店〜u店にそれぞれの数値を集約していきたいのです。
ちょっと行が多めのサンプルファイルをアップします。

http://www.dotup.org/uploda/www.dotup.org5047629.xls.html

>>79
ありがとうございます。
ごめんさい。イマイチよくわからなかったです。
81名無しさん@そうだ選挙にいこう:2014/05/08(木) 18:50:23.21
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 コピペだけ出来ます。
【4 VBAでの回答の可否】 可

コードの校正をお願いします

「店舗」と言うシートがありまして、全セルを対象に
「#N/A」となっている(式はありません)
セルだけをクリアにする↓のようなコードがマクロ記録でできたのですが、コピペ
で運用しようとしたら動きませんでした。
正しいコードを教えてくださいm(_ _)m


Sheets("店舗").Select
Selection.SpecialCells(xlCellTypeFormulas, 16).Select
Application.CutCopyMode = False
Selection.ClearContents
End Sub
82名無しさん@そうだ選挙にいこう:2014/05/08(木) 19:11:52.15
すみません。ソルバーを使用した線形計画法の質問をさせてください。
以下の条件の下で、利益が最大になるそれぞれの製品の個数を求めなければならないのですが、
どのように解を見つければよろしいでしょうか?
変数が4つで、意味が分からなくなってしまっています。
よろしくお願い申し上げます。


製品/1台当たり利益/前工程(人時/台)/後工程(人時/台)
A/100000/30/50
B/80000/40/40
C/65000/50/30
D/50000/60/20

     前工程(人時)/後工程(人時)
処理能力/20000/1600
83名無しさん@そうだ選挙にいこう:2014/05/08(木) 19:12:57.60
すみません。
処理能力/20000/16000

でした。
84名無しさん@そうだ選挙にいこう:2014/05/08(木) 19:13:58.00
>>81
ホントに全セルを対象にしていいの?
8581:2014/05/08(木) 19:54:46.73
>>84
はい、「店舗」と言うシートの全セルを対象としたいです
8681:2014/05/08(木) 19:55:41.99
>>84
はい、店舗と言うシートの全セルを対象としたいです
8781:2014/05/08(木) 19:56:34.08
すみません連投してしまいました
88名無しさん@そうだ選挙にいこう:2014/05/08(木) 20:49:27.79
>>82
製品/生産台数/前工数/後工数/利益計
A/1/30/50/100000
B/1/40/40/80000
C/1/50/30/65000
D/1/60/20/50000
計/4/180/140/295000

こっから始めて
条件が 前工数計<=20000
後工数計<=16000

出来るんか?今忙しい
89名無しさん@そうだ選挙にいこう:2014/05/08(木) 21:03:05.97
>>81
それだと#N/A以外のエラーも消去されてしまう
厳密にやるなら

Sheets("店舗").Select
For Each c In ActiveSheet.UsedRange
  If c.Text = "#N/A" Then c.Clear
Next

対象のセルが大量に(数十万個のオーダー)あるなら画面の書き換えと再計算は止めた方がいいかも
9081:2014/05/08(木) 21:14:18.36
>>89
ありがとうございます
セルは大体2800〜30000弱位ですから
大丈夫と思います
91名無しさん@そうだ選挙にいこう:2014/05/08(木) 23:26:00.52
>>89
それ、テキストで #N/A って書いてあったらクリアされるぞ
厳密とか言うなら CVErr とか使わないと
92名無しさん@そうだ選挙にいこう:2014/05/08(木) 23:45:52.48
ちゃんと調べるならISNA関数あたりかな
93名無しさん@そうだ選挙にいこう:2014/05/09(金) 00:13:26.27
>>80
http://www.dotup.org/uploda/www.dotup.org5048529.xls.html
こうか
AF列にデータを集約、それを元にAIを表示
AIが表示で他全部表示
AG列は別に消してもいい
94名無しさん@そうだ選挙にいこう:2014/05/09(金) 00:40:32.38
>>82
変化させるセル
セル 名前 値
$B$2 A 120.1547162
$B$3 B 114.7937092
$B$4 C 109.9484325
$B$5 D 105.103142

目的セル
セル 名前 値
33600773.57 33600773.5

結果がこうなった
条件がいくつでも追加できる
変数はいくつでもセルが連続してれば範囲で選択できる
変化セルを整数にする方法がわからんし
結果が正しいのかもわからん

普通にやるとマイナス個で結果でるから、条件に変化セル>=0も追加しなきゃならん
95名無しさん@そうだ選挙にいこう:2014/05/09(金) 00:46:19.36
>>82
目的セル (最大値)
セル セルの値
$H$6 34166667


変化させるセル
セル セルの値
$B$2 A 233
$B$3 B 0
$B$4 C 0
$B$5 D 217

オプションで線形モデルにしたら結果が変わった
96名無しさん@そうだ選挙にいこう:2014/05/09(金) 00:55:35.39
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

E〜GH列の間で、いくつかの列をグループ化しています。
未入力のセルにデータを入れるため、このグループを解除しようとしたら
もともとグループ化されてなかったためエラーになってしまいました。

CMN1 = Month(Date) * 5 + 105
CMN2 = Month(Date) * 5 + 109
Set Rng = Range(Columns(CMN1), Columns(CMN2))
Rng.Columns.Ungroup
┌──────────────────────
|実行時エラー 1004
|RangeクラスのUngroupメソッドが失敗しました
└──────────────────────

そこで、グループを解除する前に、グループ化されてるか否かを判定しようと、
If Rng.Columns.Group Then Rng.Columns.Ungroup としてみましたが
スルーされてしまいました。
どうすればグループ化されてるか否かを判定できるでしょうか?
97名無しさん@そうだ選挙にいこう:2014/05/09(金) 01:52:33.76
>>96
http://www.excel.studio-kazu.jp/kw/20130328115357.html
columns("a").OutlineLevel
が1以上だとそれっぽい
if columns("a").OutlineLevel > 1 then
~
でいけるかも
98名無しさん@そうだ選挙にいこう:2014/05/09(金) 07:49:26.86
>>92
それ使って >>81 をやれるんか?
99名無しさん@そうだ選挙にいこう:2014/05/09(金) 09:09:55.49
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 コピペだけ
【4 VBAでの回答の可否】 可


異なるBOOKのシートをコピーして張り付けするVBAを教えてください

同じフォルダ内に
 touki
 TK5200
 YRT189
と言う3つのBookがありまして
コードはtoukiのBOOKで実行したいのですが、ほか2つのファイルは開いていません

処理内容は
TK5200のOPP32と言うシートの全てのセルをコピーして
toukiのkousaihiと言うシートに貼り付けて

YRT189のTT678と言うシートのA〜Hをコピーして
toukiのzappiと言うシートのA〜Hに値だけ貼り付ける

と言う処理が出来るコードをお願いします。
100名無しさん@そうだ選挙にいこう:2014/05/09(金) 10:46:16.51
>>96

いっそ判別なんかしないでそのままエラーを出させてはどうだろう?

Rng.Columns.Ungroup

の部分を

On Error Resume Next
Rng.Columns.Ungroup
On Error Goto 0

にしちゃえばエラーが出ても無視して先に進めるよ
どうせグループ化されてない部分でエラーが出るなら
この処理無視しても問題ないでしょ
101名無しさん@そうだ選挙にいこう:2014/05/09(金) 11:05:40.91
一連の操作をマクロの記録でやれ
102名無しさん@そうだ選挙にいこう:2014/05/09(金) 11:21:03.27
Excel2010、GoogleIMEの組み合わせでセルにMacroと入力しようとすると
Mあcろになってしまうのですがこれを回避するにはどうすればいいですか?
Excelの時だけ起きます。
103名無しさん@そうだ選挙にいこう:2014/05/09(金) 11:32:06.61
>>102
確定した瞬間に戻るってこと?
104名無しさん@そうだ選挙にいこう:2014/05/09(金) 11:44:31.76
>>103
入力中からです。
一文字目をシフトキー押しながら入力した時に起きます。
105名無しさん@そうだ選挙にいこう:2014/05/09(金) 11:46:59.84
ちなみに以前使ってた機種では一文字目をシフトキー押しながら入力した時は
全てアルファベットで入力してくれてました。
106名無しさん@そうだ選挙にいこう:2014/05/09(金) 11:59:50.42
>>98
IsErrorよりISNA(IsNA)の方が判定式がシンプルになる

For Each c In ActiveSheet.UsedRange
  If WorksheetFunction.IsNA(c) Then c.Clear
Next

>>91
CVErrは用途が逆じゃ?
107名無しさん@そうだ選挙にいこう:2014/05/09(金) 12:02:03.93
>>105
その機能は知らなかった
Excel2010、GoogleIME、windows7の組み合わせだけどMacroになるけどなぁ
解決法としては
・エクセルのオートコンプリートを切る
・googleime エクセル でぐぐって片っ端から色々試す
ぐらいしか思い浮かばぬよ
108名無しさん@そうだ選挙にいこう:2014/05/09(金) 12:05:27.65
>>99
まずはマクロの記録を試す
109名無しさん@そうだ選挙にいこう:2014/05/09(金) 12:07:57.91
>>107
ありがとう。
確かに出来ていたのはWindows7でした。Windows8だと無理なのかもしれませんね。
変換候補に出てくる”もしかして”が代用できるのでそっちを使います。
110名無しさん@そうだ選挙にいこう:2014/05/09(金) 12:16:59.37
>>109
返還中にF10で半角英語に変換できるよ
111名無しさん@そうだ選挙にいこう:2014/05/09(金) 12:17:47.58
領土返還
112名無しさん@そうだ選挙にいこう:2014/05/09(金) 13:09:12.05
>>106
こっちの方がシンプルだろ
まあ、たいして変わらんとも言うが (w

For Each c In ActiveSheet.UsedRange
  If c.Value = CVErr(xlErrNA) Then c.Clear
Next

> CVErrは用途が逆じゃ?

逆の用途って、なんだ?
11399:2014/05/09(金) 13:45:40.98
>>108
フォルダは毎回移動した場所でつかうので、同じフォルダ内で検索したいと思います。

↓マクロで作ったコード
ChDir "C:\Users\****\Desktop\***" '←フォルダ名は常に同じですが、フォルダの場所は変わります。
Workbooks.Open Filename:="C:\Users\***\Desktop\"フォルダ名"\YRT189.xls"
Sheets("TT678").Select
Columns("A:H").Select
Selection.Copy
Windows("touki.xlsx").Activate
Sheets("zappi").Select
Columns("A:H").Select
ActiveSheet.Paste
114名無しさん@そうだ選挙にいこう:2014/05/09(金) 14:11:17.66
>>112
c.Valueがエラー値じゃなかった場合、その判定式では実行時エラーで止まる
115名無しさん@そうだ選挙にいこう:2014/05/09(金) 14:28:56.15
vbaでシート無しのブックを作れませんか?

既存ブックのシートを新規ファイルにコピるときに、
worksheets("sheet1").copy
set wb = activeworkbook
だと、いったんマクロの制御から離れたのを後から捕まえに行くのが気持ち悪い。
先にworkbooks.addして、そこにコピーすればいいけど、最初からあるシートを消すのも面倒というかスマートじゃない
116名無しさん@そうだ選挙にいこう:2014/05/09(金) 14:55:36.33
>>115
無理
117名無しさん@そうだ選挙にいこう:2014/05/09(金) 21:22:22.13
俺もそう思ってた時期があったわ
それで動くんだからまぁいいかと思って諦めた、っつうか慣れた
118名無しさん@そうだ選挙にいこう:2014/05/09(金) 22:58:37.67
>>93
ありがとうございます。
119名無しさん@そうだ選挙にいこう:2014/05/10(土) 03:43:05.75
今はエクセル2010の正規版はまともな値段(1万円台)では買えないのでしょうか

さすがに2000ではそろそろ限界が…
120名無しさん@そうだ選挙にいこう:2014/05/10(土) 03:59:18.64
>>119
無理っぽいね

中古かオークションかDSP版かボッタ価格か2013か
121名無しさん@そうだ選挙にいこう:2014/05/10(土) 08:54:08.43
>>119
これから長く使うことを考えれば2013でいいとも思う
122名無しさん@そうだ選挙にいこう:2014/05/10(土) 18:41:07.64
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

エクセルを用いて収支表を作成していたのですが行き詰ってしまいました。

例えば以下のような収支データがあったとします。

[テーブル1]
年月日 収支
2014/5/1 +20000
2014/5/1 -50000
2014/5/15 -30000
2014/5/31 -40000
2014/6/1 +30000
2014/6/8 -25000

それを基に2014年5月に収支が発生した日数を数える方法はありますか?

COUNTIFS(テーブル1[年月日],">=2014/5/1",テーブル1[年月日],"<=2014/5/31")

のようにCONTIFS関数を用いても収支の発生した件数は「4件」と表示させることはできますが、日数を「3日」と表示させることはできません。

何かいい方法はありますでしょうか?
123名無しさん@そうだ選挙にいこう:2014/05/10(土) 19:10:46.95
>>122
ピボットテーブル
124名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:18:32.50
>>123
ピボットテーブルよく分からないんで関数だけで表現する方法ありますか?
125名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:26:57.18
>>124
月だけ表示する列を入れれば、簡単に出来るのでは?
126名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:31:53.87
>>122
C1=IF(AND(MONTH(A1)=$D$1,COUNTIF($A$1:A1,A1)=1),1,0)
D1=5
D1は月

こういうのってSUMPRODUCTでできる?
127名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:39:55.64
=SUMPRODUCT((TEXT(範囲,"yyyym")="20145")/COUNTIF(範囲,範囲))
128名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:41:29.42
>>125
なるほど
やっぱり作業列挟む必要あるんですかね

>>126
SUMPRODUCTは確かにググったら出てきました
数値の種類の数を数える場合有効みたいです
ただ自分がやろうとしてるのは数値の範囲を限定してから数えないといけないので困ってます
129名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:46:28.89
>>127
すごい!
見事に動きました
有難うございます

ところで今後の勉強のためにこの数式の意味教えていただけると幸いです
130名無しさん@そうだ選挙にいこう:2014/05/10(土) 22:57:55.89
>>127
うほっサンクス
>>129
全部配列のまま計算してる。
5/1,5/3,5/3,6/4だと
sumproduct({true,true,true,false} / {1,2,2,1})
true/1 + true/2 + true/2 + false/1
で、合計が3
131名無しさん@そうだ選挙にいこう:2014/05/11(日) 00:51:54.99
>>120
中古でもオークションでも構わないのですが
アヤシイOEM版ばかりなので…

2013は評判激悪なんですけど
大丈夫ですか?
会社で使っている2010は使いやすいので
2010にしようと思っています
132名無しさん@そうだ選挙にいこう:2014/05/11(日) 17:32:55.14
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelの資格試験を受けようと思っているのですが
出題項目として「以前のバージョンとの下位互換性を保つ」というのがありました。
検索してもいまいち答えが見つからないのですが
具体的にどうすれば良いのでしょうか?
133名無しさん@そうだ選挙にいこう:2014/05/11(日) 18:41:20.73
>>131
試用版があるのでダウンロードしてみては?
個人的にいくつかほしい関数があるので、2013はかなり欲しい

>>132
そんなのあるのか
下位互換って行ってもセル範囲、ifserrorを使わない、条件付き書式は3つまで・・・とかそれぐらいしか思い浮かばない
134名無しさん@そうだ選挙にいこう:2014/05/11(日) 20:19:02.06
>>132
xlsxじゃなくてxls形式で保存しろってこと
135名無しさん@そうだ選挙にいこう:2014/05/11(日) 20:27:17.04
>>133
セルの塗りつぶしに使える色の制限とか
136名無しさん@そうだ選挙にいこう:2014/05/11(日) 20:51:14.26
テーブルも構造化参照もつかえないのは痛い
137名無しさん@そうだ選挙にいこう:2014/05/12(月) 00:52:35.94
>>132

一番簡単なのは >>134 が言ってるように
作ったらxlsで保存してみること。
xlsではサポートされてないものを使っていれば
互換性チェックで怒られる。
だから、実際の場面では対して困らない。

試験や検定じゃ、そういうわけにはいかないでしょけど。
138名無しさん@そうだ選挙にいこう:2014/05/12(月) 05:41:23.93
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
XSLXではなく、XSLファイルを作る必要があってXLSファイルを弄っているのですが
このファイル形式、ZIP圧縮時に
完全無編集でもセーブするたびに勝手にファイルサイズがころっころ変わるんですが
どうなっているんでしょうか?
(起こるのはXLSだけで、他のファイルではこんな事はないので、ZIP圧縮ソフトのせいではないです)

圧縮時に最高で500バイトくらい変わってしまい、
ファイルはできるだけ小さくしろと言われているので、
セーブ回数にまで気をつけないといけないとか、精神的にストレスを感じます

酷い時は、ただ圧縮しただけのファイルより、
開いて、セーブもせずにただ閉じただけものを
圧縮するとファイルサイズが200バイト肥大化した事もありました
霊現象みたいで気持ち悪いです
139名無しさん@そうだ選挙にいこう:2014/05/12(月) 05:48:14.74
>>138
xlsはセーブした回数、つまり「改訂回数」を内部情報として保存する機能がある
ファイルを右クリック→プロパティ→詳細を見て、改訂番号がそれだ
その更新回数の数字のせいで、おそらくzip形式での圧縮効率がよくなったり悪くなったりするんだろう
たった数字一つで500Bも変わると言うのは謎だが…
また、君のクライアントか上司か知らんが相手が500Bくらいで文句を言ったりせんだろ
一々気にするな
140名無しさん@そうだ選挙にいこう:2014/05/12(月) 08:49:21.18
>>138
Excel に限らず、Office のファイルは内部にファイルシステムの様な構造持ってて、領域の管理とかを色々やってるから、見かけ上はちょっとした変更でも内部の管理領域の内容ががらっと変わることはある。
なので、そういうもんだと思って使うしかない。
ファイルサイズを気にしてる人の真意はわからんが、HDD のバイト単価と君の時給を比較して説得するがよろし。
141名無しさん@そうだ選挙にいこう:2014/05/12(月) 08:52:11.07
毎回新規に別名保存すりゃええんちゃう
142名無しさん@そうだ選挙にいこう:2014/05/12(月) 10:20:13.71
外付けのHDD 1TBが8000円前後で買える今、5kバイト云々しても…と思うが、、、、
143名無しさん@そうだ選挙にいこう:2014/05/12(月) 14:15:31.92
>>134
>>137
ありがとうございます。
試験の出題項目として書かれていたのですが
実際に試験ではどうすれば良いでしょうか?

また、同様に出題項目に「演算を実行する順序を定義する」とあるのですが
これは何を指しているのでしょうか?
144名無しさん@そうだ選挙にいこう:2014/05/12(月) 15:36:22.57
>>143 四則演算の優先度を考慮のうえ、必要に応じてカッコ()を使うってことかな?
145名無しさん@そうだ選挙にいこう:2014/05/12(月) 15:57:33.24
【1 OSの種類         .】 Windows7、WindowsXP
【2 Excelのバージョン   】 Excel2010、Excel97
【3 VBAが使えるか    .】 不可
【4 VBAでの回答の可否】 不可
Excel2010で.xls形式のシートを作っています
ですがこのシートを使う人はWindowsXPでExcel97です

使用者からは何か不具合が合っても苦情は一切来ず、
計算結果を電卓で計算して手入力してしまうみたいです

沢山のセルを一時計算領域にして、
演算順序の都合で()が多用され、複雑に計算するシートで
()が多いのも手伝ってうっかり一部ifネストが8を超えて
計算式を書いてしまうことがあります
Excel98は、最初から8以上のifネストされているファイルに
どのような挙動をするのでしょうか?

できる限り相手には少ない労力(時間)で使って貰いたいのですが、
相手から苦情が一切来ないもんで、手の出しようがありません

(試しにわざと大量ifネストして自分のPCにExcel97ビューワーを
入れても普通に挙動するのでこのビューワーは97ではなく内部では
2007以降が動いてる事が分かり、無意味でした)
146名無しさん@そうだ選挙にいこう:2014/05/12(月) 18:06:31.12
>>145
>できる限り相手には少ない労力(時間)で使って貰いたいのですが、

>計算結果を電卓で計算して手入力してしまうみたいです

その人は計算式じゃなくて表があれば十分ってことなんだろ?
計算式使えれば便利なんだろうけど、本人はそれを知らないか知ろうとしてないわけだから
直接説明して拒否反応示すなら計算式不要ってことだ。
147名無しさん@そうだ選挙にいこう:2014/05/12(月) 19:39:25.43
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

臨時収入があったので24インチのワイドモニタを買ったら、ホームタブのスタイルに
[標準][どちらでもない][悪い][良い][チェックセル]という目障りな文字群が現れました。
これを消すにはどうすればいいですか?
148名無しさん@そうだ選挙にいこう:2014/05/12(月) 20:28:26.23
>>147
右クリックで設定が現れるよ
テキトーに動かしてみるといい。戻したくなったらリセットボタン
149名無しさん@そうだ選挙にいこう:2014/05/12(月) 21:43:56.05
>>143
ほんとうに、
>「以前のバージョンとの下位互換性を保つ」
しか書いてないの?
前後に文章があるんじゃない?
「以前のバージョンとの下位互換性を保つ」
だけじゃ問題になってないよね。
「互換性を保つ」のは良くない
「互換性を保つ」と怒られる
「互換性を保つ」と海外旅行に行ける
などなど、なんでも考えられちゃうぞ。
150名無しさん@そうだ選挙にいこう:2014/05/12(月) 21:48:34.95
>>149
pdfですが
http://mos.odyssey-com.co.jp/outline/excel2013.pdf
↑ここにMOS試験の出題項目がリスト表示されています。
その中に>143に書いた項目それぞれがあるので
どういう事なのかと思い聞いた次第です。
151名無しさん@そうだ選挙にいこう:2014/05/12(月) 21:59:20.89
横レスだが、その問題と答えを見ないとまるで分からん
現場ならなんとでもするが、試験とかいうアホのつくったアホな世界観に合わせる能力はここの連中にはないわ
152名無しさん@そうだ選挙にいこう:2014/05/13(火) 10:21:36.13
>>150
バカを相手にしなくていい
下位互換性を保つ とあったら普通は 
低いバージョンのエクセルでも開けて正しく見れること を指す
153名無しさん@そうだ選挙にいこう:2014/05/13(火) 10:22:26.68
高校や大学受験じゃねーんだよ
受けたこともない・勉強したこともないなら黙ってりゃいいのに
154名無しさん@そうだ選挙にいこう:2014/05/13(火) 13:38:21.09
【1 OSの種類         .】 Windows問わない
【2 Excelのバージョン   】 ←これを知りたい
【3 VBAが使えるか    .】 不要
【4 VBAでの回答の可否】 不要
Boolean型(TRUE/FALSEで返してくる奴)は
TRUEが1、FALSEが0としてそのまま計算できますが
(例えばA1が5の時に、B1に(A1=5)*12とするとB1は12になります)
これってExcelのバージョンいくつからの仕様でしょうか?
155名無しさん@そうだ選挙にいこう:2014/05/13(火) 18:36:07.21
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 NO
【4 VBAでの回答の可否】 NO
  A B     C  D  E    F・・・
1 No 商品名 単価 単位 単位2 日数
2  1 砂糖  52  1000 g    5
3  2 塩    5   100  g    3
4  3 胡椒  68   100  g    10
5  4 りんご 120  1   個   7
・・・
こんな感じの表で、(実際の表は食品ではありません)
今までBの商品名をvlookupで検索して単位や単価や最終的な値段やら
色々なデータを出していたんですが、最近データが増え過ぎて重くなり
まずvlookupを取りやめ、indexとmatchの組み合わせにしたのですが
ある程度重さが緩和されたもののまだ重く、
更にindexの範囲を全体(index(A1:D5,match("りんご",B1:B5,0),3))から
一部(index(C1:C5,match("りんご",B1:B5,0),1))に全部書き直して
更に軽量化したのですが、まだ重いので、
今度は商品名ではなくNoで検索しようとなったのですが
数式も何百も打ち直し、数式のメンテナンス性自体を捨ててまで、それをやって
リスクに見合っただけの効果は出るでしょうか?
今、やろうとしてるのはindex(C1:C5,match("りんご",B1:B5,0),1)→index(C1:C5,match(4,A1:A5,0),1)です
156名無しさん@そうだ選挙にいこう:2014/05/13(火) 18:54:07.36
>>155
indexは
=INDEX(B1:B3,MATCH(D1,A1:A3,0))
こんな感じでいいけど、まぁ第三引数一個減らしたところで変わらんだろう。
もうそこまで重いならaccessにした方がいいと思う。
157名無しさん@そうだ選挙にいこう:2014/05/13(火) 19:05:16.37
>>154
仕様に関する質問はメーカーサポートへ
158名無しさん@そうだ選挙にいこう:2014/05/13(火) 19:13:25.89
>>154
あなたの求める答えじゃないけど
エクセル2000はそうなってます。

A1が5の時に、B1に =(A1=5)*12 と入力すると
B1に12が表示されました。

オフィス2000より古いのって97でしたっけ?
たしかウチでもウィンドウズ98のPCに入ってたと思うんですが、
そのPC自体が今起動できる状態じゃないんで試せなかったです。
159名無しさん@そうだ選挙にいこう:2014/05/13(火) 19:23:56.23
SUMPRODUCT()ならまだしも、VLOOKUP()が重いなんてまずない
重いのは別に原因がある
160名無しさん@そうだ選挙にいこう:2014/05/13(火) 19:32:46.34
>>159
いや普通にあるぞ
えげつないワークシートを見たことのない君は幸せもの

具体的に言うと
sheet1!a1=vlookup(b1,$c:$z)…
みたいに参照範囲の広いvlookupが数千行に渡って入っている上、
その結果が
sheet2!a1=vlookup(sheet1!a1,$c:$z)…
とまた参照され(もちろんこれも数千行ある)、ヘタすればもう2.3回参照されているという恐ろしい物が世の中にはあるのだ

こんなシートを手動計算+shift+F9を駆使してなんとかやりくりしてる会社を見た時は泣きそうになった
161名無しさん@そうだ選挙にいこう:2014/05/13(火) 20:01:17.98
レコードが数千行もあったら、普通はデータベースソフト使うところ、そうじゃない会社は意外とたくさんある
急成長してシステムに手が回ってない所とか

顧客がたった2年で1000倍に増えちゃった会社を知ってる
大ヒットって怖いね
162名無しさん@そうだ選挙にいこう:2014/05/13(火) 20:05:11.83
まさにそれ。新しい会社ならいいけど、古い会社が何かの間違いで急成長すると色々歪になる。
タイムカードも去年まで手書き+電卓計算だったわ。
金は取らないから、ちょっとでいいのでレクチャーさせて欲しい。苦しんでる事務さんはいっぱいいるだろう。
163155:2014/05/13(火) 20:09:40.05
皆さんレスありがとうございます
とりあえずは、"りんご"がメンテナンスの最後の砦なので
現状維持でいこうと思います

>>160
まさにそんな感じです
164名無しさん@そうだ選挙にいこう:2014/05/13(火) 20:53:35.50
エクセルで100万行扱える様になって久しいわけで
数千行程度でデータベースソフト奨めるのもどうかと思う
165名無しさん@そうだ選挙にいこう:2014/05/13(火) 20:58:08.32
ええー?最近のエクセルは、100万行以上扱うるの?
俺も新しいの買おうかな
166名無しさん@そうだ選挙にいこう:2014/05/13(火) 21:04:59.72
Excel2007から 1万6384列 × 104万8576行 になりました
167名無しさん@そうだ選挙にいこう:2014/05/13(火) 21:07:13.07
実際にデータと数式で100万行埋めたらどうなるだろう
168154:2014/05/13(火) 21:07:18.48
>>157
そうします
>>158
態々2000を立ち上げて調べていただき
ありがとうございました
169名無しさん@そうだ選挙にいこう:2014/05/13(火) 21:17:40.72
>>167
ほぼ間違いなくフリーズする
全セル選択後、「1」を入力してctrl+enter
A1,A2,A3・・・I1000000ぐらいでフリーズした
win7+E8400+メモリ4GB+エクセル2010だったかな
170158:2014/05/13(火) 21:51:41.67
>>168
わざわざってことじゃなくて普段から家では2000使ってますwww

2013なんて触ったこともないし、
2007とか2010とかは会社のPCで使うけど家には2000までしかないです。
171名無しさん@そうだ選挙にいこう:2014/05/14(水) 07:12:34.99
>>163
そもそも引っ張ってくるのは入力時だけだろ?
例えば昨日までの入力したセルのVlookupなんてもはや不要なんで
コピー 数値として貼り付け やって計算式を無くして数値として固定化しちゃえば軽くなるだろ
172名無しさん@そうだ選挙にいこう:2014/05/14(水) 08:19:37.35
trueって-1だとずっと思ってたわ
173名無しさん@そうだ選挙にいこう:2014/05/14(水) 08:38:29.05
BASIC 上がりの爺乙
まあ、VBA は -1 だから、こっちで我慢汁
174名無しさん@そうだ選挙にいこう:2014/05/14(水) 09:11:52.86
>>173
MSX BASICのTRUEは1だよ
175名無しさん@そうだ選挙にいこう:2014/05/14(水) 09:14:51.27
そもそも0以外は全部true
なんで-1にするかというと、整数型でオールビット1にすると何バイト変数でも必ず-1になるから
176名無しさん@そうだ選挙にいこう:2014/05/14(水) 09:29:19.82
なるほろ〜
他システムとの互換性からなんだ。
一つおりこうさんになれました
177名無しさん@そうだ選挙にいこう:2014/05/14(水) 09:38:23.86
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
一つのセルがいくつかの数字だったら条件一致にする方法は
=if(or(G1=19,G1=79,G1=93,G1=96),"一致","不一致")
=if((G1=19)+(G1=79)+(G1=93)+(G1=96),"一致","不一致")
=if(iserror(match(G1,B1:B4,0),"不一致","一致") <B1=19/B2=79/B3=93/B4=96>
しかないのでしょうか?
もっと分かりやすい関数は無いでしょうか?
178名無しさん@そうだ選挙にいこう:2014/05/14(水) 11:18:15.83
>>177
一致対象の数字でリスト作っておいて、
そのリスト範囲で、検査対象の数字を数えて>0="一致"は
179名無しさん@そうだ選挙にいこう:2014/05/14(水) 11:41:37.28
>>177
こんなのはどう?
比較する数値が1列にまとまってるから、ちょっとはわかりやすくないかな
=IF(ISERROR(MATCH(G1,{19,79,93,96},0)),"不",)&"一致"
180名無しさん@そうだ選挙にいこう:2014/05/14(水) 11:45:49.94
>>177
Match( ) しかなさげだね
あまり変わらんけど、配列使って
=if(isna(match(G1,{19,79,93,96},0),"不一致","一致")
でどうかな?
181名無しさん@そうだ選挙にいこう:2014/05/14(水) 11:46:35.19
被った... orz
182名無しさん@そうだ選挙にいこう:2014/05/14(水) 13:28:25.68
>>178-181
どうもです
そういうのを探してました
{ }ですねありがとうございました
183名無しさん@そうだ選挙にいこう:2014/05/14(水) 15:47:30.85
【1 OSの種類         .】 Windows7hp
【2 Excelのバージョン   】 Excel2013

ファイルを開くと、Excelがもうひとつ起動してしまいます。

具体的には目的のファイルのExcelの裏に重なって
タイトルがExcelでシートのないExcelが開かれます。
目的のファイルを先に閉じると空白のExcelが残ります。
空白のExcelを先に閉じると目的のファイルも閉じます。
どうしたらこれを開かないようにできますか?
184名無しさん@そうだ選挙にいこう:2014/05/14(水) 22:24:19.46
下側2〜3セルに数式をコピーする時に、
↓、ctrl+D、↓、ctrl+D、・・・って連打してて
間違ってctrl+↓でsheetの最下セルでctrl+Dを押しちゃって
それをスルーしちゃって保存してて、気が付くとファイルサイズが激肥大化してるという現象

どーだ、あるあるだろう
185名無しさん@そうだ選挙にいこう:2014/05/14(水) 22:36:30.01
>>183
他のアプリケーションを無視する
違ってたら御免
186名無しさん@そうだ選挙にいこう:2014/05/14(水) 23:00:22.82
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

このようなグラフを作りたいです。
http://uproda.2ch-library.com/788172P2I/lib788172.png
(注意:このグラフの一部は画像ソフトで作っています。)

F3セルの値は参考として載せたいものの、折れ線フラフは
実線ではなく点線にするにはどうすればいいでしょうか?
187名無しさん@そうだ選挙にいこう:2014/05/15(木) 00:14:28.36
>>186
その系列選択した状態で、その区間をクリックするとその区間だけ選択された状態になるから、あとは右クリックで色でも線の種別でも設定し放題だったと思う
188名無しさん@そうだ選挙にいこう:2014/05/15(木) 13:06:32.16
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013

sheet2を作るにあたり、sheet1のB列を参照し、"あ"であれば"a"、"い"であれば"b"、該当がなければ"c"と表示させたい

sheet1は ID、区分1(あ/い)
sheet2は ID、区分2(a/b/c)

区分2
=IF(VLOOKUP(A2,Sheet1!A:B,2,FALSE)="あ","a",IF(VLOOKUP(A2,Sheet1!A:B,2,FALSE)="い","b","c"))
これだと該当なしのところが#N/Aになってしまいます
どこが間違ってるのでしょうか?
189名無しさん@そうだ選挙にいこう:2014/05/15(木) 15:07:21.32
>>116
iserror使え
190名無しさん@そうだ選挙にいこう:2014/05/15(木) 15:08:24.29
アンカーミスった
>>189は、>>188
191名無しさん@そうだ選挙にいこう:2014/05/15(木) 15:09:03.82
>>188
=IF(VLOOKUP(A2,Sheet1!A:B,2,FALSE)="あ","a",IF(VLOOKUP(A2,Sheet1!A:B,2,FALSE)="い","b","c"))
VLOOKUP(A2,Sheet1!A:B,2,FALSE)="あ"
の部分は該当なしだとエラーが返る。エラーはtrueでもfalseでもない
あとは>>189
192名無しさん@そうだ選挙にいこう:2014/05/15(木) 15:11:58.09
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013

以前から使っていたショートカットを表示したいが出来ますか?

例えばセルの書式設定ダイアログを出す時に以前からの
 Alt+O → shift+E
で出来はしますが

Excel2013では Alt+O を押すと
「以前のバージョンのメニューシーケンスを入力」
と出るだけで何を入力すればいいか、どんな選択肢があるか?
が表示されません。表示されるような設定は出来ますか?
193名無しさん@そうだ選挙にいこう:2014/05/15(木) 15:55:46.16
>>189-191
iserrorでできますたサンキュー!!
194名無しさん@そうだ選挙にいこう:2014/05/15(木) 16:18:54.72
>>192
そのままshiftEでok
195186:2014/05/15(木) 20:21:08.83
>>187
できました。
最初は「何書いてんだコイツ、俺へのレスか?」って思ってたけどねw
196名無しさん@そうだ選挙にいこう:2014/05/15(木) 20:25:45.53
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A1の取る数値は1〜4で、
B1を、A1にあわせて5、15、20、32という一見バラバラな数値を入れたいのですが
(A1が2ならB1に15を、A1が3ならB1に20を入れたいです)
B1のifの入れ子なし、1セルだけ(vlookupなし)で解決できる関数はありませんか?
KANSUU(A1,{1,2,3.,4},{5,5,20,32})または
KANSUU(A1,{5,5,20,32})みたいな関数が欲しいのですが
197名無しさん@そうだ選挙にいこう:2014/05/15(木) 20:36:20.39
196
自己解決しました
choose(A1,5,15,20,32)でできました
198名無しさん@そうだ選挙にいこう:2014/05/15(木) 20:54:32.39
Ctrl+1ってそーいうことじゃないのか。
言われてみれば、リボンになってから、Altでメニュー掘ってく使い方はしなくなったな
199名無しさん@そうだ選挙にいこう:2014/05/15(木) 22:36:01.87
>>195
書いてる方もわかるかなぁ? 状態だったけど、解決してよかった。
200名無しさん@そうだ選挙にいこう:2014/05/15(木) 23:39:30.67
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
以下の計算式(2chの文字制限仕様上、途中改行してますが4行全部で1計算式です)
のifネストが何レベルか知りたいのですが、
正確にカウントできる方がいらっしゃいましたらどうか教えてください
(自分が数えたときは5だったり6だったり7だったりと正確にカウントできませんでした)
また、入り組んだ式のifネストが正確に分かるVBSとかがあると助かります

=IF(BV10="";"";IF(BS10="N";IF(IF(GD10=0;FY$11;FY$17)+3-GF10>GC10;IF((2^GE10)*GJ10<0.5;"×";(2^GE10)*GJ10);
8*GJ10*(GE10-2));IF(GK10<>"";GK10;IF(IF(GD10=0;FY$14;FY$17)+3-GF10>GC10;IF((2^GE10)*GJ10/IF(GI10=1;1;GF$4)<
IF(GI10=1;1;0.5);"×";(2^GE10)*GJ10/IF(GI10=1;1;GF$4));IF(GG10*GJ10/GF$4<IF(GI10=1;1;0.5);"×";GG10*GJ10/
IF(GI10=1;1;GF$4))))))
201200:2014/05/16(金) 00:08:35.48
失礼しました
200のは仮環境でCalcで組んだ式でした
質問の式は下の式です
=IF(BV10="","",IF(BS10="N",IF(IF(GD10=0,FY$11,FY$17)+3-GF10>GC10,IF((2^GE10)*GJ10<0.5,"×",(2^GE10)*GJ10),
8*GJ10*(GE10-2)),IF(GK10<>"",GK10,IF(IF(GD10=0,FY$14,FY$17)+3-GF10>GC10,IF((2^GE10)*GJ10/IF(GI10=1,1,GF$4)<
IF(GI10=1,1,0.5),"×",(2^GE10)*GJ10/IF(GI10=1,1,GF$4)),IF(GG10*GJ10/GF$4<IF(GI10=1,1,0.5),"×",GG10*GJ10/
IF(GI10=1,1,GF$4))))))
202名無しさん@そうだ選挙にいこう:2014/05/16(金) 00:12:13.65
>>201
複雑すぎる上に無駄多過ぎだろ
そういう式書く奴は死ねよ、マジで
203名無しさん@そうだ選挙にいこう:2014/05/16(金) 00:14:20.58
>>200
ワロタ
=IF(
  BV10="","",IF(
    BS10="N",IF(
      IF(
        GD10=0,FY$11,FY$17
      )+3-GF10>GC10,IF((2^GE10)*GJ10<0.5,"×",(2^GE10)*GJ10),8*GJ10*(GE10-2)),IF(
        GK10<>"",GK10,IF(
          IF(
            GD10=0,FY$14,FY$17)+3-GF10>GC10,IF((2^GE10)*GJ10/IF(GI10=1,1,GF$4)<IF(GI10=1,1,0.5),"×",(2^GE10)*GJ10/IF(GI10=1,1,GF$4)),IF(GG10*GJ10/GF$4<IF(GI10=1,1,0.5),"×",GG10*GJ10/IF(GI10=1,1,GF$4))))))

こんなかんじで(でインデント付けて)で戻してを繰り返すといいよ
途中までやって飽きたw
204200:2014/05/16(金) 00:18:34.94
>>203
いや、それでやって5だったり6だったり7だったりと
どうやらそういうのが苦手なようで
205名無しさん@そうだ選挙にいこう:2014/05/16(金) 00:21:15.73
>>200
VBSでやりたいならVBSのスレにいけ
Excelの質問じゃない
206名無しさん@そうだ選挙にいこう:2014/05/16(金) 00:29:39.21
=IF
1 (BV10='','',IF
2  (BS10='N',IF
3   (IF
4    (GD10=0,FY$11,FY$17
3   )+3-GF10>GC10,IF
4    ([2^GE10]*GJ10<0.5,'×',[2^GE10]*GJ10
3   ),8*GJ10*[GE10-2]
2  ),IF
3   (GK10<>'',GK10,IF
4    (IF
5     (GD10=0,FY$14,FY$17
4    )+3-GF10>GC10,IF
5     ([2^GE10]*GJ10/IF
6      (GI10=1,1,GF$4
5     )<IF
6      (GI10=1,1,0.5
5     ),'×',[2^GE10]*GJ10/IF
6      (GI10=1,1,GF$4
5     )
4    ),IF
5     (GG10*GJ10/GF$4<IF
6      (GI10=1,1,0.5
5     ),'×',GG10*GJ10/IF
6      (GI10=1,1,GF$4
5     )
4    )
3   )
2  )
1 )
0)
207名無しさん@そうだ選挙にいこう:2014/05/16(金) 01:04:06.84
>>204
そんなのも数えられないようなバカがよくこんな式書けたな
エラー出まくって適当なとこに閉じ括弧入れて、とかやってそう
208名無しさん@そうだ選挙にいこう:2014/05/16(金) 01:33:22.24
ネストの深さが答えられない回答者も同レベルにしか見えない…
209名無しさん@そうだ選挙にいこう:2014/05/16(金) 02:06:52.44
>>207
短絡的だな
「シート作成者は別にいて
シート利用者が不便で一部手直ししようとしたものの
この複雑怪奇な式
Excel97なのでifは7レベルまでだから
追加できるかどうか分からない
そこでこのスレで聞いた」
とか
「エラーを潰し潰しやりながら
新しい仕様を何度も追加するうちに
こんなスパゲティな計算式になってしまった
Excel97なので以下略」
とか色々事情はあるだろ
210名無しさん@そうだ選挙にいこう:2014/05/16(金) 02:42:50.95
部分的に同じ式が何度も出てくるから整理しろよ、と思った
(2^GE10)*GJ10 が4回
IF(GI10=1,1,GF$4) が3回
作業セルを使えば式も短くなるし、見通しが多少は良くなってネストの段数で迷うこともなくなるだろうに

ていうかセキュリティ上危険な97なんかいつまでも使ってんなよ
211200:2014/05/16(金) 05:12:56.36
>>206
展開ありがとうございます。6レベルですねありがとうございました!

>>210
GI10の内容=(ROW()>GF$78)*1
GE10の内容=GC10-IF(GD10=0,IF(BS10="N",FY$11,FY$14),FY$17)+GF10
更にGE10が呼ぶGC10が=CC10-IF(OR(GB10=70,GB10=71),GB$72,0)-IF(GB10=79,GB$74+GB$76,0)-IF(ROW()>GF$78,INT(GF$4/2)+GB$78,0)
GC10が何度も呼ぶGB10が=IF(ISERROR(MATCH(GA10,WZ,0)),0,MATCH(GA10,WZ,0))
と言う感じで、これでもかなり整理した結果で、質問セルのためだけの作業領域だけで11セル、
それ以外にもイレギュラーな外部変動数値に対応するための作業セルが5、
質問セルが導いた答えを使って更に別の解を出すセルがさらに数十あります

(2^GE10)*GJ10やIF(GI10=1,1,GF$4)はIF(BS10="N")などの真偽で
GE10自体が違う数値になったり、(1,GF$4)の使い道がその箇所によって違うため、
別セルでその数式だけを作業セルにすると理論的には同じ答えになるはずなのに
何故か計算が狂う事があるのでそのままにしてあります

またCalcで作っており、Calcであればif入れ子はいくらでも出来るので些事なのですが、
自分以外の使う人がExcel97〜2013と幅広いので、
一番入れ子の多いこの式のif入れ子が7を超えていないかを質問しました
212200:2014/05/16(金) 05:32:26.86
あ、でもGC10の中の、IF(ROW()>GF$78,INT(GF$4/2)+GB$78,0)は
IF(GI10=1,INT(GF$4/2)+GB$78,0)に整理できますね
(今、2chにコピペしたのを見て気付いた)

ともかく、みなさん、特に>>206さん本当にありがとうございました
213名無しさん@そうだ選挙にいこう:2014/05/16(金) 06:17:46.06
>>212
横槍ですまんが
GI10が取る数値は0か1しかないみたいだからIF(GI10=1,INT(GF$4/2)+GB$78,0)じゃなくてGI10*(INT(GF$4/2)+GB$78)とすべき
IFが1個減るよ
ついでに言うとGC10全体をこう書き換えれる
=CC10-((GB10=70)+(GB10=71))*GB$72-(GB10=79)*(GB$74+GB$76)-GI10*(INT(GF$4/2)+GB$78)
どうかな?
214名無しさん@そうだ選挙にいこう:2014/05/16(金) 07:58:04.28
一生悩んでろw
215183:2014/05/16(金) 08:46:44.88
XLStart フォルダにあった個人用マクロブックを削除して
新たに作り直したら解決しました。>>185さん、ありがとう
216名無しさん@そうだ選挙にいこう:2014/05/16(金) 16:25:36.87
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 コピペであれば
【4 VBAでの回答の可否】 可

B列に"納品日"と記入されているセルが複数あります
そのセルの一つ上のセルに"納品日"と記入されているセルから、
2つ下のA列の値を返す場合のコードおしえてください。
217名無しさん@そうだ選挙にいこう:2014/05/16(金) 17:42:01.34
>>216
>B列に"納品日"と記入されているセルが複数あります
>そのセルの一つ上のセルに"納品日"と記入されているセルから、
>2つ下のA列の値を返す場合のコードおしえてください。


ちょっと何言ってるのかわかんない


2行目の「そのセル」ってのは単に「B列のセル」のこと?
それとも1行目で説明してる「B列で"納品日"って書いてあるセル」そのもののこと?
ここの解釈しだいで
「そのセルの一つ上のセルに"納品日"と記入されているセル」というのが
「B列で"納品日"って書いてあるセルの一個下のセル」なのか、
「B列で2個続けて"納品日"って書いてあるセルの内、下のほうのセル」なのか、
どっちを意味してるのかが変わってくるんだけど。

あと、3行目で言ってる値を返すってのはどこに返すの?
2行目で言ってたセルに返すの?
そうするとB列で位置が不定のセルに値を返すとなると
それを実行するタイミングはいつ?

例えばB2に納品日って書いた瞬間に
リアルタイムでB3にA5の値を入れるなんていうマクロなら
Worksheet.Changeイベント拾わなきゃならないし、
そうじゃなくてすでに複数の"納品日"セルが存在していて、
それら全てに一括で処理を加える、っていうマクロなら
その処理のトリガーを何か設定しないといけない。

こういうことが曖昧だと答えようにも答えられないよ。
218216:2014/05/16(金) 17:49:49.56
すみません
「その」セルはB列に複数ある"納品日"と書いてあるセルのことです。

書き直しました↓

B列に"納品日"と記入されているセルが複数あります

その納品日と記入されているセルの、一つ上のセルに

"納品日"と記入されているセルから、
2つ下のA列の値を返す
(2つ下がって1つ左に)
219名無しさん@そうだ選挙にいこう:2014/05/16(金) 17:53:02.05
>>216
とりあえず、
計算結果を出したいセルにその計算結果を色違いで手入力し、
計算に必要なセルも別の色で塗りつぶして
そのシートをアップせよ
220名無しさん@そうだ選挙にいこう:2014/05/16(金) 17:57:11.37
>>218
=INDIRECT("A"&(ROW()+2))
221216:2014/05/16(金) 18:27:03.42
>>219
↓のサンプル3というファイルです。よろしくおねがいします
http://firestorage.jp/download/6aebb856ce84b9dd719792fdab48c69e9b9feeb6
222名無しさん@そうだ選挙にいこう:2014/05/16(金) 18:44:50.47
>>221
B3=A6
それをB14やらB23に
じゃだめなのか
223名無しさん@そうだ選挙にいこう:2014/05/16(金) 18:45:23.12
>>221
B3=A6
それをB14やらB23にコピー
じゃだめなのか
224221:2014/05/16(金) 19:37:05.06
>>222.223
そうです。
しかし、B列に"納品日"が出現するセルは毎回違います
225名無しさん@そうだ選挙にいこう:2014/05/16(金) 20:00:51.89
>>224
こんなん?Sub a()
For i = 1 To 60000
If Cells(i, 2) = "納品日" Then
Cells(i - 1, 2) = Cells(i + 2, 1)
End If
Next
End Sub
226名無しさん@そうだ選挙にいこう:2014/05/16(金) 20:01:11.29
>>224
こんなん?
Sub a()
For i = 1 To 1000000
If Cells(i, 2) = "納品日" Then
Cells(i - 1, 2) = Cells(i + 2, 1)
End If
Next
End Sub
227221:2014/05/16(金) 20:07:29.28
>>225.226
ありがとうございます。
228221:2014/05/16(金) 20:43:21.58
すみませんがもうひとつ
216のようなシートで
A列に「分類」と記入されているセルがあれば
そのセルの1つ下の行を削除して行を詰めるコードもお願いします。
229名無しさん@そうだ選挙にいこう:2014/05/16(金) 20:46:07.48
>>228
エクセル マクロの記録
でぐぐって勉強してこい

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html
230186:2014/05/16(金) 20:50:06.03
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

図形の質問です。
円と線を描いて、線の先端を円の中心へ置くには
どうすればいいですか?

線の先端を円の中心付近に持っていくと円の周りに
赤い点が現れ(下図上側)、その赤い点に吸い付かれて
しまいます(下図下側)。
http://uproda.2ch-library.com/788622Oha/lib788622.png
231230:2014/05/16(金) 20:51:12.63
>>230
名前欄の186は関係ありませんw
232名無しさん@そうだ選挙にいこう:2014/05/16(金) 21:07:40.18
>>230
拡大してやれば?
233221:2014/05/16(金) 22:03:19.27
>>229

マクロを作ってみましたが
Cells.Find(What:="分類", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, MatchByte:=False, SearchFormat:=True).Activate
Rows(ActiveCell.Row + 1).Select
Selection.Delete Shift:=xlUp


・1ヶ所だけしたできない
・空欄でなくても削除されてしまう
234名無しさん@そうだ選挙にいこう:2014/05/17(土) 00:14:18.06
>>233
上からじゃなくて下の行から削除してきなよ
ズレるじゃん
235名無しさん@そうだ選挙にいこう:2014/05/17(土) 00:31:33.73
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010(下記画像では2013)

ttp://i.gyazo.com/38846314e55672ca1c6b2a92bbaaf7ad.png

F列はE列の内容の説明で、
E4はプルダウンが名前「いいい」のものが選択できますがE14ではできません。

このような表を作った際に上(E3,E4)は意図したとおりに動くのに対して
下(E13,E14)は動かないのは一体なぜなのでしょうか。
また、別の方法があればご教示願います。


やりたいことは2段階のプルダウンリストで(始めにD列で区分1を選びその結果でE列で区分2を選択)
リストに変動がありえるため範囲を可変にしているのです。(名前範囲が=$B$6:$B$11のような場合は2段階選択できる)
元のリストの形式はこのようなものからの変更は難しいです。(区分1ごとに列を分けるなど)
236名無しさん@そうだ選挙にいこう:2014/05/17(土) 00:41:33.77
>>235
ファイルのうぷきぼんぬ
237235:2014/05/17(土) 01:09:15.31
>>236
ttp://firestorage.jp/download/6eecf462eb2bc41d778a2c703ae503c78ee514c7

実際には2010で作っていたのですが2013で作っても同じ挙動でした
本ファイルは2013で作成しています
238名無しさん@そうだ選挙にいこう:2014/05/17(土) 07:09:47.96
>>220
それどこに書くんだ?
239名無しさん@そうだ選挙にいこう:2014/05/17(土) 13:53:18.87
>>235
ちゃんと見てないけど
名前定義した範囲が固定ならいけるけど、offsetなんかで可変範囲の場合にはエラーになる現象じゃないかな?
だとしたら残念ながら仕様バグ
240名無しさん@そうだ選挙にいこう:2014/05/17(土) 14:21:59.35
>>235
なんというひどい設計のシートだ。目眩がする。
これはさじを投げても君の責任じゃないから
作った人を捕まえてきて作り直させろ。
241235:2014/05/17(土) 14:28:36.41
よく考えてみたらこの形式だったら名前の定義は必要なかったですね
名前定義の式でINDIRECTを置き換えてしまえば

E13
=VLOOKUP("ちつてと",OFFSET(Sheet1!$B$2,MATCH(D13,Sheet1!$A:$A,0)-2,0,COUNTIF(Sheet1!$A:$A,D13)),1,0)
E14
データ入力規則
=OFFSET($B$2,MATCH(D14,$A:$A,0)-2,0,COUNTIF($A:$A,D14))

多段プルダウンには名前の定義が必要だという先入観に囚われていました


しかし結局INDIRECTが使えない理由が不明
色々と調べては見たのですが関係あるのかどうかすらよくわかりませんで・・・
ttp://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+201302/13020009.txt
ttp://okwave.jp/qa/q2489939.html

>>239
可変範囲の名前定義をINDIRECTできないような仕様になってるのですかね
>>240
リスト作ってる人はお偉いさんなのでなかなか・・・
242名無しさん@そうだ選挙にいこう:2014/05/17(土) 14:34:29.59
indirectで可変範囲を指定できない欠陥
concateで範囲指定が出来ないのとか、改善して欲しい
243230:2014/05/17(土) 19:09:26.77
>>232
拡大してもムリぽですた。
真面目に答えてくださいです。
244名無しさん@そうだ選挙にいこう:2014/05/17(土) 20:15:30.25
>>243
は?拡大して操作すれば普通にできたけど?

てか、マウスじゃなくて矢印キーで動かせばいいじゃん

ばか?
245230:2014/05/17(土) 21:15:01.13
>>244
線の先端を中心付近に置くことはできるけど、中心にはできません。
それと、拡大した円を縮小したらズレるんだけど、これはどう対処すればいいですか?

あと、矢印キーで動かすと線全体が動くんだけど、片側だけ動かすには
どうすればいいですいか?
246名無しさん@そうだ選挙にいこう:2014/05/17(土) 21:30:39.17
>>245
alt押しながら線ひくと枠線にスナップするから
それで位置合わせしなよ
手間のかかるやつだなまったく
247230:2014/05/17(土) 21:50:32.94
>>246
まず初めに円があって、それに線を引きたいので、
枠線スナップじゃダメぽ。

244氏の回答はまだですか?
248名無しさん@そうだ選挙にいこう:2014/05/17(土) 22:00:01.02
>>247
図を拡大じゃなくて
表示を拡大しろといってんのにばか?
249230:2014/05/17(土) 22:14:14.30
>>248
400%拡大してやってみたけど、ダメぽ。
http://uproda.2ch-library.com/789019oIZ/lib789019.png
中心に置こうとしても、周りの赤い点に吸い寄せられてしまいます。
できるなら、ブックをうpして見せてください。
250名無しさん@そうだ選挙にいこう:2014/05/17(土) 22:20:12.22
そもそも、エクセルの作図機能に期待し過ぎでは?
251名無しさん@そうだ選挙にいこう:2014/05/17(土) 22:23:59.93
>>230
先にブックうpして
252名無しさん@そうだ選挙にいこう:2014/05/17(土) 22:38:39.30
>>251
画像を見れば馬鹿でもチョンでもテキトーなのはつくれるよ。
ただ、俺も円の中心に線の先を合わせることは出来なかった。
253名無しさん@そうだ選挙にいこう:2014/05/17(土) 22:48:38.75
>>252
別作業してたからちょっとでも手間省きたかったんだよw
まぁいいや

・線を選択
・上下左右で線全体を微調整できる
・ctrl+shiftで伸ばしたりもできる
・無理なっラ先に丸をどけて線を置いて丸をカーソルで動かす

マウスだと無理だな
254名無しさん@そうだ選挙にいこう:2014/05/17(土) 23:00:00.10
おまえらが何と戦っているのかさっぱりわからない
http://www.winplus.jp/uploader/uploader01/img1234/winplus.jp008.png

逆に、赤い点に吸い寄せ「させる」方法を教えて欲しいぐらい
255名無しさん@そうだ選挙にいこう:2014/05/17(土) 23:12:14.69
>>254
大きな円だと中心近辺に持って行けるが、小さい円でもできる?
256名無しさん@そうだ選挙にいこう:2014/05/17(土) 23:22:36.52
ブックをアップロードされるまで待ってダウンロードして開くより、
エクセルを立ち上げて適当な図形を描く方が遥かに手間が省けると思ったのは俺だけ加奈?
257名無しさん@そうだ選挙にいこう:2014/05/17(土) 23:38:55.93
http://light.dotup.org/uploda/light.dotup.org20014.png.html
小さい円ってどんぐらい小さいわけ?
258名無しさん@そうだ選挙にいこう:2014/05/17(土) 23:45:32.55
259名無しさん@そうだ選挙にいこう:2014/05/18(日) 00:08:11.32
Excel2003ですが
セルの書式の設定でマイナス値を赤文字にしてる物とマイナス表記にしている物とが混在刷る表で 
=で引用して計算させる場合にマイナスがプラスになったりするような結果に影響が出ることはありますでしょうか?
文字が赤字だからマイナスって紛らわしすぎますね、はっきり言ってこの機能無くなってほしいw
260名無しさん@そうだ選挙にいこう:2014/05/18(日) 00:24:54.52
>>259
書式で「マイナスは赤」と設定してある場合は、ちゃんとマイナスで計算されます
人間がマイナス記号を消して字の色を赤に変える操作をした場合はプラスです
ぱっと見、区別がつかないのでややこしいですね
261名無しさん@そうだ選挙にいこう:2014/05/18(日) 00:47:57.38
>>259
ない。
VBAだとcells(1,1).textで取得すると値が変わる(そんなことする人はまずいないだろうけど)
262259:2014/05/18(日) 01:06:35.76
>>260
>>261
ありがとうございます。色々検証してみましたが確かにそのようですね。
263259:2014/05/18(日) 01:24:58.95
>>260
>>261
259ですが原因がわかりました
小数点5桁ある数値で0が4つ付く場合は小数点5桁に書式指定してないとエラー表示が出るようですね
(0.00001 のような数値)
これが集計結果がおかしくなった原因の一つのようです。
264名無しさん@そうだ選挙にいこう:2014/05/18(日) 01:27:33.13
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

現在、Excel2007を使っているのですが、
ブック間でリンクを張って、リンク先の書式変更というものはできるものなのかということを
ご教示いただけたらと思います。
例えば、リンク元のセル内の書式が%表示のものをリンク先では小数点第1位までに表示するということです。
(リンク元)126%→(リンク先)126.0といった具合にです。
265名無しさん@そうだ選挙にいこう:2014/05/18(日) 01:30:47.57
>>263
補足ですが計算結果が0.00001になるような場合です。。表にはエラーの文字が!!w
266名無しさん@そうだ選挙にいこう:2014/05/18(日) 01:31:48.82
>>264
リンクされるのは内容だけ
書式の設定はセル単位
つまり「できる」

逆に書式までリンクする方法は「ない」
267259:2014/05/18(日) 02:00:42.82
さらなる質問ですが
小数点が多い数値でセルには 「-9E-05」 といったような表記がされる場合とされない場合があるようですが、表記するしないの
基準は一体何なのでしょうか?
268名無しさん@そうだ選挙にいこう:2014/05/18(日) 02:16:36.95
>>267
桁数と列(セル)の幅
269名無しさん@そうだ選挙にいこう:2014/05/18(日) 04:08:21.76
>>266
ありがとうございます
追加なんですが、書式設定で264のようにする場合は、表示形式で
ユーザー定義からやるべきなんでしょうか?
それとも、分類の中から作成するべきなんでしょうか?
270名無しさん@そうだ選挙にいこう:2014/05/18(日) 08:16:21.84
>>269
PC内の計算量という意味では同じ
普段は分類から選べばok
分類にない場合はもちろんユーザー定義で
271名無しさん@そうだ選挙にいこう:2014/05/18(日) 10:38:29.93
>>270
本当にありがとうございます
272名無しさん@そうだ選挙にいこう:2014/05/18(日) 22:40:51.29
>>268
ありがとうございます。
他のセルから引用して計算するときに桁数が多くて桁数が違っている時に出るようですね、
桁数が多くても同一の物の足し算引き算などではでないようですね
273名無しさん@そうだ選挙にいこう:2014/05/18(日) 23:17:09.73
>>267
Excelは小数点以下の計算を間違える時があるから注意な
274名無しさん@そうだ選挙にいこう:2014/05/18(日) 23:28:30.20
ブックを開いて、なにもせずに閉じようとすると「保存しますか?」って聞いてきます。
何が原因か調べる方法があるでしょうか?
できれば、どこのセルが悪さをしてるかまで分かるとありがたいです。
=today()とかは使っていません。
275名無しさん@そうだ選挙にいこう:2014/05/18(日) 23:46:05.94
>>274
ブックを開いただけで計算される関数は、TODAY関数のほかに
CELL、INDIRECT、INFO、NOW、OFFSET、RANDの6個があります
これらを使っていると必ず「保存しますか?」になります

簡単に調べる方法は聞いたことないですね
数式そのものをチェックするにはVBAを使うしかないでしょう
276274:2014/05/19(月) 00:02:15.85
>>275
TODAY, NOW, OFFSET以外は使ったことがなく、
TODAY, NOWはここ何年も使ってないので、OFFSETが怪しいです。
1年くらいまえに作ったものを再利用してるので忘れてしまったw
277名無しさん@そうだ選挙にいこう:2014/05/19(月) 00:23:29.53
>>274
揮発性関数
で調べてみて
278名無しさん@そうだ選挙にいこう:2014/05/19(月) 13:53:13.65
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
Windows7(64bit)+Excel2010をCPU Athlon II X4で使っています
ですが、少し大きめ(具体的には手動入力項目未入力の状態で
350KBくらいの)シートを使うとExcelの動作が非常にもっさりと重く、
セルへの入力のたびに秒単位で待たされてしまいます

Windows7や8に最適化されているi5やi7ならこのもっさり感がなく、
サクサクと小気味良いレスポンスで動くのでしょうか?
279名無しさん@そうだ選挙にいこう:2014/05/19(月) 13:58:51.75
>>278
(具体的には手動入力項目未入力の状態で
350KBくらいの)
全然具体的じゃない
シートの内容見なおしてみては
280278:2014/05/19(月) 14:09:51.82
シート作成に1ヶ月、それ以降も2年掛けて軽く4〜50回は見直しを繰り返し、
何とか一番重いセルを1秒軽量化できたのですが、それでも未だに
一番重いセルが(Windows再起動直後の一番PCが軽い状態で)2.5秒くらいかかります
1から組みなおすには複雑化しすぎて(重い以外は正常に動いてるのもあるので)
…今からじゃちょっときついです

AthlonII X4だと重いのですが、i7の人から「まあ、Excelシートってこんなもんじゃない?
重くは無いよ」って話を一度戴いてるので、本当にi7ならII X4で重いシートも
重くないのか知りたかったのですが…
281名無しさん@そうだ選挙にいこう:2014/05/19(月) 14:15:35.42
シート見ないとそんなもん分からん
漫画喫茶で試せば?
282278:2014/05/19(月) 14:18:36.12
>>281
その手がありましたか!>漫画喫茶
ありがとうございます
283名無しさん@そうだ選挙にいこう:2014/05/19(月) 15:43:50.13
>>278
Excelでやる業務じゃないってことでしょ
284名無しさん@そうだ選挙にいこう:2014/05/19(月) 17:18:15.60
【1 OSの種類      】 Windows 7
【2 Excelのバージョン】 Excel 2007
【3 VBAが使えるか  】 いいえ
【4 VBAでの回答の可否】 否

文字列化して全角化したりせず、数値のまま 1.2 や 23.4 のように、
数字は全角 小数点は半角で表示する方法は無いですか?
[DBNum3]0.0 の書式だと小数点まで全角になるので。
285名無しさん@そうだ選挙にいこう:2014/05/19(月) 17:38:37.36
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

CORREL関数を使いたいのですが範囲内の空欄を無視するのではなく0として認識して欲しいです。
0を非表示にする以外の方法はありますか。
286名無しさん@そうだ選挙にいこう:2014/05/19(月) 18:23:59.04
>>285
{=CORREL(IF(ISBLANK(A1:A3),0,A1:A3),IF(ISBLANK(B1:B3),0,B1:B3))}
{ } の入力は配列数式でググって
287名無しさん@そうだ選挙にいこう:2014/05/19(月) 18:50:19.71
>>284
そんな方法はない
数字の幅が太いフォントなら色々あるから、そういうのを使う
288名無しさん@そうだ選挙にいこう:2014/05/19(月) 20:07:24.32
>>286
ありがとうございます
289名無しさん@そうだ選挙にいこう:2014/05/19(月) 21:39:08.37
やるとすれば小数点以上と以下を分けてそれぞれ全角にして
半角小数点と&で繋げばいい
290名無しさん@そうだ選挙にいこう:2014/05/19(月) 22:11:21.35
>>278
数列×全行 などの
巨大な「印刷範囲」を設定されてませんか。
291名無しさん@そうだ選挙にいこう:2014/05/19(月) 23:04:49.13
>>278
新規ブックにシートを丸ごとコピペしたら一気に軽くなったりして
292名無しさん@そうだ選挙にいこう:2014/05/20(火) 00:15:24.13
>>280
> i7の人から「まあ、Excelシートってこんなもんじゃない?
> 重くは無いよ」って話を一度戴いてるので、

なら、その人と同じ構成の PC 買えばいいだけじゃないの?
293名無しさん@そうだ選挙にいこう:2014/05/20(火) 00:57:14.84
いや、その人を上回る構成のPC買えよ
294名無しさん@そうだ選挙にいこう:2014/05/20(火) 01:40:49.06
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

かなり基本的な質問だと思うのですが…
図形を挿入し、「テキストの編集」からテキストを書き込んでいるのですが、
テキストの左上にすごく小さいフォントサイズで同じ内容の文章が表示され、ゴミのように見えて見栄えがよくありません。
表示されないようにしたいのですが、方法を教えてください。
295名無しさん@そうだ選挙にいこう:2014/05/20(火) 01:42:53.08
>>294
図形を右クリック テキストの編集 delete
もしくはテキストに空白スペースでもいれておけばいいのでは
296名無しさん@そうだ選挙にいこう:2014/05/20(火) 01:55:08.28
>>295
一度消してみました。
それでも、再びテキスト入力すると、入力と同時に左上に小さいフォントサイズの同じ文章が現れます。

長方形の図形の中にテキストを入れ、棚に張るの表示を作りたいのです。
297名無しさん@そうだ選挙にいこう:2014/05/20(火) 02:10:17.42
>>296
>棚に張るの表示を作りたいのです。
拙僧の勉強不足で理解できなかった。これをもう少し詳しく
298名無しさん@そうだ選挙にいこう:2014/05/20(火) 02:33:19.75
>>297
× 棚に張るの表示を作りたいのです。
○ 棚に張る標示を作りたいのです。
299名無しさん@そうだ選挙にいこう:2014/05/20(火) 03:13:38.53
>>294
2010以降なら、右クリック→「テキストの編集」ってしなくても
図形挿入していきなりタイプすれば文字が入るはずなんだけど
それでやってもダメかな…根拠はないけど物は試しで

あと、もう一つ試しで
長方形じゃなくて他の図形とかテキストボックスだとどう?
300名無しさん@そうだ選挙にいこう:2014/05/20(火) 07:30:44.97
「貼る」じゃね?
301名無しさん@そうだ選挙にいこう:2014/05/20(火) 07:52:19.02
左上のゴミってなんだろう
再現しないんだけど
http://momogaku.s17.xrea.com/up/source/up2170.png
302名無しさん@そうだ選挙にいこう:2014/05/20(火) 07:58:55.02
スクショうp
303名無しさん@そうだ選挙にいこう:2014/05/20(火) 08:26:20.72
なんか再現できたぞ
もしかして、こんな感じか?
http://momogaku.s17.xrea.com/up/source/up2171.png

ようするに、影付きの状態が「規定の図形」になってんじゃないか?
304名無しさん@そうだ選挙にいこう:2014/05/20(火) 08:28:52.19
やだかわいい
305名無しさん@そうだ選挙にいこう:2014/05/20(火) 08:46:00.64
むしろ影付き文字に設定する方法が分からなかった
306名無しさん@そうだ選挙にいこう:2014/05/20(火) 09:10:50.84
影の設定で、位置を左上、距離を遠く、サイズを小さく、色を濃くすればこの状態になるわけだ
307名無しさん@そうだ選挙にいこう:2014/05/20(火) 11:41:25.78
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

COUNTIF関数についての質問です。
特定の文字列からから始まるセルのカウントがうまくできません。
対処法と、できればなぜ出来ないのかという理由を教えて下さい。

例えば「1」から始まる値が入ってるセルの数をカウントするとします。
A1のセルに「12」が入っていて、別のセルに「=COUNTIF(A1,"1*")」と記述します。
別のセルの表示は「1」になると思ってたのですが結果は「0」です。

しかし、A1のセルを「1a」とすれば、結果は「1」となります。


どう対処すればいいでしょうか?
よろしくお願いします。
308名無しさん@そうだ選挙にいこう:2014/05/20(火) 12:38:43.67
>>307
「=COUNTIF(A1,"1*")」
これは1で始まる文字列をカウントしてる
結果が0になるのなら、1で始まる文字列がないということ。
A1に入っているのは文字列ではなく数値でしょ。
文字列に変換すればOK.
309名無しさん@そうだ選挙にいこう:2014/05/20(火) 12:42:18.15
>>304
ほんと

これはこれで、テクニックや
310名無しさん@そうだ選挙にいこう:2014/05/20(火) 13:29:24.24
>>308
ありがとうございます
TEXT関数で文字列に変換してカウントすることができました
311名無しさん@そうだ選挙にいこう:2014/05/20(火) 20:07:10.85
>>309
役に立ちそうな場面がこれっぽっちも思い浮かばないが、かわいい
312名無しさん@そうだ選挙にいこう:2014/05/21(水) 16:06:39.44
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A1 ウォッカ/2012年物
A2 ウイスキー/1998年物
A3 ワイン/2000年物
A4 ウイスキー/2001年物
となっている時に、
B1〜B4に年数だけ(「年物」自体も含む)を表示させたいのですが
(/XXXX年物を入力していないセルもあります、「ワイン」だけとか)
B1=IF(ISERROR(SEARCH("/",A1,1)),A1,LEFT(A1,(SEARCH("/",A1,1)-1)))
以外でB1を埋める式は無いでしょうか?
313名無しさん@そうだ選挙にいこう:2014/05/21(水) 16:16:12.78
312です
訂正です
B1〜B4に飲み物の種類だけ
C1〜C4にXXXX年物だけ
B1=IF(ISERROR(SEARCH("/",A1,1)),A1,LEFT(A1,(SEARCH("/",A1,1)-1)))
C1=IF(ISERROR(SEARCH("/",A1,1)),A1,RIGHT(A1,(SEARCH("/",A1,1)-1)))
以外ででした
314名無しさん@そうだ選挙にいこう:2014/05/21(水) 16:30:38.87
>>312
A列をB列にコピーして、B列に対して区切り位置で"/"
315名無しさん@そうだ選挙にいこう:2014/05/21(水) 16:33:37.35
>>312
2010ならiferrorとかあるけどなぁ
ちょっと長いけどそれぐでいいと思う
他には
B1でウォッカを取得、C1でsubstitute「ウォッカ/」を""、「ウォッカ」を""に置換
という手もある
316名無しさん@そうだ選挙にいこう:2014/05/21(水) 16:35:37.04
以外でって具体的にどーしたいか書けよクズ
317名無しさん@そうだ選挙にいこう:2014/05/21(水) 16:39:29.00
>>316
それも読み取れないようならもうちょっと頑張ろう!
勉強!勉強!毎日がお勉強だよぉッ!
318名無しさん@そうだ選挙にいこう:2014/05/21(水) 19:44:40.19
ちょっと文字列を分割するだけにしては式が長すぎると思ったんじゃね?

>>312
単にデータを分割したいだけなら区切り位置が一番早くて簡単だと思うけど、どうしても数式でやりたいなら
B列=LEFT(A1,FIND("/",A1&"/")-1)
C列=MID(A1,FIND("/",A1&"/")+1,6)
という方法もある
319313:2014/05/22(木) 12:34:39.96
みなさんどうもありがとうございました

>>314
すみません、言っている意味が全く分かりません
手動でやれって事でしょうか?
それだとExcelを使う意味自体が無いと思います

>>315
やっぱりですか
あきらめて現状維持にします
ありがとうございました
時間が出来たらSUBSTITUTEも試してみようと思います

>>218
FINDは非常に重いんでパスです
先日全部のFINDをSEARCHに書き換えたばかりなんですよ
あと、その式だとA列に「ウォッカ」だけのセルならエラーがでますよね
320名無しさん@そうだ選挙にいこう:2014/05/22(木) 12:44:47.74
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可
B4-C3,B5-D3,B6-E3という規則性で列方向に100個式を作りたいんですがいい方法はありませんか?
321名無しさん@そうだ選挙にいこう:2014/05/22(木) 13:15:58.59
>>320
列方向って、
A1がB4-C3
B1がB5-D3
C1がB6-E3 って意味?
ならばA1に="B"&COLUMN()+3&"-"&CHAR(66+COLUMN())&3
と入れて横にコピペ
322名無しさん@そうだ選挙にいこう:2014/05/22(木) 13:56:15.27
列方向に、ってことだから
縦に作るのかと思ってしまったが違うのね
323名無しさん@そうだ選挙にいこう:2014/05/22(木) 13:57:53.77
すいません、B4-C3は文字列じゃなくて式として計算させたいのです
324名無しさん@そうだ選挙にいこう:2014/05/22(木) 14:04:29.42
>>323
A1=OFFSET($A$1,COLUMN()+2,1)-C3
あとはコピペ
325名無しさん@そうだ選挙にいこう:2014/05/22(木) 14:27:11.70
ありがとうございます
326名無しさん@そうだ選挙にいこう:2014/05/22(木) 14:53:58.45
>>319
区切り位置知らないのは分かった
次は「区切り位置」でぐぐってみよう

「Excelを使う意味自体が無い」なんてほざいた自分が恥ずかしくなる
327名無しさん@そうだ選挙にいこう:2014/05/22(木) 19:39:08.50
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

AX3〜AX24にC3〜C24とAW3〜AW24を掛けて足した結果(AX3にはC3*AW3+C4*AW4+...C24*AW24の結果が入る)を表示させたいのですが効率のいい方法はないですか
328名無しさん@そうだ選挙にいこう:2014/05/22(木) 19:44:35.10
>>327
sumproduct
329名無しさん@そうだ選挙にいこう:2014/05/22(木) 20:14:22.43
>>328
ありがとうございます
330名無しさん@そうだ選挙にいこう:2014/05/22(木) 20:47:21.71
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

170 あ
220 い
110 う
280 え
110 お
あいうえおを数値の大きい順に並べたい場合、左の数値の順番を変えずにあいうえおをだけ並べる方法はありませんか?
331名無しさん@そうだ選挙にいこう:2014/05/22(木) 20:57:23.60
>>330
数値を作業列にコピーして、あいうえおと作業列を選択して並べ替えたあと作業列を消去
332名無しさん@そうだ選挙にいこう:2014/05/22(木) 20:57:43.01
左だけ選んでからソートすれば良い
333名無しさん@そうだ選挙にいこう:2014/05/22(木) 20:58:21.60
左じゃなかった、右だ
334名無しさん@そうだ選挙にいこう:2014/05/22(木) 21:05:42.03
>>331
作業列を使わないでする方法はないですか?
ちなみに数値で書きましたが実際は数式が入っています
335名無しさん@そうだ選挙にいこう:2014/05/22(木) 21:12:00.56
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

対象の範囲内で、0の値のセルがある場合に
その1つ上のセルの値を値別にカウントしたいのですが
どうすれば良いでしょうか?
336名無しさん@そうだ選挙にいこう:2014/05/22(木) 21:12:34.13
>>334
あ〜お、まで選択して並べ替えするだけで良い、左の数値は入れ替わらないよ
337名無しさん@そうだ選挙にいこう:2014/05/22(木) 21:12:58.47
>>334
ない
338名無しさん@そうだ選挙にいこう:2014/05/22(木) 21:15:19.94
>>335
作業シートの2行目以降を
A2=IF(Sheet1!A2=0,Sheet1!A1,"")
という数式で埋めてピボットテーブル
339名無しさん@そうだ選挙にいこう:2014/05/22(木) 21:16:01.88
>>333 >>336
ソートのキーが1列目、という意味だと思う
340名無しさん@そうだ選挙にいこう:2014/05/22(木) 23:53:25.58
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
折れ線グラフ中に多数ある線の細さを一斉に変えることってできないんでしょうか?
30本くらいあるので一つ一つ変えるとかなり大変なので
341名無しさん@そうだ選挙にいこう:2014/05/22(木) 23:56:20.99
>>330
=rank(a1,a1:a10+row(a1:a10)/10000)
こんなかんじで配列で扱えるかと思ったが俺には無理だった
342名無しさん@そうだ選挙にいこう:2014/05/23(金) 00:06:48.52
>>340
普通はマクロを使わないと無理なんだけど、それがダメなら上下の矢印キーとF4を使うぐらいしかないかなあ
まず1本だけ書式設定で太さを変えたら、↓か↑で次の線を選択してF4キーを押せば、さっきと同じ太さに変わる
いちいち書式を設定するよりは少し簡単
343名無しさん@そうだ選挙にいこう:2014/05/23(金) 14:53:32.74
>>345
Alt+F4
344名無しさん@そうだ選挙にいこう:2014/05/23(金) 15:50:00.28
>>342
やりやすかったです
ありがとう
345名無しさん@そうだ選挙にいこう:2014/05/23(金) 16:46:21.81
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
行の書式設定で、表示を正の数、負の数はそのままで、
0だった時だけ、「特定のセルの内容」を表示したいのですが、
どうしたらいいでしょうか?

1;-1;GA10、1;-1;"GA10"、1;-1;=GA10など試してみたけどダメでした
346名無しさん@そうだ選挙にいこう:2014/05/23(金) 16:48:23.77
toro.2ch.net から peace.2ch.net への鯖移転の際に消えちゃってるけど、
本来なら>>342>>343の間に以下のレスがあったわけですね。

343 :名無しさん@そうだ選挙にいこう:2014/05/23(金) 06:42:35.82
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
セルの書式で、正の数や負の数ならそのまま、
0の時は特定の別のセルの内容を表示する方法は無いでしょうか?
例えば「1;-1;GA12」「1;-1;=GA12」とやってみたのですがうまくいきません

344 :名無しさん@そうだ選挙にいこう:2014/05/23(金) 11:43:58.74
>>343
条件付き書式なら出来るかもよ

345 :名無しさん@そうだ選挙にいこう:2014/05/23(金) 14:00:59.86
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

F1押してヘルプ表示した後、そのヘルプを閉じるショートカットキーを
おしえて!
347345:2014/05/23(金) 17:01:15.73
>>346
やはり、消えてましたか
書いた筈なのに送信し忘れたかと思ってもう1回書いてしまいました

条件付き書式は既に試したんですが
想定した挙動にはなりませんでした
348名無しさん@そうだ選挙にいこう:2014/05/23(金) 18:12:54.61
>>345
そもそも、書式で他のセルの値表示なんて無理じゃね?
349345:2014/05/23(金) 19:55:21.93
>>348
やっぱりそうですよね
ありがとうございました
350名無しさん@そうだ選挙にいこう:2014/05/24(土) 08:56:25.04
EXCEL2010です。

同一行で違う桁位置にある2つのセル(罫線で囲まれている)を
図形の曲線矢印(矢は片側)で、U字型に結びたいのですが、
U字型になりません。ほぼ水平方向に結ばれます。

U字型にするために矢印の真ん中を上下にドラッグしようとするのですが、
矢印の真ん中のハンドルが動きません。
どうすれば、曲線矢印を自分の好きな形に変形できるのでしょうか?
351名無しさん@そうだ選挙にいこう:2014/05/24(土) 12:36:54.03
>>350
矢印が横を向いてません?
横向きの時は真ん中の黄色い点は左右にしかドラッグできません

水平にU型に結ぶには、まずセルの位置に長方形の図形を置いて、その長方形を曲線矢印で結んで下さい
矢印が完成したら長方形を削除します
http://www.42ch.net/UploaderAnime/source/1400902479.png

曲線矢印は矢印の向きが頂点の位置によって勝手に決まってしまいますので手間がかかります
円弧や大カッコなどの図形も書式から矢印にできますから、そちらの方が簡単かも知れません
352名無しさん@そうだ選挙にいこう:2014/05/24(土) 13:44:32.61
   参加□  不参加□

   希望日時
      18日 □
      19日 □
      20日 □



エクセルで上記のチェックボックスを作りたいんですが、参加日時のところは「参加」をチェックした場合のみ
選べるようにするにはどうすればいいんでしょうか?普段は項目自体が隠れてるのが希望なんですが。
353名無しさん@そうだ選挙にいこう:2014/05/24(土) 14:00:07.90
>>352
マクロを使え
354350:2014/05/24(土) 14:09:59.70
>>351
レスありがとうございます。
355名無しさん@そうだ選挙にいこう:2014/05/24(土) 20:50:46.18
>>352
テンプレ使わないと。 
エクセル チェックボックス 択一
でググってください
356名無しさん@そうだ選挙にいこう:2014/05/25(日) 07:56:16.11
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】否

下記のVLOOKUP関数で指定範囲の中のセルに空欄があった場合、表示されるセルに「0」ゼロが表示されますが、ゼロ表示をしない事はできますか?


=IF(ISERROR(VLOOKUP(($D$8,データ!$B$AN,39,FALSE)),““,VLOOKUP(($D$8,データ!$B$AN,39,FALSE))
357名無しさん@そうだ選挙にいこう:2014/05/25(日) 08:07:48.05
>>356
0を表示しないだけなら、条件付き書式でも良いし、
式だと長くなるけど
=IFERROR(
IF(OR(VLOOKUP($D$8,データ!$B$AN,39,FALSE)=““,VLOOKUP($D$8,データ!$B$AN,39,FALSE)=0),"",VLOOKUP($D$8,データ!$B$AN,39,FALSE))
,"")
かな。IFERRORの方が楽
358名無しさん@そうだ選挙にいこう:2014/05/25(日) 08:47:13.98
>>357
お返事ありがとうございます

しかし、なぜか入力は正しくありませんとでてきてしまいました。
359名無しさん@そうだ選挙にいこう:2014/05/25(日) 08:52:58.87
>>358
データ!$B$AN,
のところは、このままじゃダメでしょう
360名無しさん@そうだ選挙にいこう:2014/05/25(日) 08:57:46.65
>>357の式に
““
が入ってる
361名無しさん@そうだ選挙にいこう:2014/05/25(日) 16:50:10.60
MAXで調べるセルの中にエラーセルが1つでもあるとエラーを返しますが 無視させる方法は無いのでしょうか?
362名無しさん@そうだ選挙にいこう:2014/05/25(日) 17:01:50.99
"MAX エラー 無視"でぐぐったら出てた
363361:2014/05/25(日) 17:05:45.50
>>361
>>362
http://www.relief.jp/itnote/archives/017788.php
ありました dクス
何この
[Ctrl]キー+[Shift]キー+[Enter]キー
を押すってこんなのわかるわけ無いだろう、、
364名無しさん@そうだ選挙にいこう:2014/05/25(日) 18:27:52.05
こういう不可解な隠しコマンドみたいなのは他にあるのですか? 
こういうのが出てくると使いこなせるのかどうか不安に思えますね。
365名無しさん@そうだ選挙にいこう:2014/05/25(日) 19:28:07.23
「使いこなせる」って何だ?
366名無しさん@そうだ選挙にいこう:2014/05/26(月) 00:34:44.17
チェックボックスのON/OFFをVLOOKUPを使ってできますか?
367名無しさん@そうだ選挙にいこう:2014/05/26(月) 00:53:13.49
配列数式が隠しコマンドってw
368名無しさん@そうだ選挙にいこう:2014/05/26(月) 02:15:37.83
>>363
数式内にスペース入れてもいいのか。
知らなかったわ。
369名無しさん@そうだ選挙にいこう:2014/05/26(月) 08:46:12.70
>>368
ほとんどのプログラム言語だとただの文字の区切りだけど、これ、演算子なんだぜ…
=SUM(A1:B2 B1:C2)
だとB1:B2をSUMする
これ使ったことないけどどういう場面で使うんだろう
あとスペースが演算子になる言語ってあるんだろうか
あまりに使わないんで名前も忘れた。
370名無しさん@そうだ選挙にいこう:2014/05/26(月) 09:03:17.51
>>368
,の後は癖でスペース入れるけど、そういうことじゃなくて?
あと長めの数式だと改行も普通に使う
=if(...,
  aaa(...),
  bbb(...)
 )
みたいな。
371368:2014/05/26(月) 17:55:07.83
ごめん。リンク先じゃなくてリンク先のリンク先だったわ。
ttp://www.relief.jp/itnote/archives/000524.php
夜中で寝ぼけてたわ。(;-人-)
372名無しさん@そうだ選挙にいこう:2014/05/26(月) 19:07:35.90
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

下記のようにセル(1,1)が更新されたら処理するマクロを作りました。
このセルを手入力で更新する分にはちゃんと動きましたが、
オプションボックスのリンクに設定してオプション選択による更新では動作しませんでした。
どうすればオプションボックス連動に出来るでしょうか?

If Target = Cells(1, 1) Then
 ***
End If
373名無しさん@そうだ選挙にいこう:2014/05/26(月) 19:38:49.69
オプションボックスってなんだ?
ググっても分からなかった
374372:2014/05/26(月) 19:42:20.01
オプションボタンでした・・・すいません。
375名無しさん@そうだ選挙にいこう:2014/05/26(月) 19:49:31.17
>>372
オプション選択した時にそれを呼び出せばいいんじゃないか
376名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:06:20.05
それはどうやるんですか?
377名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:30:03.17
>>376
ごめん無理だったかも
OptionButtoNのクリックで値の変更は Worksheet_Changeの後にくるみたいだから
OptionButtoN_clickで値を変えるようにすればいいと思う
378名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:33:05.90
あと
If Target = Cells(1, 1) Then
End If
これ間違ってる。
Targetのrowとcolumnが1、という比較をしなくてはいけない
379名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:36:03.59
それと俺からの質問なんだけど
range("a1")を変更した時、
Private Sub Worksheet_Change(ByVal Target As Range)
If Target Is Range("a1") Then
MsgBox ("")
End If
End Sub
これってなんでifの条件式が真にならないのだろう?
マジで分からん
380名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:41:16.33
>>378

If Target.Row = 1 And Target.Column = 1 Then

こうですか???
381名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:42:25.00
>>377
> OptionButtoN_clickで値を変えるようにすればいいと思う

これどこで変更できるんでしょう?
382名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:44:38.06
リンクセルの値で
select case
じゃダメかな?
383名無しさん@そうだ選挙にいこう:2014/05/26(月) 20:46:21.02
>>380
そう
>>381
下のどっちか

Sub オプション1_Click()
cell(1, 1) = 1
hokanosyori
End Sub

Private Sub OptionButton1_Click()
Cells(1, 1) = 1
hokanosyoiri
End Sub
384名無しさん@そうだ選挙にいこう:2014/05/26(月) 21:59:46.57
>>379
単にオブジェクトだからじゃないの?
385名無しさん@そうだ選挙にいこう:2014/05/26(月) 22:20:11.12
>>384
両方オブジェクトだろ

誰も答えを出してくれないから検索して答えを出したわ
Sub a()
If Cells(1, 1) Is Cells(1, 1) Then
MsgBox ("")
End If
End Sub
これがまさかのfalse

Cells(1, 1)はA1セルそのものじゃなく、別の参照かなんかだったんですね
386名無しさん@そうだ選挙にいこう:2014/05/26(月) 22:27:45.82
ByValだからじゃないの
387名無しさん@そうだ選挙にいこう:2014/05/26(月) 22:48:40.48
>>385
オブジェクト分かってる?
TargetとRange("a1")は同じ範囲を参照する別のオブジェクト変数なんじゃないのかってことなんだけど
388名無しさん@そうだ選挙にいこう:2014/05/26(月) 23:13:09.34
>>385
「オブジェクト」と「オブジェクト型」を混同してる
Isはオブジェクト型を比較する演算子
CellsもRangeもRange型だからIsでは比較できない
389名無しさん@そうだ選挙にいこう:2014/05/26(月) 23:24:12.50
CellsやRangeはセル範囲に関係なく、プログラム中で出てくるたびに毎回新しいオブジェクトが作られるという仕様になっている
だから Cells(1, 1) Is Cells(1, 1) というコードがあった場合、Rangeオブジェクトがわざわざ別々に2つ作られてから比較されるために結果がFalseになる
たとえばこうすれば2つのオブジェクトは同じになる

Sub a()
  Dim c1 As Object, c2 As Object
  Set c1 = Cells(1, 1)
  Set c2 = c1
  If c1 Is c2 Then
    MsgBox ("")
  End If
End Sub
390名無しさん@そうだ選挙にいこう:2014/05/27(火) 00:41:10.64
>>389
ありがとう、納得
試してみたらどっちもメモリドカ食いだったわ

Sub a()
Dim Member() As Range
ReDim Preserve Member(1000000)
For i = 1 To 1000000
Set Member(i) = Cells(1, 1)
Next
MsgBox ("")
End Sub

Sub b()
Dim c1 As Object, c2 As Object
Dim Member() As Range
ReDim Preserve Member(1000000)
For i = 1 To 1000000
Set c1 = Cells(1, 1)
Set Member(i) = c1
Next
MsgBox ("")
End Sub
391名無しさん@そうだ選挙にいこう:2014/05/27(火) 15:19:17.03
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAで読み取り専用プロパティを書き換えたいのですが方法はありますか?
392名無しさん@そうだ選挙にいこう:2014/05/27(火) 15:29:12.20
>>391
物による
直接無理な場合は無理
読み取り専用プロパティを書き換えるメソッドがある場合がある
393名無しさん@そうだ選挙にいこう:2014/05/27(火) 15:31:50.84
>>391
Range("A1").Locked = False
394名無しさん@そうだ選挙にいこう:2014/05/27(火) 15:56:28.07
>>392
Matchオブジェクトの中身を書き換えたかったのですが無理そうですね
ありがとうございます
395名無しさん@そうだ選挙にいこう:2014/05/27(火) 16:00:20.95
>>394
なんの目的か知らんけど、matchオブジェクトっぽいクラスなりタイプを定義して、中身全部コピるとか
396名無しさん@そうだ選挙にいこう:2014/05/27(火) 16:06:30.08
>>395
そうすることにします
直接書き換えられれば簡潔に書けて速度も速そうだったのですが・・・
397名無しさん@そうだ選挙にいこう:2014/05/27(火) 19:23:39.96
たとえばシート1に毎日記録を入力し、シート2のA1に =シート1!A1*2

のような数式があるとします
このとき、シート1のA2に何か入力した際に自動でシート2のA2に =シート1!A2*2
と数式が追加される方法ってありますでしょうか?
手動で随時増やすしかないのであればマクロ化しようと思います
398名無しさん@そうだ選挙にいこう:2014/05/27(火) 20:06:54.79
>>397
事前にsheet2に入力しちゃだめなん?
sheet2の余計な0が嫌ならisblankなり書式設定で。
399名無しさん@そうだ選挙にいこう:2014/05/27(火) 20:31:03.27
関数からセルに値を入力する場合は、例えば5行目3列に1を入れたい場合は、cell(5, 3) = 1 でいいんですかね?
ちょっと試す環境がないので聞いてみました。
400ぴころ ◆lHG3Yzo0a6 :2014/05/27(火) 20:36:33.88
>>399
cells(5, 3) = 1
401名無しさん@そうだ選挙にいこう:2014/05/27(火) 20:52:15.74
>>398
実際には先の例でいうシート2のような転記先のシートが10ほどあります
また、無駄な記述を避けたいという個人的な思いもあって最低限の行だけ自動でオートフィルしてくれたらなと思ったのですが....

厳しそうならマクロ作ってきます('A`)
402名無しさん@そうだ選挙にいこう:2014/05/27(火) 21:01:10.97
>>400
複数形なんですか?
403名無しさん@そうだ選挙にいこう:2014/05/27(火) 21:03:27.35
>>399
そりゃvbaだろう(ある意味関数ではあるが)
A1にcell(5, 3) = 1とか入れても無効だぞ
404名無しさん@そうだ選挙にいこう:2014/05/27(火) 21:50:10.81
A1?
405名無しさん@そうだ選挙にいこう:2014/05/27(火) 22:23:15.06
セルにそんな関数は無理でしょ。
1を表示させたいなら、1を入れればいいんだから。
A1に1を表示させたいなら、別のセルに1を入れておいて、それを参照するしかない。
406名無しさん@そうだ選挙にいこう:2014/05/28(水) 00:26:44.97
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

標準モジュールの整理をしたいです。

過去に作成したマクロが60個ぐらいあり、
プロジェクトウインドウで目的のマクロを探し出しづらくなってきました。
今のところは 1モジュールに1マクロが入っていますが、
テーマ別にモジュールを分け、複数のマクロをその中に入れるべきでしょうか?

皆さんはどのようにマクロを整理されていますか?
407名無しさん@そうだ選挙にいこう:2014/05/28(水) 00:44:00.96
>>406
マクロってブックごとに作るもんだと思う。
必然的に最初から分かれている。

俺は標準モジュール1に全て入れ、
sheetモジュールのbutton_clickからcallするようにしてるから
あまり煩雑と感じたことはない。そのボタンも多くて3つか4つぐらい。

まぁ整理するなら、似たようなものは一つにまとめて、引数やinputbox、msgboxで分岐させるとかはどうだろう
privateにすれば一覧にも現れない。

一つのブックに何個もいれて何でも処理できるブック、
ゲーム詰め合わせとかにしてる場合はわからん。

なんにしろ、モジュールじゃなくてブックで分けたほうがいいとは思う。正解は、多分無いだろう。
408名無しさん@そうだ選挙にいこう:2014/05/28(水) 00:57:11.51
右クリックメニューの拡張とか、ショートカットに割り当てたマクロとか、よく使う構文のスニペットとか
自分の作業範囲で完結するような類いの物はPERSONAL.XLSにまとめてある
409名無しさん@そうだ選挙にいこう:2014/05/28(水) 01:04:00.05
>>406
1モジュールに1マクロなんてことやってるからだろ
右上のドロップスダウンボックスから各マクロに飛べるんだから、目的別とかで3モジュール程度にまとめた方がいい
410名無しさん@そうだ選挙にいこう:2014/05/28(水) 11:01:36.12
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010,2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAの標準関数のソースを見たいのですがどこに記述されているのでしょうか?
411名無しさん@そうだ選挙にいこう:2014/05/28(水) 13:56:28.79
オープンソースじゃあるまいし…
412名無しさん@そうだ選挙にいこう:2014/05/28(水) 18:36:34.01
範囲内の1とTRUEの数をカウントしたい場合、

COUNTIF(A1:A100, OR(1, TRUE))
これだと1をカウントしてくれないんです。

まぁ、COUNTIF(A1:A100, 1)+COUNTIF(A1:A100, TRUE)ってやればいいんですけど、
上ので出来ないのがもどかしいのでどうすればいいか教えてください。
413名無しさん@そうだ選挙にいこう:2014/05/28(水) 18:37:30.39
隨分経つし、どこかに逆汗した結果があるかもなーと思って探してみたけど無かった
無いんじゃね
414名無しさん@そうだ選挙にいこう:2014/05/28(水) 18:37:58.54
あ、ごmrん
>>413>>410アテネ
415名無しさん@そうだ選挙にいこう:2014/05/28(水) 18:39:56.23
>>412
それはアンタ、
COUNTIF(A1:A100, OR(1, TRUE))

COUNTIF(A1:A100, TRUE)
になってるからだよ
=COUNTIF(A1:A100,1)+COUNTIF(A1:A100,true)

mosikuha
countifs
416名無しさん@そうだ選挙にいこう:2014/05/28(水) 18:54:33.95
=SUM(COUNTIF(A1:A100,{1,TRUE}))
417名無しさん@そうだ選挙にいこう:2014/05/28(水) 20:26:05.89
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 ちょこっと
【4 VBAでの回答の可否】 可

フィールド(ユニーク値)が100個以上あるデータをいちいちピボットで組むのが
大変なので、良かったら知恵をお貸しください。
「年」「月」「日」「Date」以外のフィールドは全てデータフィールドに持っていくのはどう書けばいいのでしょう?

Dim wksName As String 'データのあるシート名
Dim pvtName As String 'ピボットテーブル名
Dim cntR As Long 'Max行
Dim cntC As Long 'Max列
Dim strTmp As String

wksName = ActiveSheet.Name 'シート名格納
pvtName = "PivotTableNew"

With Worksheets(wksName).Range("a1").CurrentRegion
cntR = .Rows.Count '行数
  cntC = .Columns.Count '列数
End With

'つづく
418名無しさん@そうだ選挙にいこう:2014/05/28(水) 20:26:36.50
'データ取得範囲格納
strTmp = wksName & "!R1C1:R" & cntR & "C" & cntC

'新規シートにピボットテーブル作成
ActiveSheet.PivotTableWizard _
SourceType:=xlDatabase, _
SourceData:=strTmp, _
tabledestination:="", _
TableName:=pvtName

'行フィールド,列フィールド追加
ActiveSheet.PivotTables(pvtName).AddFields _
ColumnFields:="年"

'データフィールド追加(ここからがエラーになります><;)
If ActiveSheet.PivotTables(pvtName).PivotFields.Caption <> "年" & "月" & "Date" Then
With ActiveSheet.PivotTables(pvtName).PivotFields
.Orientation = xlDataField
.Position = 1
.NumberFormat = "#,##0_ " '※書式設定

End With
End If

ActiveSheet.Range("A1").Select
MsgBox "処理終了〜!"
End Sub
419名無しさん@そうだ選挙にいこう:2014/05/28(水) 21:37:55.98
>>417
データはテキトーに置き換えていいので、構造が同じテストシートをうpしてほしい
420名無しさん@そうだ選挙にいこう:2014/05/28(水) 22:27:09.07
>>419
あっ レスついてた、ありがとうございます!
テストシートって元データのことでしょうか?

年 月 日  Date  炭酸(1) 炭酸(2) 炭酸(3) コーヒー(1)、コーヒー(2)、・・・

2014 5 1 20140501 665 222 123 111 223
2014 5 2 20140502 444 223 444 222 225

こんな感じで毎日売上が各商品ごとにデータがあるんです。
こちらをピボットで月別や年別で合計をパパッと出したいのですが
何分項目が沢山ありまして、手でいちいちピボットの迫にフィールドを持っていくのが大変なのです。
もし見当違いのことを言ってましたら申し訳ありません。
421名無しさん@そうだ選挙にいこう:2014/05/28(水) 23:12:06.68
>>420
http://www.dotup.org/uploda/www.dotup.org5090179.zip.html
こんな漢字

マクロの記録から改変したほうが早いと思う
あと今気づいたけど
ActiveSheet.PivotTables(pvtName).PivotFields.Caption <> "年" & "月" & "Date" は
(ActiveSheet.PivotTables(pvtName).PivotFields.Caption <> "年" ) and (ActiveSheet.PivotTables(pvtName).PivotFields.Caption <> "つき" )
みたいにっかあないとだめ
422406:2014/05/28(水) 23:17:38.61
>>407-408
ウチとは真逆ですね…
ウチではマクロのボタンをツールバーに置き、
多数のブックがそれを共用しています。

>>409
そうするのが良さそうですね。やってみます。

レスして下さいました皆様、ありがとうございました。
423420:2014/05/29(木) 20:53:35.29
>>421
遅くなりましたが、リンクと注意書きありがとうございました。
ちょっと試行錯誤してみます\(^o^)/
424名無しさん@そうだ選挙にいこう:2014/05/29(木) 21:25:01.96
エクセルのVBAを基礎から学べるWEBサイトないですかね?とほほのPerl入門みたいな奴希望なんですが。
425名無しさん@そうだ選挙にいこう:2014/05/29(木) 21:43:53.53
【1 OSの種類         .】 Windows7 HOME
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

C列に
2014/4/30 17:05
な感じで時間と日にちのデータが入ってます
D列に売上データが入ってます
1ヶ月分が1シートになったファイルがあるのですが、ここから別のシートに
4月1日の売上
4月2日の売上
な感じで、各日ごとの売上を抽出したいです。
どうすればよいでしょうか?

=SUMIF(C:C,"2014/4/1*",D:D)
では計算できませんでした…
426名無しさん@そうだ選挙にいこう:2014/05/29(木) 21:50:53.91
>>424
エクセルは割となんでもできるから、基礎というのが無い
クラスとか知ってれば後はだいたい応用が効くだろう
他言語が結構オススメ、一度でいいからやっておくと良い。
俺が勧めるのはC++だけど、今ではJAVAかな?最近の言語はよく知らないわ。
427名無しさん@そうだ選挙にいこう:2014/05/29(木) 22:08:11.19
こんばんは。
文字列結合について教えてください。
文字列結合で間に改行を入れたいんですが、何故か入りません。
例えば、="ABC" &amp; CHAR(10) &amp; "DEF" と入れても、
普通にABCDEFと表示されるだけで、改行が入りません。
考えられる原因は何かあるでしょうか?
Windows7 Pro、EXCEL2010です。
428名無しさん@そうだ選挙にいこう:2014/05/29(木) 22:10:31.66
>>427
みぎくりっく 配置で折り返して全体を
429名無しさん@そうだ選挙にいこう:2014/05/30(金) 00:56:00.81
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

割り算をするときに小数ではなく分数で表示することはできますか?


A1、B1、C1 にそれぞれ
6、 9、 =A1/B1 を入力するとC1には0.6667と表示されますが
これを2/3と分数で表示させることはできますか。
C1に2、D1に3とかでもかまいません。
(答えが整数のときはD1に1を表示させるとかでもいいです)
430名無しさん@そうだ選挙にいこう:2014/05/30(金) 00:59:16.78
>>429
試してないけど
http://office.microsoft.com/ja-jp/excel-help/HP001216507.aspx
試してみて
寝る
431名無しさん@そうだ選挙にいこう:2014/05/30(金) 01:02:59.08
>>430
早い解答ありがとうございます。
これから試してみます。
432名無しさん@そうだ選挙にいこう:2014/05/30(金) 11:34:14.87
>>430
431です
ありがとうございます
これで助かります
計算結果が負のときはできないようなので
今、負でも表示させる方法に取り組んでいます
433名無しさん@そうだ選挙にいこう:2014/05/30(金) 15:39:10.28
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
4個の数値をZ1:Z4に入れてB1=MATCH(A1,Z1:Z4,0)とするのと
直接B1=MATCH(A1,{10,20,22,25},0)とするのではどちらが処理が軽いでしょうか?
MATCHをする件数とMATCHを掛ける対象やデータがやたらと多いので
434名無しさん@そうだ選挙にいこう:2014/05/30(金) 18:44:46.62
>>433
配列数式の方が速そうな気はするが、まずは実測しなよ
435名無しさん@そうだ選挙にいこう:2014/05/30(金) 19:15:00.51
100万件ぐらい入れてF9押すんだ
436名無しさん@そうだ選挙にいこう:2014/05/30(金) 21:13:50.55
427です。こんな単純なことに気付かなかったとは、、
無事、意図した通りになった。428さんありがとう。
437名無しさん@そうだ選挙にいこう:2014/05/31(土) 14:32:50.02
【1 OSの種類         .】 Windows7/8.1
【2 Excelのバージョン   】 Excel2010/2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 いいえ

一覧表をリストの作成にてソートさせた場合に元の順序に戻せる方法はありませんでしたか?
記憶違いかもしれませんがシリアル用の列などを作成しなくても戻せた気がします

よろしくお願いします
438名無しさん@そうだ選挙にいこう:2014/05/31(土) 16:25:15.70
ctrl+z
439名無しさん@そうだ選挙にいこう:2014/05/31(土) 22:53:36.99
保存せずに閉じてまた開く
440名無しさん@そうだ選挙にいこう:2014/06/01(日) 06:43:43.06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 おそらく2007
【3 VBAが使えるか    .】 わかりません
【4 VBAでの回答の可否】 簡単にできそうなら

入力用のワークシート(普通の表)に文字列を入れると
印刷用のワークシート(変則的なセル配置)に反映される、という作業をしています

入力用     印刷用
A1 B1 C1   A1 B1
A2 B2 C2 →  C1
A3 B3 C3   A2 B2
          C2
         A3 B3
          C3

印刷用ワークシートで、飛び地になっているC1、C2、C3を一括選択して
「折り返して全体を表示する」をチェックしたいのですが、
この場合、Ctrlを押しながら1セルずつ選択部を追加していくしかないでしょうか?

入力用ではCという列の括りなので、印刷用でも何らかの一括選択方法がないかなと思った次第です
441名無しさん@そうだ選挙にいこう:2014/06/01(日) 07:30:49.39
>>440
> 飛び地になっているC1、C2、C3
このルールの仕様が決まっているならコンピュータで判断させることができるし
このルールの仕様が決まっていないなら人間が判断するしかない
442名無しさん@そうだ選挙にいこう:2014/06/01(日) 08:28:21.70
>>440
Sub Macro1()
x = 2 '2=Bれつ
For i = 2 To 100 ' 2=100 2から100行
Cells(i, x).Select
With Selection
.WrapText = True
End With
Next
End Sub
443名無しさん@そうだ選挙にいこう:2014/06/01(日) 09:09:57.57
BASICってFOR構文のオプションにSTEPってなかったっけ?
FOR I=2 TO 100 STEP 2ってやると奇数だけ飛ばして処理するはずだが
444名無しさん@そうだ選挙にいこう:2014/06/01(日) 09:13:03.24
あれ、ごめん抜けてた
>>442正しくはこう
Sub Macro1()
x = 2 '2=Bれつ
For i = 2 To 100 step 2 ' 2=100 2から100行
Cells(i, x).Select
With Selection
.WrapText = True
End With
Next
End Sub
445名無しさん@そうだ選挙にいこう:2014/06/01(日) 09:23:10.81
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

甲のセルと乙のセルの数字の組み合わせによって丙のセルに色々な数字を指定して入力
したいのですが、どうすればいいのでしょう?

例えば甲が1種類で乙がA5サイズだと丙は200円と表示したり
    甲が2種類で乙がB4サイズなら丙は300円と表示させたりしたいのですが。
446名無しさん@そうだ選挙にいこう:2014/06/01(日) 09:31:52.59
甲に入る値が何かによって回答が異なる
甲に1とか数値が入り、乙にA5が入るのであれば、作業セルを"1A5"としてVLOOKUPで丙に拾ってくる
447名無しさん@そうだ選挙にいこう:2014/06/01(日) 09:46:06.09
>>446
ごめんなさい。 シート見返してみたらもうちょっと複雑でした。

甲は基本的に数値が入り、乙にも数値が入り 丙にはA5、B4などと言った言葉が入ります。
その3つの条件から丁の数値を決めたいのですが、
甲の数値は1〜10 11〜20 21〜30といった形で検索条件が変わっていく形です。

この時の丁にどういう処理をすればいいのか全くわからない状況で、困っています。
448名無しさん@そうだ選挙にいこう:2014/06/01(日) 10:08:49.86
それなら同じ。作業セルに甲乙丙の値を連結した値をつくって、VLOOKUPで拾ってくればいい
別シートに
甲-乙-丙 丁
1-2-A5 200円
みたいな表をつくっておく
449名無しさん@そうだ選挙にいこう:2014/06/01(日) 10:09:07.65
>>440
元の入力用セルC列を
ハナから「折り返して全体を表示する」設定にしとけば

印刷用にコピーすればセル設定も一緒にコピーされるじゃん
どうやって印刷用フォーマットに変えてるんだね?
450名無しさん@そうだ選挙にいこう:2014/06/01(日) 13:53:33.38
>>448
できました。ありがとうございます。

1から全て入力しなくちゃいけないのが難点ですがおかげさまで少しレベルアップできました。
451440:2014/06/01(日) 22:16:34.66
>>441-442
回答ありがとうございます
それがVBAというものでしょうか、教えてもらっても使いこなせそうにありませんでした…

>>449
数値や文字列なんかは「入力用シートのセルに入力→自動的に印刷用シートの対応するセルに反映」
という仕組みになっているんですが、なぜか文字の大きさや折り返し設定などは
印刷用シートのセルを直接いじらなければ変わってくれないみたいなんです
452名無しさん@そうだ選挙にいこう:2014/06/01(日) 22:31:44.57
まさか=で参照してるんじゃ?
453名無しさん@そうだ選挙にいこう:2014/06/01(日) 22:37:07.32
>>451
"=C"をキーワードにすべて検索で検索結果を一括選択は?
どんな状態になってるかわからんけど
454名無しさん@そうだ選挙にいこう:2014/06/01(日) 22:41:52.94
>>451
それがエクセル
書式までは数式で飛ばせない
455名無しさん@そうだ選挙にいこう:2014/06/01(日) 22:44:15.40
>>452
別におかしくないと思うが?
456名無しさん@そうだ選挙にいこう:2014/06/01(日) 22:48:48.52
飛ばす 
時々聞くけど、他シートのセルを数式で参照することを「飛ばす」と言われると、すごく違和感を感じる
普通に解説本とかに載ってる用語なの?
457名無しさん@そうだ選挙にいこう:2014/06/01(日) 22:59:13.96
載ってない。個人の感覚だろう
458名無しさん@そうだ選挙にいこう:2014/06/01(日) 23:10:45.43
>>455
いや、おかしいとかそういう意味じゃなくて
=で参照しただけで書式も一緒に参照されると思ってるのか?と
ものっしょ初歩的なことだっただけに驚いたんだよ

印刷用のシートとあるからには
そっちにも当然書式設定済で、データの桁数が足りなくて
配置が崩れると嘆いているのかと思ったもんで。
459名無しさん@そうだ選挙にいこう:2014/06/01(日) 23:13:30.58
>>458
修行が足りん
460名無しさん@そうだ選挙にいこう:2014/06/01(日) 23:16:49.39
>>453-454
ありがとうございます!
出勤したら早速試してみます
461名無しさん@そうだ選挙にいこう:2014/06/01(日) 23:50:00.35
どうせAとBはセルはみ出さないんだろう?
全部のセルを「折り返して全体を表示する」設定にしとけば済む話じゃん
462425:2014/06/02(月) 01:39:54.72
>>425
はよ
463名無しさん@そうだ選挙にいこう:2014/06/02(月) 01:47:15.03
=SUMIF(C:C,">=2014/4/1",D:D)-SUMIF(C:C,">=2014/4/2",D:D)
=SUM(SUMIF(C:C,{">=2014/4/1",">=2014/4/2"},D:D)*{1,-1})
=SUMIFS(D:D,C:C,">=2014/4/1",C:C,"<2014/4/2")
464名無しさん@そうだ選挙にいこう:2014/06/02(月) 01:48:29.74
でも、書式設定されてないセルに
=a1
って入れるとa1の書式設定がコピーされるんだよな。
オートコンプリート的な機能だと思うけど。
465名無しさん@そうだ選挙にいこう:2014/06/02(月) 01:53:02.86
>>463
year,month,dayで年月日取り出して、and条件で比較したほうがよくね?
466名無しさん@そうだ選挙にいこう:2014/06/02(月) 02:20:03.94
>>465
数式でやる限りたいして変わらない。
一番望ましいのは、ピボットテーブルで集計して「日」でグループ化する方法。
467名無しさん@そうだ選挙にいこう:2014/06/02(月) 06:49:57.33
>>425

これは >>466 の言うとおり
望ましいし、一番簡単でもある。
468名無しさん@そうだ選挙にいこう:2014/06/02(月) 08:14:05.62
>>464
書式設定されてる/されてないの区別って何だろ
一度でもそのセル設定ダイアログを開いてOKボタンを押したかどうか?
469名無しさん@そうだ選挙にいこう:2014/06/02(月) 08:45:32.16
>>468
多分だけど標準だと上書きされる
470名無しさん@そうだ選挙にいこう:2014/06/02(月) 11:02:16.72
「標準」「G/標準」どちらもリンク元の書式で上書きされる
それ以外は個別の設定が維持される
471名無しさん@そうだ選挙にいこう:2014/06/02(月) 23:33:17.50
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

数値入力された列の値をそれぞれ10倍したリテラル数値(式は×で)にする場合
どのようにするのがスマートな方法でしょうか?

現在は作業用の列を用意して行っていますが
もっと良いやり方がありそうな気がして質問させて頂きました
472名無しさん@そうだ選挙にいこう:2014/06/02(月) 23:38:44.02
>>471
どこかのセルに10と入れてコピー、10倍したいセルを範囲選択、形式を選択して貼り付け、乗算
473名無しさん@そうだ選挙にいこう:2014/06/02(月) 23:45:58.65
>>472
ありがとうございます

方法論の質問なので我儘を言って申し訳ないのですが
「どこかのセルに10と入れて」という作業のためのセルを必要としない方法てないものでしょうか?
474名無しさん@そうだ選挙にいこう:2014/06/02(月) 23:46:58.29
ない
475名無しさん@そうだ選挙にいこう:2014/06/02(月) 23:55:16.23
>>474
ありがとうございます
よくやる作業なので拘ってしまいました
476名無しさん@そうだ選挙にいこう:2014/06/03(火) 00:00:09.19
ショートカットなりマクロに登録すればいいのに
最初大変だけど捗るよ
477名無しさん@そうだ選挙にいこう:2014/06/03(火) 00:17:42.88
>>475
Sub Macro1()
  For Each c In Selection
    c.Value = c.Value * 10
  Next
End Sub
478名無しさん@そうだ選挙にいこう:2014/06/03(火) 00:21:12.04
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

http://i.imgur.com/FyBPdmC.png
この画像のように3次元グラフで縦軸の値に応じて連続的に色を変えるにはどうしたらいいでしょうか?
479名無しさん@そうだ選挙にいこう:2014/06/03(火) 00:33:44.75
>>478
等高線なら軸の書式設定で目盛り間隔を小さくして、系列ごとに色を設定すればいい
間隔が小さいと系列の数が多くなって手作業で色を設定するのは大変だからマクロ推奨
480478:2014/06/03(火) 06:38:02.68
>>479
レスありがとうございます。やっぱりVBAでやらないときついですか。
値に応じてグラデーションさせる機能があってもいいと思うんですけどね。
グーグル先生に教わりながらVBAでやってみます。ありがとうございました。
481名無しさん@そうだ選挙にいこう:2014/06/03(火) 20:13:06.83
2010ならそれっぽいグラフのテンプレがなかったっけ
482名無しさん@そうだ選挙にいこう:2014/06/03(火) 20:39:42.76
そもそもExcelはグラフ機能が貧弱なので
グラフに凝りたければ、グラフのソースとなるデータを計算することが主目的なExcelではなく
グラフ作成が主目的なアプリやオブジェクトを活用するのが正解
483名無しさん@そうだ選挙にいこう:2014/06/03(火) 21:57:02.32
>>481
テンプレには階段が粗すぎるデータしかなかったはず(ネットにはあるのかな?)
細かく色分けするには系列を増やすしかないと思う

グラデーション機能もちょっと違うんだよなあ
484名無しさん@そうだ選挙にいこう:2014/06/05(木) 10:07:54.11
2つ質問させて下さい

1.新しいウィンドウを開くと、もともと開いていたウィンドウと文字の大きさや行列の幅などが
 変わってしまったウィンドウが開くのですが、元ウィンドウと全く同じものを開く方法はないでしょうか?

2.新しいウィンドウを開く→整列→左右に並べ替え、をすると
 元ウィンドウが右、新ウィンドウが左に配置されてしまいます
 これを逆配置にすることはできないですか?
485名無しさん@そうだ選挙にいこう:2014/06/05(木) 10:48:01.51
>>484
VBAで両方とも叶姉妹
486名無しさん@そうだ選挙にいこう:2014/06/05(木) 11:17:32.87
VBAは分らないとか
VBAじゃ嫌だとか、後出ししてきそうな悪寒w

まあ後出しは無視が基本なので、
後出ししてきたところで放置されるだけだがな
487名無しさん@そうだ選挙にいこう:2014/06/05(木) 11:44:52.12
されるだけだがな(失笑)
488名無しさん@そうだ選挙にいこう:2014/06/05(木) 12:28:06.72
こんいちわエクセル2000です
=IF(AND(RC10<20,RC12>=1),RC8-RC5,0)
とゆう式の"AND(RC10<20,RC12>=1)"の部分だけをR2C31とかの他のセルにテキストで放り込んでおいて
=IF(R2C31,RC8-RC5,)ってやるとき#VALUE!ってなってうまく出来られません
どうしたらできれられますか??
489名無しさん@そうだ選挙にいこう:2014/06/05(木) 13:40:38.40
>>488
最初にイコール記号が必要です
R2C31の内容は
AND(RC10<20,RC12>=1)
ではなくて
=AND(RC10<20,RC12>=1)
にしてください
490名無しさん@そうだ選挙にいこう:2014/06/05(木) 14:08:08.06
なんかいろいろまちがいてた
491名無しさん@そうだ選挙にいこう:2014/06/05(木) 14:09:46.24
=IF(AND(RC[-9]<20,RC[-7]>=1),RC8-RC5,)
とゆう式の"AND(RC[-9]<20,RC[-7]>=1)"の部分だけをR2C31とかの他のセルにテキストで放り込んでおいて
=IF(R2C31,RC8-RC5,)ってやるとき#VALUE!ってなってうまく出来られません
どうしたらできれられますか??
492名無しさん@そうだ選挙にいこう:2014/06/05(木) 14:14:53.95
標準モジュールに
Private Function Eva(trg As String) As Double
  Eva = Evaluate(trg)
End Function
て書いてからセルに
=IF(eva(R2C31),RC8-RC5,)
てったらできました
493名無しさん@そうだ選挙にいこう:2014/06/05(木) 14:15:25.34
みんなありがとう!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
494名無しさん@そうだ選挙にいこう:2014/06/05(木) 14:46:12.19
えっ何その斜め上の解決方法
495名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:03:57.76
職場によるんだろうけど、数式で出来ることをわざわざマクロでやる意味がわからん。
オレvba使えるぜって主張したいのか
496名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:10:00.73
使えない自慢はもう結構
497名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:17:45.54
基本的にVBA使えるようになりたての人たちが質問に答えて優越感に浸るスレなので
より難しく、より複雑に無意味な回答をするのは当然です
498名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:18:51.39
回答どころか本人が自己解決してるじゃん
499名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:30:57.38
つーか、原爆もってるのに剣で戦えとか無理
500名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:36:32.32
カッコ良すぎて爆笑した
その名言()使わせてもらうわ
501名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:39:20.12
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルに複数の条件付書式が設定されている状況で
その中から1つだけ他のセルに条件付書式だけをコピーしたいのですが
どうすれば良いでしょうか?
502名無しさん@そうだ選挙にいこう:2014/06/05(木) 16:56:29.54
>>501
コピーしたあとで不要な条件を削除
503名無しさん@そうだ選挙にいこう:2014/06/05(木) 17:30:17.30
【1 OSの種類         .】 Windows7 Home
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
リンクが含まれているブックからそのリンクを消す方法または探す方法を教えて下さい
東証からブックをダウンロードしてシートにデータをコピーしています(制度信用・貸借銘柄)
url http://www.tse.or.jp/rules/shinyo/meigara/sentei.html

このブックから一覧というシートをコピーしているのですが、コピー先のブックを開くと
http://www.dotup.org/uploda/www.dotup.org5107047.jpg
というメッセージが出ます。
他のシートをコピーした場合は出ないのでこの一覧というシートにこのリンクが
含まれているんでしょうが…
504名無しさん@そうだ選挙にいこう:2014/06/05(木) 17:38:43.42
OSがXPで、Excel2003です
あるフォルダにNotepadのテキストファイル3つ作って、ファイル名を a1,a2,a3 とします
エクセル上の

1 a1 ABC
2 a2 DEF
3 a2 HIJ

みたいな記述をテキストに自動で転写する方法をお願いします
「a1」に「ABC」、「a2」に「DEF」、「a3」に「HIJ」・・・という感じです

VBAはど素人ですが、マクロの使い方の載った解説書はあります
これ見ながら貼りつけて動かすのはなんとかなるかも(^ ^;
505名無しさん@そうだ選挙にいこう:2014/06/05(木) 17:40:15.99
3 a2 HIJ は 3 a3 HIJ の間違いですすんまそん
506名無しさん@そうだ選挙にいこう:2014/06/05(木) 19:08:51.05
>>504
転写って具体的にどういう動き?
テキストファイルに上書き?追記?
507名無しさん@そうだ選挙にいこう:2014/06/05(木) 20:55:26.40
>>503
データ→リンクの解除から解除するのは簡単だけど、元データはどこからとっているのだろうね。興味深い
>>504
Sub a()


Dim i As Long, LngLoop As Long
Dim StrFN As String

For k = 1 To 3
StrFN = ActiveWorkbook.Path & "\" & Cells(k, 1).Value & ".txt"


Worksheets("Sheet1").Activate
LngLoop = Range("a65536").End(xlUp).Row

IntFlNo = FreeFile
Open StrFN For Output As #IntFlNo

Write #IntFlNo, Cells(k, 2)

Close #IntFlNo
Next
End Sub

こんなんでええか
508名無しさん@そうだ選挙にいこう:2014/06/05(木) 21:15:24.18
>>507
ありがとうございます。教えてもらったところの作業をマクロの記録でとってみたところ、

ActiveWorkbook.BreakLink Name:= _
"\\Jpx-fs\kabu\01_株総\信用共用\チェックシート\HP信用貸借区分関係\信用貸借集計(統合対応).xls", Type:= _
xlExcelLinks

となったんで、それをVBAのモジュールに追加してみたら出なくなりました。
ユーザーには訳わからん所在地みたいですが w
509名無しさん@そうだ選挙にいこう:2014/06/05(木) 21:36:11.74
つーか、原爆もってるのに剣で戦えとか無理ッスわw
510名無しさん@そうだ選挙にいこう:2014/06/05(木) 21:36:14.83
>>508
その発想はなかった、ありがとう。
そのディレクトリは社内LANだな。それも東証の、あまり公にしないほうがいいところだろう。
気が向いたら東証に通報してやると良い。

お主は伸びるだろう。がんばれよ。
511名無しさん@そうだ選挙にいこう:2014/06/05(木) 22:44:22.45
>>508
言うなればおまえは原爆を手に入れたようなもの。
512名無しさん@そうだ選挙にいこう:2014/06/05(木) 22:55:48.48
つまり、ここで答えてるやつらは
a列の合計値求めるのにsum(a:a)で済むところ
for i = 1 to activesheet.usedrange.rows.count
total = total + activesheet.cells(i,1).value
next
とかしちゃうのか
513名無しさん@そうだ選挙にいこう:2014/06/05(木) 23:04:03.35
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A君 12年○月○日 50
A君 13年○月○日 55
B君 12年○月○日 46
B君 13年○月○日 29
C君 12年○月○日 62
C君 13年○月○日 70

それぞれの人の増減率を表示させることはできるのでしょうか?
2列目の日付はバラバラです。
お願いします。
514名無しさん@そうだ選挙にいこう:2014/06/05(木) 23:24:16.61
>>512
鶏を殺すのに原爆を使うか?
という反論はニュー速でなら必要だなぁ、と思っていたんだ・・・こんんあとこで言わせないで欲しかった。
>>513
できると思うけど増減率ってのがなんだか微妙な数値。あまり聞き慣れないけど、どういう計算式?
その月日と結果として表示させたい増減率、2つか三つぐらい例として出して欲しい
515名無しさん@そうだ選挙にいこう:2014/06/05(木) 23:25:03.76
>>513
ピボットテーブル
516名無しさん@そうだ選挙にいこう:2014/06/06(金) 00:12:35.19
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

売り上げデータがあるのですが、
それぞれの商品と一緒に購入されている商品は何か?のデータを出すにはどうしたらいいのでしょうか?

○月○日,Aさん,牛乳,紅茶,
?月?日,Bさん,牛乳,コーヒー,
△月△日,Cさん,牛乳,コーヒー,パン,

みたく日にちごとの売上データがあって
単品でよく購入される商品は割り出せるんですが、
一緒に購入されるパターンのデータは
どうやって割り出せばいいのかわからんです。
517名無しさん@そうだ選挙にいこう:2014/06/06(金) 00:29:11.13
518名無しさん@そうだ選挙にいこう:2014/06/06(金) 00:29:29.94
実際のデータを見ないと分からん
代替4品目以内でフィルタ欠けてなんだかんだってかんじだと思う
519516:2014/06/06(金) 01:00:38.22
例えばこういうデータがあったとして

日付 顧客CD 購入商品 金額
2014/4/1 A 牛乳 198
2014/4/1 A 紅茶 980
2014/4/1 B 砂糖 480
2014/4/2 A コーヒー 1260
2014/4/2 A クリーム 600
2014/4/2 B 牛乳 250
2014/4/2 B 紅茶 485
2014/4/2 C クリーム 300
2014/4/3 C コーヒー 1500
2014/4/3 A 砂糖 480
2014/4/3 A コーヒー 1260
2014/4/3 B クリーム 600
2014/4/3 B 牛乳 250
2014/4/4 C 紅茶 485
2014/4/5 B クリーム 300
520名無しさん@そうだ選挙にいこう:2014/06/06(金) 01:01:43.15
ピボットだと↓これはできるけど、これは単に購入の個数であって
同時に買われたかどうかはわからん。

データの個数 / 金額 列ラベル
行ラベル クリーム コーヒー 牛乳 紅茶 砂糖 総計
A 1 2 1 1 1 6
B 2 2 1 1 6
C 1 1 1 3
総計 4 3 3 3 2 15
521名無しさん@そうだ選挙にいこう:2014/06/06(金) 07:26:18.87
>>514 要は12年と13年を比べて、10パーセント増加してる人を抽出したいんです。
できるでしょうか。人数はかなり多いです。
522名無しさん@そうだ選挙にいこう:2014/06/06(金) 09:52:31.68
>>520
顧客の次に日付も入れれば
とりあえずわかる

自動でやるには
@商品名選択
Aその顧客・日付を検索
Bその顧客・日付から商品をリストアップし選択商品以外をリストに追加
CAから繰り返し

めんどくさい誰かやれ
523名無しさん@そうだ選挙にいこう:2014/06/06(金) 09:56:49.37
>>521
一旦ピボットを使って
12年度と13年度の列に別れた表を作れ
その表をコピペして新規テーブル作って
最後列に計算式(=13年/12年)の列作れ
524名無しさん@そうだ選挙にいこう:2014/06/06(金) 12:40:29.76
ピボットのフィールド式を使えば年度を比較した増減とか出せる すげーめんどくさいけどな
525名無しさん@そうだ選挙にいこう:2014/06/06(金) 15:32:38.12
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
ドロップダウンリストについてなんですが、
大きな範囲を全部同じドロップダウンにして一纏めにして選んでもらうのと、
indirect関数を使ったドロップダウンリストを大量に使ってやたらと重くなるのでは
どちらがユーザーインターフェイスとしてマシでしょうか?

【りんご】
青森産
静岡産
【みかん】
愛媛産
愛知産
和歌山産
【バナナ】
マレーシア産
国産

の180分類2500商品版で、
全商品を毎回ドロップダウンで出すのが前者で、数が多いだけで動作は軽く、
Aセルにみかんと入力したら、Bセルでは愛媛・愛知・和歌山だけが選べるようになっているが
1入力につき2秒待ちという酷い状態なのが後者です
526名無しさん@そうだ選挙にいこう:2014/06/06(金) 15:50:27.90
>>525
後者で待たなくていいように頑張る
527525:2014/06/06(金) 15:55:30.01
>>526
それちょっと無理
528名無しさん@そうだ選挙にいこう:2014/06/06(金) 16:05:46.76
>>522
ごめん、全然わからない
それピボットの話?

『一緒に』買ってるかどうかを出したいんで
単なる購入件数を出したい訳じゃないんだ

牛乳とコーヒーを一緒に買う割合は何%か?を出したいん。
529名無しさん@そうだ選挙にいこう:2014/06/06(金) 16:53:27.87
>>527
indirect使うから重いんじゃないの?
530名無しさん@そうだ選挙にいこう:2014/06/06(金) 16:55:13.38
>>527
多分入力する箇所が多いんだろうけど、決まった所や未入力のところはできるだけ値にしておく
indirectを多様するとちょー重くなる
531525:2014/06/06(金) 17:16:31.09
Bセルに入力規則→indirect(A1)で、
Aセルがみかんなら愛媛・愛知・和歌山と出て(愛媛・愛知・和歌山のセルにみかんと名前をつけてある)
Aセルがりんごなら青森・静岡と出るようにしてます(青森・静岡のセルにりんごと名前をつけてある)
indirectするしないに関わらずAセルは分類入力セルです
1ページA1〜A25までで20ページ合計500個あります
indirectするなら、Bに500のindirect(A)が並びます
532525:2014/06/06(金) 18:07:42.34
皆さんにお伺いしたいのは
indirectを使って重くなるか、2500項目のドロップダウンで面倒か
この2択の場合、どちらのほうがマシかという事です

もし、indirectよりも大幅に軽く、現状並みかそれなりに便利な方法があれば
そちらの方を教えていただけると非常に助かります
533名無しさん@そうだ選挙にいこう:2014/06/06(金) 18:10:25.40
>>528
516=528 かな?
VBA使って
(1) 1度に複数種類の商品購入データだけ抽出後、
(2) 各購入データから2種類の商品の組み合わせを作成
(3) 組み合わせ毎の件数を出す
みたいな処理かなあ。
(2)の処理は、例えば1度の購入で3種の商品購入だったら3個の組み合わせができます。
(商品α、β、γの購入だと αβ、αγ、βγ)
商品に優先度を設定することで同じ商品の組み合わせなのに逆(例:βα)が生じないようにするのが肝。
534名無しさん@そうだ選挙にいこう:2014/06/06(金) 18:35:24.03
>>533
なるほど!ありがとうございます。
VBAかー。ぐぐりながらがんばります。
行き詰まったらまた来ます!
535名無しさん@そうだ選挙にいこう:2014/06/06(金) 19:35:41.10
>>532
その二択を試せばいいのでは?
536名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:14:24.79
【1 OSの種類 】 Windows xp/7
【2 Excelのバージョン】 Excel 2003/2007
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否

Windows xp/Excel 2003 で作ったファイルを Windows 7/Excel 2007 で読み込むと
列幅がずれて ##### 表示になる列があります。*
また2003と2007交互に編集を繰り返すと、「標準の幅」以外の列は変わってしまいます。
列幅を設定通りに固定する方法はないですか?行高さは変わりません。
なおディスプレイの画素数はxp/2003が1600x1200、7/2007が1920x1080です。
*なるべく多くのセルを見たいので、最低限の列幅にしている。
537名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:26:26.58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 2007
【3 VBAが使えるか    .】 使えません
【4 VBAでの回答の可否】 可。理解するまで勉強します

前提として、フォルダにそれぞれA〜Zの名が付いたExcelファイルがあります。
で、Excelで作られた予定表があり、そこにその日必要なデータとそのデータの必要印刷部数が載ってます。

ファイル名 必要部数
A          10枚
D          5枚
E          10枚
K          10枚

こんな感じです。
この予定表の必要データと必要部数を読み取り、必要分印刷して出してくれるマクロ?が欲しいです。
漠然としたイメージで申し訳ないですが可能でしょうか? 足りない情報があるなら書き足します。
538名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:28:12.69
>>536
VBAを使わないとできない
VBA否なので無理
539名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:29:32.17
>>537
可能
540537:2014/06/06(金) 22:37:33.08
>>539
VBAでの回答はお願いできますか?
もしくはやり方を教えて貰えると助かります。
541名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:44:41.57
>>540
順番に開いて印刷するだけ
Aを10部印刷するVBAはたったこれだけ

Workbooks.Open "A.xls"
Worksheets(1).PrintOut Copies:=10
542名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:47:48.25
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

excelシートをそのままメモ帳へ貼付けたいのですが、一行が長すぎると次の作業で不具合を起こすため、一行の長さを短くしなければなりません。
というのが、Excelシートをそのままメモ帳へはるとセル間は勝手にタブキーで置き換えられてしまうので、一行がやたら長くなってしまうのです。
tabキーを半角に置き換えていくのも良いのですが、メモ帳へ貼付けるのはマクロで行いたいので、それは避けたいです。

そこで有効数字の桁数を小数点以下4桁にして貼付けたいのですが、Excelで桁数をリボンにあるボタンで調整しても、表示が変わるだけで、貼付けたときには元の丸める前の数字を張ってしまいます。
そのため一行の長さがオーバーしてしまい、困っています。どうすれば貼付ける際にも有効数字を目的のもののままはれるのでしょうか。

もしできるのならばExcelシートからメモ帳へ貼付ける際に勝手にセル間をタブキーで置き換えてしまうことの対策をあらかじめExcel側で対処できないものでしょうか?
(Excelファイルをテキスト形式で保存するというのは使用上の都合で無しで御願いします。あくまでExcelからメモ帳へ貼付けるのはマクロで行いたいのです。
543名無しさん@そうだ選挙にいこう:2014/06/06(金) 22:51:23.01
>>542
方法は2つ、データを加工して貼り付けたい状態のデータを作業列に作っておいて、そこからコピペ
もう一つはCopyメソッドなどを使わずに、自前でクリップボードオブジェクトを操作

簡単なのは前者、見た目がスマートなのは後者、かな
544名無しさん@そうだ選挙にいこう:2014/06/06(金) 23:02:03.51
>>543
データを加工して貼り付けたい状態のデータを作業列に作っておいて、そこからコピペ
というのはどういったことでしょうか。マクロでは以下のような流れでやっていますがかのうでしょうか
1条件値を入力→それに合わせてシートが計算してメモ帳へ貼付けるためのシートへ結果が出力される→メモ帳へ貼付け
各シートは計算式で関係づけられているのですが、できそうですか?
クリップボードオブジェクトを操作というのはマクロで対応出来そうなのでしょうか。
今のところcopyとopenとprintステートメントで処理しています。
545537:2014/06/06(金) 23:11:48.89
>>541ごめんなさい凄い言葉足らずでした

エクセルのA1位置に C と書かれていた場合 
A2に 15 と書かれていた場合
C.xlsのデータを15枚印刷したい ということです。

A1.A2に書いてある内容は毎日変動するので、変動する内容に対応するマクロを作りたいのです。

印刷部数に関しては
PrintOut Copies:=Range("A2").Value こんな感じでしょうか(これが合ってるかも正直分かりませんが…)
A1部分はどうすればいいのかさっぱり分かりません。
546名無しさん@そうだ選挙にいこう:2014/06/06(金) 23:13:18.32
>>544
たとえばFormat関数を使えば、小数点以下の桁数を自由に変えることができる
複数のセルに分かれたデータをコピーするとタブ区切りになるから、
スペースなりコンマなり、自分の好きな記号で連結して1つの長い文字列にしてしまって、全部1つのセルにまとめる
など
547名無しさん@そうだ選挙にいこう:2014/06/06(金) 23:14:52.92
>>545
こんな感じ

Workbooks.Open Range("A1").Value & ".xls"
Worksheets(1).PrintOut Copies:=Range("A2").Value
548537:2014/06/06(金) 23:20:35.63
>>547
おおありがとうございます!
言語は全然理解できてないですが必ず理解します。
本当にありがとうございました。
549名無しさん@そうだ選挙にいこう:2014/06/06(金) 23:53:19.55
>>548
VBA で他のブック開く時は相対パス使うとはまりやすいから、最初は絶対パス (c:\temp\a.xlsx みたいな奴) 使った方がいいよ。
詳しくは...
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_140.html
とかを参考にしてみて。
550名無しさん@そうだ選挙にいこう:2014/06/07(土) 00:42:11.08
詳しい方教えてください

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

複数の小数点以下が発生する数字を
ROUNDDOWN、INT関数で切り捨てて数字を出しているのですが

それらをトータルしようとすると電卓ではじきだした数字とずれてしまう現象があります
特定のセルの数字の小数点以下を完全に切り捨てるにはどうすればいいのでしょうか?
551名無しさん@そうだ選挙にいこう:2014/06/07(土) 01:05:05.71
>>550
長いので「小数誤差」「エクセル 小数誤差」辺りでぐぐってくれ
確実な方法は常に整数で計算すること
552名無しさん@そうだ選挙にいこう:2014/06/07(土) 01:17:21.08
>>551
ありがとうございます
当方は数学も関数も詳しくないのですが
ROUNDDOWN的な小数点以下を完全に切り捨てる関数は存在しないのでしょうか

表的に割りきりれない数字が発生して、それらをトータルしたいのですが
電卓で計算したものと違ってしまい、毎回毎回微調整に苦労しています

A1
B1
C1

A1+B1+C1=

のような場合、A1に入る計算結果を完全な整数にしたいのです
553名無しさん@そうだ選挙にいこう:2014/06/07(土) 01:28:29.77
>>546
open,copy,printステートメントをする前にformatを挟むということでしょうか?]formatはvbaのものであって、
Excelで自分で表を作っているときに使えそうにないので、vba上でそういった処理をはさむということでしょうか?
554名無しさん@そうだ選挙にいこう:2014/06/07(土) 02:09:38.29
>>553
作業シートに自由に数式を書いてもいいのならTEXT関数が同等の機能を持ってる
555名無しさん@そうだ選挙にいこう:2014/06/07(土) 02:12:25.85
>>552
INT関数で小数部は消える、ことになっている
ただし負数を扱う時には注意が必要
それで誤差が出るというのなら、もうちょっと具体的にどんな数字がいくつになったか書いて

誤差の出やすい数字というと、9.999999999999とか10.000000000001みたいな、整数との差が極めて小さい時だけど
556名無しさん@そうだ選挙にいこう:2014/06/07(土) 09:36:45.13
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

excelで1ファイルに月ごとに「1月度」「2月度」〜〜と名前を付けシートを12枚作って月ごとの数値管理をしてるのですが
今月の数値と比較したいので隣に常に前月の指定したセルの数値を持ってきたいのですがなんとも上手くいきません
良いやり方はないでしょうか?
合わせて1月は前年度の別ファイル「〜〜年〜〜」(年度の数字が違うだけで後はファイル名同じ、シートの名前も構成も同じ)の
12月度の数字を持ってきたいのですが
557556:2014/06/07(土) 09:38:56.03
追記
年度と書きましたが、4〜翌3月での年度ではなく
その数値管理は1〜12月で年度管理をしています
558名無しさん@そうだ選挙にいこう:2014/06/07(土) 09:51:02.89
>>556
たとえば2月のシートには
=1月度!A1
みたいな式を書けば1月のシートのデータがそのまま表示されるけど、何がうまくいかないの?
559名無しさん@そうだ選挙にいこう:2014/06/07(土) 10:23:07.77
>>558
それだと全シートにそれしないとダメですよね?
シートの月数のセルに2(月)、と入れると前月の1月のを引っ張ってきてくれるようなのを1枚作れば
あとはそれ原本にしてコピーで12枚なりいくつでもシート作れると思ったんですが
560名無しさん@そうだ選挙にいこう:2014/06/07(土) 10:26:55.56
INDIRECTでシート指定すりゃいいんじゃね
561名無しさん@そうだ選挙にいこう:2014/06/07(土) 10:38:11.69
>>559
ようするに、「うまく動作しない」じゃなくて「数式を入れるのがめんどくさい」ってこと?
562名無しさん@そうだ選挙にいこう:2014/06/07(土) 10:48:14.11
一つ前の月のシート名を生成する数式を考えてみたけど、バカみたいに長くなるな
=MID(CELL("filename"),FIND("]",CELL("filename"))+1,FIND("月度",CELL("filename"))-FIND("]",CELL("filename"))-1)-1&"月度"

シートのコピーと数式の修正はVBAでまとめてやった方がたぶん早い
563名無しさん@そうだ選挙にいこう:2014/06/07(土) 10:52:20.53
>>561
その通りです
うまくいかないってのは自分で数式入れてみてもうまく動作しないという事です
手間解消の為に数式等を使うのにシートが増えると手間がふえるんで他にいいやり方がないものかと質問した次第です

>>560
ありがとうございます
INDIRECTで上の事がうまくいかないのでどうしたものかと
564名無しさん@そうだ選挙にいこう:2014/06/07(土) 10:55:05.30
>>562
わざわざありがとうございます
やはりVBAですか
VBAは私自身が理解できてないので難しいですが調べながらやってみようと思います
565名無しさん@そうだ選挙にいこう:2014/06/07(土) 14:53:17.14
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 簡単なものなら

説明がうまくなく申し訳ないのですが

h2606.xlsxには4列30行の表があり、
VLOOKUP("hoge","パス??[h260601.xlsx]sheet1!$A$E,2,FALSE")
という式を列番号のみ変えて1行に4つ、それが30行あるとします
外部ファイルはh260601からh260630まで作る予定ですが、
これらのファイルは当日作るので現時点ではまだ出来ていません

私がこのh2606という、まとめのような表を作るときは、まず一行目をコピーして残りの29行貼り付け、
一行ごとに置換機能を使って日付のところを書き換えます
※h260601→h260602のような事を29回

しかし、ファイルはまだ存在していないため、前述したように一行に4セルある場合、
毎行4回もファイルを選択するウィンドウが出てきて大変です

これをどうにか楽にやりたいのですが、いい方法は無いでしょうか
566名無しさん@そうだ選挙にいこう:2014/06/07(土) 15:11:57.16
出来るExcel2013から始めたんです
この次にやるオススメ本ってありますか?
567名無しさん@そうだ選挙にいこう:2014/06/07(土) 15:35:26.09
>>565
説明が上手く出来ないときは、ブックをうpしよう
もちろん、個人情報とか機密データとかは、適当なサンプルデータに書き換えてもOKなので

>>566
君の理解力と、君の現在の知識に合ってるものがオススメ
それがどれなのかは、君自身では無い俺等には判断不可能

とりあえず、「できる」が気に入ってるなら、その発展型の「できる大辞典」も悪くないと思うけどね
できる大辞典のExcel2013はまだ出てないようだけど、2010版でも十分使えるし
できる大辞典ExcelVBAの方にいって、VBA覚えるのも一つの手だろう
568名無しさん@そうだ選挙にいこう:2014/06/07(土) 15:36:19.33
少し短くできた
=SUBSTITUTE(MID(CELL("filename"),FIND("]",CELL("filename"))+1,2),"月","")
フォルダ固定ならもっと短くできるけど、月の取得だけでもユーザー定義関数を使った方がスッキリするだろうな

Function 前シート()
  前シート = Val(Application.Caller.Parent.Name) - 1 & "月度"
End Function
569名無しさん@そうだ選挙にいこう:2014/06/07(土) 15:39:04.89
>>565
ファイルが存在しなくて困るってだけなら、空の新規ブックを名前を付けて保存しとけばいいじゃん
570名無しさん@そうだ選挙にいこう:2014/06/07(土) 19:20:47.82
>>565
先にファイルを作っておいたら?
連番 ファイル作成
でぐぐればファイルを作るソフトは出てくるよ
571名無しさん@そうだ選挙にいこう:2014/06/07(土) 23:18:24.93
1 Windows7
2 Excel2013
3 VBAもマクロも関数も使えません
4 それしか方法なければ学ぶつもりなので、可

商品リスト作っていますが列が横に延びすぎるので、別のワークシートに画像付の複数行にしたリストを作りたいと思います(1行12列のものを=など使って3行4列などに)
ですが、基本となる複数行の形を作っても数百アイテム分を=で手打ち入力するのはさすがにしんどいです
コピーしてもうまくいきません
なにか良い手はありませんか?
本屋で何冊かExcel本見ても見つけられませんでした
572名無しさん@そうだ選挙にいこう:2014/06/07(土) 23:28:00.52
>>571
できれば出来上がりのイメージ画像を
573名無しさん@そうだ選挙にいこう:2014/06/07(土) 23:42:22.43
1. Windows 7
2. Excel 2010
3,4. Yes

入力用シートと出力用シートを分けた見積書を使っています。
普段は出力用シートをPDFにして取引先に送付するんですが、まれに
エクセルのファイルのまま送付する必要があります。
この見積書は他のブック(価格表)への参照等外部へ非公開のものを含んでおり、
このままでは送付できないため、新規作成したブックへコピーして送付しています。
コピーされたブックは非公開のものを除外する目的は逹しているものの、計算式等を全く含まない
ため、ちょっとした編集も面倒になってしまいます。

シート内のみで完結する参照や計算式のみを残してシートのコピーを作成する方法はないでしょうか?
よろしくお願いします。
574名無しさん@そうだ選挙にいこう:2014/06/08(日) 01:10:25.06
よろしくお願いします。

OS: Win7ult
Excel: 2010
VBA: はい

VBAでユーザー定義関数を作成しましたが、これを複数の型を使った出力をしたいと思っています。
しかし、うまくいきませんので、やり方を教えていただきたいと思います。

出力は縦横2×2で、1列目を文字列(string)、2列めを数値(double)で出力したいです。
ユーザー定義関数ではダメなのでしょうか。

実行すると次のエラーが発生します。

コンパイルエラー
パブリックオブジェクトモジュールで定義されたユーザー定義型に限り、変数を割り当てることができ、
実行時バインディングの関数に渡すことが出来ます。

作ったけどダメだった関数を次レスに示します。
575574:2014/06/08(日) 01:10:59.07
Type kata
label As String
data As Double
End Type

Function test()
Dim result(1, 1) As kata

result(0, 0).label = "結果1"
result(1, 0).label = "結果2"

result(0, 1).data = 5
result(1, 1).data = 10

test = result

End Function

以上です。よろしくお願いします。
576名無しさん@そうだ選挙にいこう:2014/06/08(日) 01:23:25.22
>>575
ユーザー定義関数からはセルの書き換えは禁止されてる
関数を4つ作るかマクロとして動かすしかない
577名無しさん@そうだ選挙にいこう:2014/06/08(日) 05:28:48.72
日曜ですが、みなさんのお知恵をお借りしたく、よろしくお願いします。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

下例のように、あるセルの値をセルの行番号として引用したいのですが、うまく行きません。

例)A1セルの値が213だとする。このA1セルの値B1セルにおいてD列の213を呼び出したい。
要はB1セルを[=”D”+A1] = [=D213] としたいのですが、ググっても良い手がありません。
強引にセル内を書き換えるべく、マクロでSendKyesの”{F2}”やら”+{Home}”、”^C”、”^V”を使ってもうまく行かない状況です。

VBAじゃないとできないだろうな・・・というのが今の見立てです。
578名無しさん@そうだ選挙にいこう:2014/06/08(日) 06:02:30.90
こういうこと?
=INDEX(D:D,A1)
=INDIRECT("D"&A1)
=LOOKUP(A1,ROW(A:A),D:D)
579名無しさん@そうだ選挙にいこう:2014/06/08(日) 07:09:46.01
>>573
それ、目的に対する手段がおかしいのでは
580574:2014/06/08(日) 08:56:39.99
>>576
ありがとうございます。

マクロ使う方向で考えてみます。
581名無しさん@そうだ選挙にいこう:2014/06/08(日) 09:17:05.22
>>577
=OFFSET(D1,A1-1,0)
582名無しさん@そうだ選挙にいこう:2014/06/08(日) 10:08:31.28
>>573
マクロの記録で、外部参照を持ってるセル範囲だけ値の貼り付けすればいいんじゃ無い?
583名無しさん@そうだ選挙にいこう:2014/06/08(日) 10:45:35.53
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

ド素人です。済みませんがご教示願います。

緯度・経度をD2、E2セルに入力し、これを参照させて地図にリンクさせようという目論見です。
=HYPERLINK("http://portal.cyberjapan.jp/site/mapuse4/index.html#zoom=18&lat=D2&lon=E2&layers=TTTBT","地理院地図")
こんな数式でハイパーリンクを作ったのですが、D2、E2セルを参照してくれません。

何が間違っているか、教えて下さいませんか?
584名無しさん@そうだ選挙にいこう:2014/06/08(日) 11:07:22.75
577です。
578、581さんご回答ありがとうございます。

B1のセルですが、行番号を引用した後にフィルハンドルを行下に引っ張って、B2を=D214、B3を=D215…する必要があります。
A1を行番号の変数として扱いたいということになりましょうか。
このためB1は=D213となるようにする必要があります。
(別の関数の形を取れないと思います)

なかなかお伝えしづらくて申し訳ないです。
585名無しさん@そうだ選挙にいこう:2014/06/08(日) 11:14:33.08
>>583
×"http://portal.cyberjapan.jp/site/mapuse4/index.html#zoom=18&lat=D2&lon=E2&layers=TTTBT"
○"http://portal.cyberjapan.jp/site/mapuse4/index.html#zoom=18&lat="&D2&"&lon="&E2&"&layers=TTTBT"

" "の中にあったのでは、それは参照ではなく単なる文字として扱われる
" "の中であっても、セルアドレスとも取れる文字は全て参照として解釈したら、
/mapuse4/の、e4やse4もセルE4やセルSE4扱いになっちゃうからね

参照は" "の外に出した上で、&で繋げるべし
586名無しさん@そうだ選挙にいこう:2014/06/08(日) 11:24:24.32
>>584
B1に=OFFSET(D$1,A$1+ROW()-2,0)と入れて、下にフィルでもコピペでもお好きなように
587a:2014/06/08(日) 14:43:13.44
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
お願いします
sheet1はシフト表です
1行目のB列からに日にち31日までが入っています。A列の2行目から名前が入っています。
sheet2のA1には日付が入っていますA2からは担当が入っています
やりたいことはsheet2のA1の日付とA2以下の担当をキーワードにsheetから名前を拾ってsheet2のB2以下に表示したいです。

sheet1
      1  2  3  4  5
田中   A  B  C  D  E
佐藤   B  C  D  E  A
鈴木   C  D  E  A  B
伊藤   D  E  A  B  C
山田   E  A  B  C  D

sheet2
26年6月4日
A 鈴木←
B 伊藤←
C 山田←
D 田中←
E 佐藤←
のように矢印の部分を表示できないでしょうか?どうかこの出来損ないに知恵をお貸しください
588名無しさん@そうだ選挙にいこう:2014/06/08(日) 15:15:52.95
>>587
Sheet2!B2
=INDEX(Sheet1!A$2:A$6,MATCH(A2,OFFSET(Sheet1!A$2,,DAY(A$1),5),0))
または
=INDEX(Sheet1!A$2:A$6,MATCH(A2,INDEX(Sheet1!B$2:AZ$6,,DAY(A$1)),0))
589名無しさん@そうだ選挙にいこう:2014/06/08(日) 18:13:10.87
>>567,569-570
ありがとうございます
やはり最初にファイル作るのが一番簡単そうですね
590536:2014/06/08(日) 18:53:00.18
>>538
サンクス
でも何でこんな現象が起こるのでしょうか?
2003での列幅10が2007だと9.89とか、2007では少しずつ狭くなります。
仕様と言われればそこまでですが...
591名無しさん@そうだ選挙にいこう:2014/06/08(日) 18:56:34.43
>>590
仕様です。諦めて
2007から内部的に大幅に変わったのよ
592名無しさん@そうだ選挙にいこう:2014/06/08(日) 22:59:20.39
>>588

出来ました!
ありがとうごさいました!!
593名無しさん@そうだ選挙にいこう:2014/06/08(日) 23:40:30.85
>>585
有難うございます!
"&--&"で挟めばセル参照になるんですね、大変勉強になりました、アザッス!!
594名無しさん@そうだ選挙にいこう:2014/06/09(月) 03:40:44.53
>>593

全然違うぞ
""で囲んである文字列とセルの値を & を使って結合してるんだよ

>>585の例で言えば

"http://portal.cyberjapan.jp/site/mapuse4/index.html#zoom=18&lat="

D2

"&lon="

E2

"&layers=TTTBT"

の5つを & で繋げてるんだよ
595名無しさん@そうだ選挙にいこう:2014/06/09(月) 14:36:46.19
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

異なる2つのセルの値を参照して
その2つのセルの値が同じである場合に
その他の特定のセルの文字色を変化させたいと思っています。
(例:B1とA11のセルの値が同じである場合にB11の文字色を赤にしたい)

今のところ、条件付書式の「数式を使用して、書式設定するセルを決定」のルールで
「=B1=A11」を満たす場合に文字色を赤に設定する方法にしているのですが
これを異なる参照先(C1とA12を参照してC12の文字色を変化とか)で
多数設定するにはどのようにすれば良いでしょうか?
オートフィルオプションを使用すると適用先が範囲指定されてしまい不都合で、
1つずつコピーするしかアイデアがありません。
596名無しさん@そうだ選挙にいこう:2014/06/09(月) 15:08:04.53
>>595
OFFSET関数

使い方はヘルプ参照
597名無しさん@そうだ選挙にいこう:2014/06/09(月) 15:23:45.04
>>595
B1、A11→B11
C1、A12→C12

というルールなら、条件式を =B$1=$A11 にすれば行けそうな気がするんだけど
ちょっとサンプルが少なすぎるかな
598名無しさん@そうだ選挙にいこう:2014/06/09(月) 16:30:30.53
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

正負どちらも含む数値が入力されている列(または行)から
0に近い順にセルを指定するにはどうすれば良いですか?
599名無しさん@そうだ選挙にいこう:2014/06/09(月) 16:35:17.65
>>598
セルを指定、というのがよく分からんが…

abs()で絶対値が取れる、つまり負の数も正の数になる
後は順位が欲しければrank()など
600名無しさん@そうだ選挙にいこう:2014/06/10(火) 01:07:37.94
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
             (ネットで見つけたものをコピーして貼り付けて利用したりはしています)
【4 VBAでの回答の可否】 可-簡単なものでしたら

他のシートの参照についてですけれども

名前の列と曜日の行の表※1を他のシートに作ってあり、
メインのシートで日付を入れると曜日が出るようになっていて
その隣に名前を入力したとき※1の名前と曜日の交点のセルを引用するいい方法はないでしょうか?
601名無しさん@そうだ選挙にいこう:2014/06/10(火) 01:38:44.23
>>600
MATCHとINDEXは別のシートにまたがっても普通に使えるよ
602名無しさん@そうだ選挙にいこう:2014/06/10(火) 08:37:06.65
>>600
vlookup?
慣れたら>>600のindex、matchを組み合わせて使うのがオススメ
603名無しさん@そうだ選挙にいこう:2014/06/10(火) 10:37:01.36
【1 OSの種類 .】 Windows vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
こんにちは
質問お願いします
A列・日付とB列・出荷量、C列・コードが入力されています。
A列 B列 C列 D列 E列
4/1 1 123 4/1
4/1 10 132 4/2
4/1 9 126 4/3
4/2 15 111 4/4
4/3 7 121 4/5
4/3 5 111
4/4 5 125
4/5 1 147
4/5 6 147
4/5 2 472
4/5 8 121

実際はA列の日付は日曜日以外は1ヶ月分入力されています。
一日分の行数は日によってバラバラです。

D列に日付が入力してあり、E列にD列の日付と同日、かつ最大出荷量のコードを
表示させたいのですがどうすれば良いでしょうか?
604名無しさん@そうだ選挙にいこう:2014/06/10(火) 10:39:02.07
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007SP3
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

IF文の否の場合以下を値として出すようにしていたのですが、どうしても#VALUE!となってしまいます。

入力という名のシートの
範囲A9:H23
年の列4 D9:D23
月の列6 F9:F23
日の列8 H9:H23
から数字を拾って平成○年○月○日と表示しようとしていました。

最初に作成した文です。
=IF(OR(ISBLANK(VLOOKUP($G$8,入力!$A$9:$H$23,4,FALSE)),ISBLANK(VLOOKUP($G$8,入力!$A$9:$H$23,6,FALSE)),ISBLANK(VLOOKUP($G$8,入力!$A$9:$H$23,8,FALSE))),
"平成   年   月   日",
"平成"&VLOOKUP($G$8,入力!$A$9:$H$23,4,FALSE)&"年"&VLOOKUP($G$8,入力!$A$9:$H$23,6,FALSE)&"月"&VLOOKUP($G$8,入力!$A$9:$H$23,8,FALSE)&"日")

どこからおかしいのか調べるために文章を削っていったのですが
&の2つ目以降を入れると#VALUE!が出るようです。
=VLOOKUP($G$8,入力!$A$9:$H$23,4,FALSE)&VLOOKUP($G$8,入力!$A$9:$H$23,6,FALSE)&VLOOKUP($G$8,入力!$A$9:$H$23,8,FALSE)

どのように修正すれば良いでしょうか?
605名無しさん@そうだ選挙にいこう:2014/06/10(火) 12:17:48.44
>>604
初心者が無理に式をまとめようとするな

入れ子で長い式を書かずに、作業セル使って式を分解しろ

=関数A(関数B(関数C(A1)))

では、エラーが出てもどの関数部分に問題があるのか解らないが

=関数C(A1)
=関数B(A2)
=関数A(A3)

とすれば、どこでエラーが出てるか、どこを直すべきか一目瞭然
606名無しさん@そうだ選挙にいこう:2014/06/10(火) 14:08:45.13
>>604
条件が不成立の場合は「否」じゃなくて「偽」という

VLOOKUPでFALSEを指定した時、一致する物がなかったらエラーになる
つまり一致する物があってもなくてもISBLANKの結果は常に偽で、G8に何が入っていようとこのIFは常に偽になる
エラーの時も偽になるんだから、エラー値に対して&演算子は使えないから、この数式はエラーになる

つまり根本的にロジックがおかしい

>>605
この程度のミスが一目で見抜けないような初心者が無理にレスしようとするな
607名無しさん@そうだ選挙にいこう:2014/06/10(火) 15:28:46.13
608名無しさん@そうだ選挙にいこう:2014/06/10(火) 15:57:31.58
>>604
その式は、一覧表のA列にG8と一致する物が無い時にエラーになる
そうでなければ正常に結果が出てる
ISERRORでエラーの判定を追加すればいいと思うよ
609名無しさん@そうだ選挙にいこう:2014/06/10(火) 17:00:09.67
>>603
1行目は項目名、2行目以降がデータとして
E2:=IF(D2="","",MAX(OFFSET(B$1,MATCH(D2,A:A,0)-1,,COUNTIF(A:A,D2))))

ピボットテーブルで求めるなら
行ラベル:「日付」
Z値:「出荷量」 (値フィールドの集計方法:最大値)
610609:2014/06/10(火) 20:38:55.22
>>603
求めるのは「コード」だったので訂正。
1行目が項目名、データ入力範囲が2〜100行以内であると仮定して、
E2:=IF(D2="","",LOOKUP(1,0/((A$2:A$100=D2)*(B$2:B$100=MAX((A$2:A$100=D2)*B$2:B$100))),C$2:C$100))

・ピボットテーブル
行ラベル:「日付」「コード」
Σ値:「出荷量」 (値フィールドの集計:最大値)
「コード」>値フィルタ>トップテンフィルタ>"最大値/出荷量"の上位1位
611名無しさん@そうだ選挙にいこう:2014/06/10(火) 22:34:01.42
Excel2010でリボンの桁区切りをクリックすると小数点以下が2桁くらい表示されるようになるんだけど、前からこんな仕様だったっけ?
小数点以下の表示なしで桁区切りだけしてくれるように変更できない?
612名無しさん@そうだ選挙にいこう:2014/06/10(火) 22:48:00.69
>>611
自分のPC(Win7pro 64bit Excel2010 バージョン14.0.7116.5000 32bit)だと
標準書式だろうが、数値で小数点以下の桁数を指定していようが
小数なしの表示になりますよ。
613528:2014/06/11(水) 07:56:23.74
VBAでがんばったけど
データ数多くてオーバーフローしちゃったよ\(^o^)/


1048576以上使いたいときはもうアクセス使うしかないのかな?
614名無しさん@そうだ選挙にいこう:2014/06/11(水) 08:03:45.22
いや、いくらでも他の方法はあるけど、アクセス使うのが一番簡単だと思う
615名無しさん@そうだ選挙にいこう:2014/06/11(水) 09:15:52.00
>>613
とりあえず名前か一行目に>>516,>>519,...
と全部のレス番付けた方がいい

しかしあれだな、商品の数にもよるが100万行超えるような処理は途方もなさすぎる
もうちょっと何かしらの方法で商品を切り捨てたほうがいい、というか切り捨てないと永久に終わらんと思う
616名無しさん@そうだ選挙にいこう:2014/06/11(水) 10:55:07.29
>>609
>>610
ありがとうございます。
617名無しさん@そうだ選挙にいこう:2014/06/11(水) 12:55:14.43
windows8.1
excel2010

同じシート内で
たとえば、B列全部をA列へ
コピペ、ベースとしようとすると
動作を停止しましたとか出て
excelが再起動する。
だから、作業できない。
重たいみたい。
618名無しさん@そうだ選挙にいこう:2014/06/11(水) 13:17:10.05
>>617
列全体のコピペ・カトペはしょっちゅうやってるけど、それで止まったことはないなあ
よっぽどたくさん数式とか入ってるのか
619名無しさん@そうだ選挙にいこう:2014/06/11(水) 13:34:55.40
>>618
行にしたら、15000列ぐらい。。。
サイトつくりのために、キーワードを書きだしたら
そうなってしまった。

たぶん、メモリが限界を超えているのかな?
ハードディスクの空きは十分あるけど。
620619修正:2014/06/11(水) 13:35:57.29
行にしたら、15000列ぐらい。。。



行にしたら、15000行ぐらい。。。
621名無しさん@そうだ選挙にいこう:2014/06/11(水) 14:36:19.49
行が3000くらいでも落ちるな...
622617:2014/06/11(水) 15:56:28.77
いま、いろいろ調べてみているけど
そうも、そのファイルだけが破損しているような気がする。。。
623617:2014/06/11(水) 15:57:38.73
別のファイルでは、行が多くても、エラーは起こらないのに。。。

やはり、そのファイルだけが破損しているのか?
624名無しさん@そうだ選挙にいこう:2014/06/11(水) 19:27:07.97
>>617
破損してるなら勝手に作りなおせば
625名無しさん@そうだ選挙にいこう:2014/06/11(水) 19:46:21.50
>>624
作り直した。うまくいったぽい?たぶん。
626名無しさん@そうだ選挙にいこう:2014/06/11(水) 22:39:07.85
>>614-615
自己解決!
>>533に教えてもらったやり方を
2次元で集計しながら作ったら100万行なんていらんかったよ!

でもまぁ今後もっと多くのデータを扱う可能性もあるから
がんばってアクセスも勉強してみる!

ありがとうな!!
627名無しさん@そうだ選挙にいこう:2014/06/12(木) 09:37:24.92
検索してみたのですが、まだわからないので教えてください。
EXCEL2003でセルの文字列でuser_pref("mail.identity.id10.useremail"という文字列から数字のみを抽出して数字に変換する方法を教えてください。
628名無しさん@そうだ選挙にいこう:2014/06/12(木) 11:32:51.04
>>627
=MID(A1,28,2)
629名無しさん@そうだ選挙にいこう:2014/06/12(木) 12:21:39.58
>>628
情報ありがとです。確かに10と出るのですが数字の部分は2桁〜3桁がランダムである状態で

A1には10と出ているのですが、式ではなく10という数字を抽出したいのです。方法ありますでしょうか?
630名無しさん@そうだ選挙にいこう:2014/06/12(木) 12:22:23.14
>>629
1桁〜3桁がランダムな数字
631名無しさん@そうだ選挙にいこう:2014/06/12(木) 13:12:50.71
抽出ってなに?
=SUBSTITUTE(SUBSTITUTE(A1,"user_pref(""mail.identity.id",""),".useremail""","")
632名無しさん@そうだ選挙にいこう:2014/06/12(木) 13:29:45.03
>>629
セルに「数字の部分を取り出す数式」じゃなくて「数字そのもの」が入ってほしいならVBA使わないと無理だけど、なんでそんなことしたいのさ
別に数式でも困ることはあんまりないと思うんだけど

とりあえず「取り出す数式」の方で回答
=IFERROR(MID(A1,28,3)*1,IFERROR(MID(A1,28,2)*1,MID(A1,28,1)*1))
633名無しさん@そうだ選挙にいこう:2014/06/12(木) 13:40:28.14
>>631-632

情報ありがとです。

=MID(A1,MATCH(0,INDEX(ISERR(-MID(A1&0,COLUMN(1:1),1))+0,0),),COUNT(INDEX(-MID(A1,COLUMN(1:1),1),0)))

今自分でもずっと調べてて、これを入れたら式は何とか出来ました。結果も出たのですが、そのままやっていくつかあるものを並び替えたら、うまくいかなかったため数字を出力して
やったらうまくいくのではないかと思いまして・・・
634633:2014/06/12(木) 13:43:23.46
並び替えた時に

1
2
10
100
3
5

とあった場合

1
10
100
2
3
5

となんてしまうのです・・・?セルは全て書式も数値にしてるのですが、今やっても並び替えがうまく出来ませんでした。
635名無しさん@そうだ選挙にいこう:2014/06/12(木) 13:51:39.71
>>634
全体をint
or
最後に+0
636名無しさん@そうだ選挙にいこう:2014/06/12(木) 14:05:48.82
>>635
ありがとです。全体をintとはセルを数値にするのですか?or +0 をやってセルを数値にしたのですが
やはりうまく並び変わりません。>>634の状態です。
637名無しさん@そうだ選挙にいこう:2014/06/12(木) 14:25:06.16
質問です。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelに他の文書ファイルからコピー&ペーストすると、規定値では「元の書式を保持」になります。
そこで、規定値を「貼り付け先の書式に合わせる」にすることはできるのでしょうか?
コピペする度にオプションから「貼り付け先の書式に合わせる」を選択するのはとても面倒です。

よろしくお願いします。
638636:2014/06/12(木) 14:51:36.49
全体にint()を被せて今やったのですが、やはり同じで>>634のような形で並び変わります。先ほど、テキストファイルに落としてやった所、うまく出来ました。
テキストに落としてみた所、スペースが入っていた関係なのでしょうか?まだよく分かっていません・・・?スペース削除できれば何とかできるのでしょうか?
お騒がせしました。ありがとです。
639名無しさん@そうだ選挙にいこう:2014/06/12(木) 15:13:03.60
>>638
俺が作った632の数式は試したか?
640名無しさん@そうだ選挙にいこう:2014/06/12(木) 16:04:16.58
>>638
int(trim(
641636:2014/06/12(木) 16:20:19.97
>>639
はい。試しましたが、数式で認識できないテキストが含まれていますとでてできませんでした。

一応>>633で数字は出力する式は出来たのですが、>>634の状態です。

>>640
これも試したのですが、>>634の状態です。そして>>640を被せたものに=SUBSTITUTE(SUBSTITUTEint(trim(式)" ","")," ","")で
全てのスペースを削除してもおなじで、テキストファイルに移してから再度エクセルにもどしてからしか出来ませんでした。未だに原因は分かってません・・・



皆さんいろいろ情報ありがとでした。
642名無しさん@そうだ選挙にいこう:2014/06/12(木) 18:59:10.21
>641
ふりがなが振られているとか
phonetic()で確認してみて
643名無しさん@そうだ選挙にいこう:2014/06/12(木) 19:27:28.16
>>641
intは一番外側
644名無しさん@そうだ選挙にいこう:2014/06/12(木) 20:26:49.59
>>641
俺が原因を調べてやるから、その設定ファイルみたいなのが入ったExcelのブックをアップロードしてくれ
645名無しさん@そうだ選挙にいこう:2014/06/12(木) 21:52:02.29
>>641
cleanも
646611:2014/06/13(金) 13:44:35.38
>>612
そうです、それが本来あるべき姿なのです。
だからこそ私は知りたい、解決方法を。
647名無しさん@そうだ選挙にいこう:2014/06/13(金) 14:12:55.38
ユーザー定義にでもなってるんじゃない
648名無しさん@そうだ選挙にいこう:2014/06/13(金) 21:36:20.29
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 無理
【4 VBAでの回答の可否】 否


ある列の値が、大きい方からいくつか(上位5-6個ぐらい)であるような行を、
抜き出して、その値でソートされた別の表を作るやり方。

教えて。
649名無しさん@そうだ選挙にいこう:2014/06/13(金) 22:27:52.41
スレチだったらすみません。
お客さんに提出する=印刷する=体裁を整える必要のあるExcel資料なんですが、やはり1列のセル幅を一定にし、必要に応じてセルを結合するのが一般的ですかね?
結合すると編集しにくいし関数もおかしくなるのでセル幅の調整で対応出来たらいいなと思うんですが…
650名無しさん@そうだ選挙にいこう:2014/06/13(金) 22:47:27.30
>>648
一位の列をrank()で抜き出してindex()match()でデータを引っ張る
>>649
なんでもいいと思う
俺はセルの結合は基本、使わない。一時的にしか使わない資料ならバンバン使うけど
見難いって言われてから変えればいいんじゃない
651名無しさん@そうだ選挙にいこう:2014/06/14(土) 01:09:58.00
>>649
データ用のシートと観覧用のシートを別にすればいいんじゃね?
652名無しさん@そうだ選挙にいこう:2014/06/14(土) 05:10:52.29
見栄え良く仕上げるのにexcelを使うなんて...
653名無しさん@そうだ選挙にいこう:2014/06/14(土) 08:54:54.42
>>652
君は何を使うのかな?恥ずかしがらずに答えてみよう!
654名無しさん@そうだ選挙にいこう:2014/06/14(土) 10:51:42.11
>>649です
セルの結合、やっぱり使いたくないし、使わずに済む方法ありますよね
今の職場の人達がみんな体裁整えるためにセル結合する派でやりにくくて…
それが一般的なのかなと思い質問させてもらいました
波風立てなくないし、他の人に合わせるしかなさそうですけど…
ありがとうございました
655名無しさん@そうだ選挙にいこう:2014/06/14(土) 11:06:13.51
>>653
652じゃないが、お客さんに使って貰うものだとAccessでフォーム作ることが多いな
印刷に拘る場合は、印刷結果をHTMLで吐き出して、それを内部的に読み込んで印刷する場合もある

あとはExcel使う場合でも、入力=ユーザーフォーム、データ=非表示のワークシート、結果=ワークシート
ってすれば、結果シートではセルの結合を多用しても弊害が出ないし、お手軽だ
656名無しさん@そうだ選挙にいこう:2014/06/14(土) 11:33:12.69
>>655
ありがとうございます
個人的にはAccessもユーザフォームを使用する方法も目から鱗ですが、職場の人達に受け入れられるとは思え難く…
何分OSはXP、Officeは2003、PCよりも紙と電卓の方が偉いという価値観の人達なのでw
657名無しさん@そうだ選挙にいこう:2014/06/14(土) 12:08:51.48
>>655
印刷するって、PCで見るのダルいから会議用に紙に出力するって意味じゃね?
なんか印刷所で印刷して製本とか、そんな高貴なもんでは無い予感

>>656
ウチも「盗まれて困るデータ無いから!」の一言で、全XPの残留が決まったよ…
そういう問題じゃないんだけどね
踏み台とか色々あるしさ
658名無しさん@そうだ選挙にいこう:2014/06/14(土) 12:22:01.22
ヒント:印刷に拘る場合は
659名無しさん@そうだ選挙にいこう:2014/06/14(土) 12:42:41.53
印刷するのは、お客さんに提出するためです
業界の慣習として、成果物を提出する時はExcelやCADなどの形式ではなく、それらを一旦PDFなどのドキュメント形式にしてから提出します
なので見た目の美しさが何より重要みたいです
なのでセル結合しない方がいいんじゃ?と言ったところ「お前の為の資料じゃなくてお客さんのための資料なんだぞ頭おかしいのか」罵倒されましたw
作業者の負担を減らして質を上げるの大事だと思うんですけどねー、お客さんのためにも

今ググって初めて知ったんですけど、この問題ってExcel方眼紙って呼ばれてるんですね
今までこんな形式見たこと無かったので知りませんでした
660名無しさん@そうだ選挙にいこう:2014/06/14(土) 12:49:36.21
>>659
昔大学で使ってたファイルはまさに方眼紙のように「A,B,C」の方も詰めて正方形になったものを使うのがデフォだった
で、やたら結合されまくったセルが目立った
661名無しさん@そうだ選挙にいこう:2014/06/14(土) 13:23:48.40
Excel方眼紙の予測検索が「死ね」「撲滅」
こんなんメリットよりデメリットの方がデカイと思うんだけどなぁ
662名無しさん@そうだ選挙にいこう:2014/06/14(土) 14:26:15.84
方眼紙としてだけ使うならいいんじゃねーの?
そこにexcel本来の機能を使おうとすると激しく激しく使いずらいってだけで。

個人的には、体裁を気にする資料にexcel使うとか有りえないけど。
画面に見えてるママ印刷できない、拡大・縮小で見え方が変わる、オートシェイプの位置がずれる…
印刷前提ならwordのがマシ
663名無しさん@そうだ選挙にいこう:2014/06/14(土) 16:23:22.78
ワードに差込印刷より、エクセルだけで完結させる方が楽。
罫線はエクセルの勝ち。
100パーセントで固定して、Windowsの画面表示倍率も合わせておけば、印刷のとき端末が違っても問題ない。
図を入れるセルもサイズを大きくしなければ、ズレも大したことない。
664名無しさん@そうだ選挙にいこう:2014/06/14(土) 18:19:59.66
>>663
それ全部wordのほうが綺麗にできるし。
もいかしてwordだと図のサイズ固定ができないと思い込んでる?w

それぞれ用途にあったアプリケーションを使えばいいってだけ。
665名無しさん@そうだ選挙にいこう:2014/06/14(土) 18:37:02.63
>>664
実はワードはあまり使いたくない派。
一太郎に慣れすぎて、かなり不自由なワープロソフトだと思ってる。
仕事上、仕方なく使うだけ。
罫線表のフレキシブルさは、ワードよりエクセルでしょ?
666名無しさん@そうだ選挙にいこう:2014/06/14(土) 18:38:29.10
使いたくないじゃなくて
使いこなせない、だろ
667名無しさん@そうだ選挙にいこう:2014/06/14(土) 19:13:30.70
何回か転職したけど、どこもワードはほとんど使っていない。
ただ、使う企業は極端に使う。専用システムのある大企業はエクセルすらほとんど使わない。
668名無しさん@そうだ選挙にいこう:2014/06/14(土) 19:45:38.84
>>666
確かに、使いこなせない。
でも、例えばタックシールにしても、
エクセルの方がセル高や幅の微調整が出来るから、慣れれば自在に合わせられる。

項目が多いのを扱うときは、
基礎表(入力用)、演算、出力(印刷)
の3つに分けて、
基礎表の一連番号からvlookupで演算表から読み出し。

連続印刷は、マクロ。
あと、基礎表(入力用)の入力開始セル選択をマクロで自動化
がパターン化してる。
ユーザーフォームは使わず、
横一覧の表に入力の方が、データの整合性も一目で分かるから好きだな。
その点が>655 と違うね。
669名無しさん@そうだ選挙にいこう:2014/06/14(土) 19:47:37.67
>>668
完全に同意
エクセルは印刷とプレビューのズレがなくなれば最強なのにな
670名無しさん@そうだ選挙にいこう:2014/06/14(土) 20:13:20.84
>>668
Excel は帳票の上と下で違うフォーマットの表があったりするとすごく面倒だからなぁ
671名無しさん@そうだ選挙にいこう:2014/06/14(土) 20:20:00.74
>>670
そう?
書式にしても
データにしても、
一意の読み出しのためのコードを作って、
上下で別の括りの演算表領域を作ってやれば良い。
書式は、かなりの部分は条件付き書式で対応可。
672名無しさん@そうだ選挙にいこう:2014/06/14(土) 21:39:38.91
>>668
?wordはセル高や幅の微調整ができない
○wordでのセル高や幅の微調整の仕方を知らない

言葉は正しく使おうな。
673名無しさん@そうだ選挙にいこう:2014/06/14(土) 21:58:16.31
>>672
出来るの?
ワードで?
674名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:03:28.73
>>671
こう言うやつが面倒だって話

┌────┐
│    │
└────┘

  ┌─────┐
  │     │
  └─────┘

>>673
何で出来ないって思っちゃうのかすごく不思議
表のプロパティとか見たことないの?
675名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:03:44.68
>>672
>wordはセル高や幅の微調整ができない
どこに書いてある?
レス番教えて。
676名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:10:20.16
>>673
あんな印刷に特化したソフトでなぜできないと思い込むんだ?
むしろそっちのほうが不思議
罫線の種類もエクセルより豊富
677名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:11:43.36
>>675
>>668の3行目に
>エクセルの方がセル高や幅の微調整が出来るから、
って書いてあるよー
678名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:13:17.82
wordもexcelも両方使いこなせるにこしたことないね。
職場ではたいがい入ってるし。
accessは小さい会社だとないからね。
679名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:17:28.17
>>677
>>668にはエクセルの方が細かく調整出来るということで、
wordで出来ることを否定してないよね。
680名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:23:26.77
>>676
ワードでの、微調整のやり方、教えてくださいm(__)m
681名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:27:26.65
>>674
そのセルに値を入れるの、
A列にROW() 1行目にcolumn()
入れとけば、簡単に出来るよ?
682名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:43:55.97
まぁwordでもインデント、差し込み印刷ぐらい知っておけば大体どうにかなる
あと最終手段のテキストボックスが最強。これさえ知ってれば何とでもできるわ
知らないと余計なとこで時間とられてストレス食う
683名無しさん@そうだ選挙にいこう:2014/06/14(土) 22:44:24.28
ストレス食うってなんだ
まぁいいや
684名無しさん@そうだ選挙にいこう:2014/06/14(土) 23:02:53.09
>>680
表のプロパティって書いてあるでしょ、あれ見てわからないの?
685名無しさん@そうだ選挙にいこう:2014/06/14(土) 23:04:59.34
>>680
wordスレもあるし。
excelにこだわらず両方使いこなせる方が色々捗るよ。
686名無しさん@そうだ選挙にいこう:2014/06/14(土) 23:08:10.41
>>679
そうか?

まるで朝鮮人のような噛み付き方だなw
687名無しさん@そうだ選挙にいこう:2014/06/14(土) 23:09:31.45
>>681
値を入れる話なんてしてないし

> そのセルに値を入れるの、
> A列にROW() 1行目にcolumn()
> 入れとけば、簡単に出来るよ?

意味不明だし

この手のずれた表はセル結合しないとダメでしょ。

┏━━━━┓
┃ │  ┃
┗━━━━┛
│ │  │
│ ┏━━━━━┓
│ ┃  │  ┃
│ ┗━━━━━┛
688名無しさん@そうだ選挙にいこう:2014/06/15(日) 04:28:20.38
>>687
結合するしないは、セルに入れるのが数値か文字か、表示形式にもよる。
逆に、そんな表をワードで作る方が骨が折れそう
689名無しさん@そうだ選挙にいこう:2014/06/15(日) 07:39:51.39
>>688
> 結合するしないは、セルに入れるのが数値か文字か、表示形式にもよる。

意味わからん。
セルいっぱいまで表示しようとしたら結合するか選択範囲で中央表示するしかないでしょ。
で、問題は上の表をちょっと大きくしようとしたらせっかく調整した下の表まででかくなっちゃうんだよな。

> 逆に、そんな表をワードで作る方が骨が折れそう

ワードは各々の表が独立してるから
690名無しさん@そうだ選挙にいこう:2014/06/15(日) 08:06:14.26
>>689
>638の内容は
文字列なら、折り返さなければ右側のセルにはみ出して表示出来る。
数値ならセルをはみ出せない。
1セル内で縮小表示で済ませることも出来る。
とか、当たり前に想像出来ないか?
691名無しさん@そうだ選挙にいこう:2014/06/15(日) 08:58:26.89
>>690
> 文字列なら、折り返さなければ右側のセルにはみ出して表示出来る。

これはいいとして、それ以外は
> セルいっぱいまで表示しようとしたら
って言う条件読めないアホですってこと? (w

そもそも、>>674 の問題はそこじゃないし。
692名無しさん@そうだ選挙にいこう:2014/06/15(日) 09:13:55.22
>*691 勝手に条件を後付けして、なに言ってやがる
>674 >687 どこに「セルいっぱい」と書いてあるか?
>>689 で言い出しただけじゃねーか。
それで他人をアホ呼ばわりとは、最低な奴だな。
問題提起したいなら、最初から明確に書いとけよ。
クレーマーかお前は。
693名無しさん@そうだ選挙にいこう:2014/06/15(日) 09:14:50.02
>>691
な。>*になってた。
694名無しさん@そうだ選挙にいこう:2014/06/15(日) 09:54:39.88
そのやり取り、どーーーでもいいわ
695名無しさん@そうだ選挙にいこう:2014/06/15(日) 10:09:23.80
>>692
> >>689 で言い出しただけじゃねーか。

なら、>>690 で書けよ...
そもそも問題提起はそっちじゃないことぐらいわかりそうなもんなんだが...
696名無しさん@そうだ選挙にいこう:2014/06/15(日) 13:41:46.84
不毛なやりとりに参加するつもりは無いが、
もともとは体裁が大事な表の話題だろ。
縮小して1セル表示はフォントの大きさかわるし、
左にはみだしたら、事前に想定した結果が得られない。
本気でやるなら文字数制限するとか、マクロでなんとかする必要がある。
それでもプロポーショナルフォントなんか使ってると、どういうコード書けばいいか見当もつかん。
697名無しさん@そうだ選挙にいこう:2014/06/15(日) 13:58:05.20
>>663
どうでもいいけどExcelってcm単位で指定しても印刷するとサイズ変わるんだよね…
俺の印刷の仕方がおかしいのかな??
何度も印刷して、Excel側の単位は無視して出力サイズにあわせて作らないとダメなところから、印刷すること前提ではないアプリケーションなんだなぁとは思ってた。
698名無しさん@そうだ選挙にいこう:2014/06/15(日) 14:45:17.23
>>696
> それでもプロポーショナルフォントなんか使ってると、どういうコード書けばいいか見当もつかん。

VBA だから Win32API の DrawText とかでやることはできるけど、そこまでするなら Cristal Reports を入れるとか、そこてのものを作った方が楽
699名無しさん@そうだ選挙にいこう:2014/06/15(日) 14:47:30.16
>>697
確かに、図形でもcm、mm単位で指定出来るのに、印刷したら微妙にサイズが変わるね。
既存の紙媒体の様式に合わせて数字や文字列を印刷するときは、何回か印刷と位置合わせをしないといけない。
複雑な様式だと、スキャナーで取り込んで、
100%サイズでエクセルに貼り付けて、
図形で四角を描いて、そのあとでセルを四角に合わせて、式入れて、で位置合わせ・・と、かなり手間はかかる。
でも計算を伴うもので、何回も使う様式なら、1回合わせとけば後は手書きより楽だし格段に効率が上がるからね。
700名無しさん@そうだ選挙にいこう:2014/06/15(日) 16:16:26.15
>>697
結局、きれいな印刷を行うには
エクセルで文書を作成し、三四郎で整えて印刷、
提出先によっては更にPDFにすることになる。

まぁ罫線に拘るのは日本人くらいか。
701名無しさん@そうだ選挙にいこう:2014/06/15(日) 17:35:16.78
>>700
>まぁ罫線に拘るのは日本人くらいか。
そうか?
702名無しさん@そうだ選挙にいこう:2014/06/15(日) 18:56:48.66
>>701
ガイジンから見ると日本人は異様に罫線大好き民族らしい
ネットでの知識なんでアレだけど、まぁ確かに多いっちゃ多いような気もする
703名無しさん@そうだ選挙にいこう:2014/06/15(日) 19:03:23.75
>>697
最初から三四郎で作る方が速い。
エクセルは見栄えが悪い。
おおざっぱに出来るか、ぐちゃぐちゃになる。
704名無しさん@そうだ選挙にいこう:2014/06/15(日) 19:42:05.42
相談所じゃなくて雑談所になってますね
705名無しさん@そうだ選挙にいこう:2014/06/15(日) 19:44:25.46
質問したい奴は流れをぶった切って質問すればいい
質問がないときに雑談してて何が悪い!
ExcelアイコンがなぜEじゃなくXなのかについて、もっと考えたほうがいいぞ?
706名無しさん@そうだ選挙にいこう:2014/06/15(日) 19:52:08.82
>>705
質問しようと思ったがぐぐったら分かった
707名無しさん@そうだ選挙にいこう:2014/06/15(日) 20:22:33.49
>>705
http://peace.2ch.net/test/read.cgi/bsoft/1354358619/
こういうスレあるんで。

あと専門板は基本雑談禁止ね
あくまで基本だからうるさく言う気はないけど、
ほどほどっていうのをわきまえようね
708名無しさん@そうだ選挙にいこう:2014/06/15(日) 20:23:29.61
>>703
三四郎は、一太郎8くらいの頃だったか、使ってて気に入ってたんだけど、マクロの動作が遅くて使うのをやめた。
確かにかゆいところに手が届く感じだったなー
709名無しさん@そうだ選挙にいこう:2014/06/15(日) 20:23:32.19
>>705
うちのエクセルのアイコンは真っ白だけどな
アイコンの修復方法をネットで探したけど、どれを試しても効果なかったし
710名無しさん@そうだ選挙にいこう:2014/06/15(日) 20:30:59.40
印刷プレビューで確認したらOKなのに
印刷したら、変なとこで改行されてセルの外にはみ出て印刷されてない・・・
一番肝心な数値なのに・・・
あと既定で設定しているプリンタドライバが違うと印刷がずれるのも何とかならんの?
711名無しさん@そうだ選挙にいこう:2014/06/15(日) 20:54:46.75
>>710
プリンタドライバはエクセルに限らず、印刷のズレに直結する
プリンタドライバってのはプリンタにデータを送るプログラムだからな

pdfが評価されているのはプリンタドライバに左右されにくいから、というのも合わせて覚えておくと良い
712名無しさん@そうだ選挙にいこう:2014/06/15(日) 22:24:35.79
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

if関数やvlook関数を使わずに
(別のセルにデーターベースを作成せずに)

A1セルが0のときは"○○"
A1セルが1のときは"??"
A1セルが…のときは"△△"
のようにできる関数はありませんか?

if関数の場合は、数が増えると場合分けが増えすぎて見た目ややこしいこと
(修正の際にミスしやすい)
vlook関数は他のところにデータベースを作らなければいけないので
コピーするときに一緒にデーターベースもコピーしなければいけなくて
ミスを誘発しやすいこと
choose関数は1からの連番しかダメなこと
から
使うのを避けたいのです
713名無しさん@そうだ選挙にいこう:2014/06/15(日) 22:45:26.14
>>712
choose()
714名無しさん@そうだ選挙にいこう:2014/06/15(日) 22:45:54.51
あ、ごめん最後まで読んでなかった
715名無しさん@そうだ選挙にいこう:2014/06/15(日) 23:01:03.66
>>712
と思ったけどやっぱりchoose
choose(a1+1,...)
のようにすれば0開始でも対応できる

ifでネストが増えすぎるのは未熟、もしくは作業列を使うべき。
vlookupなら単純に絶対参照にすれば良いだけの話
716名無しさん@そうだ選挙にいこう:2014/06/15(日) 23:13:04.67
>>712
他セルを参照しないって条件ならそのセルで完結しないといけない。
素直にifかchoose使っとけ、な?
717名無しさん@そうだ選挙にいこう:2014/06/15(日) 23:13:38.87
>>712
配列数式
718名無しさん@そうだ選挙にいこう:2014/06/15(日) 23:50:16.05
>>710
Excelで印刷が思ったとおりに行かないのは、なんともならん
経験を積んで無理パターンを覚えて回避してくしかない
719名無しさん@そうだ選挙にいこう:2014/06/16(月) 00:04:20.95
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
エクセルの関数内で配列を使う方法を教えて下さい
=MATCH(1,{1;5},0)
みたいな漢字だったと思います。配列定数ではありません。
720名無しさん@そうだ選挙にいこう:2014/06/16(月) 03:05:28.69
>>715
chooseは連番しかダメなのがダメです。
122→葛飾区
123→江戸川区
201→八王子市
のようなデータだと、無いのが分かっているのに
124から200まで空白データが必要になってしまいます。

ifでネストが増えすぎるのは未熟というのは、その通りだと思うので
使いたくありません。

vlookupしかないのですね…
複雑になるから使いたくないのですが…

ありがとうございました
721名無しさん@そうだ選挙にいこう:2014/06/16(月) 04:00:23.84
>>720
単純なCHOOSEがだめな理由も最初からちゃんと書けよ

ちなみにCHOOSEにはこんな使い方もあるんだぜ
=CHOOSE(FIND(A1," 122,123,201")/4,"葛飾区","江戸川区","八王子市")
ただしCHOOSEの制限で変換できるデータは254個まで

もっと大量に変換したい場合は、FINDとMIDを使う方法がある
数式の長さの制限が約8000文字だから、対応できる項目数は4文字×980個ぐらいまで、たぶん
=TRIM(MID("葛飾区 江戸川区八王子市",FIND(A1,"122,123,201"),4))

ただし、こんな長い式をいくつも入れたらブックが重くなるので覚悟するように
素直にVLOOKUPかマクロを使った方がいいと思うけどなあ
722721:2014/06/16(月) 04:05:08.53
おっと、122の前にはスペースが3個入ってたんだけど、2ちゃんの仕様で数式がおかしくなった
捨てる文字は別に何でもいいので
=CHOOSE(FIND(A1,"***122,123,201")/4,"葛飾区","江戸川区","八王子市")
とでもしておくか
あとは必要に応じてエラー対策や数字の桁揃え処理を追加すればええ
723名無しさん@そうだ選挙にいこう:2014/06/16(月) 05:06:08.77
>>721
それが欲しかった!
find
すごいです
ありがとうございました
724名無しさん@そうだ選挙にいこう:2014/06/16(月) 10:30:56.18
初心者って、作業セルやデータベース作るのを嫌って
無駄に長い数式だけで完結させる方法が好きな奴が多いよね
725名無しさん@そうだ選挙にいこう:2014/06/16(月) 10:35:51.64
>>720
vlookupって、初めて使った時はすごいめんどそうだって思ったけど、使ってるとかなり便利だと思うよ。
配列数式とかもっと使えばいいのに。
726名無しさん@そうだ選挙にいこう:2014/06/16(月) 15:26:17.56
>>725
VLOOKUPは重いから、INDEX(MATCH())のほうがいい
シートのデータ数が増えた時、重過ぎて後々泣く事になる
俺はそれで泣いたクチだ
727名無しさん@そうだ選挙にいこう:2014/06/16(月) 15:28:05.41
>>723
FINDは処理が遅いからSEARCHにしとけ
728名無しさん@そうだ選挙にいこう:2014/06/16(月) 17:44:21.26
>>726
こういう情報ってあまり出回らないけど何処で仕入れてくるの?
確かにVlookupまみれのファイルを開くと、データ1コ差し替えると3分くらい再計算しやがるな
やっぱAverageifとかも重たいの?
729名無しさん@そうだ選挙にいこう:2014/06/16(月) 18:10:20.52
このスレに常駐してると死ぬほど知識が増えるよ
Averageifは範囲次第だと思う
730名無しさん@そうだ選挙にいこう:2014/06/16(月) 18:42:33.92
>>728
Excelの計算スピードアップのヒントは、マイクロソフトの公式資料がちゃんとある
http://msdn.microsoft.com/ja-jp/library/office/ff700515%28v=office.14%29.aspx%23Office2007excelPerf_MakingWorkbooksCalculateFaster
731名無しさん@そうだ選挙にいこう:2014/06/16(月) 20:35:48.09
今はEXCELから入った人が多いからVLOOKUPかもしれないけど、
データ数より項目が多い横長のテーブルならともかく、
たいていはデータ数の方が多いから
ただのLOOKUPの方が式が簡単だと思うけどね。
MULTIPLANから使っているとLOOKUPにしちゃうな。
732名無しさん@そうだ選挙にいこう:2014/06/16(月) 21:16:54.46
昇順に並んでないといけないので使いにくい
733名無しさん@そうだ選挙にいこう:2014/06/16(月) 21:18:31.06
INDEX(MATCH())はメンテナンス性が糞だと思ったので重くてもいいからVLOOKUP使う
734名無しさん@そうだ選挙にいこう:2014/06/16(月) 21:41:13.54
一致する値がないと最大値を返してくるからおっかなくてつかえないというのもある
735名無しさん@そうだ選挙にいこう:2014/06/16(月) 21:59:48.17
VLOOKUPならエラー返してくれるから安心
736名無しさん@そうだ選挙にいこう:2014/06/16(月) 22:16:24.27
vlookupで入力の度に待つのが嫌なら自動計算切ればいいのに
737名無しさん@そうだ選挙にいこう:2014/06/16(月) 23:56:41.23
>>730
スピードアップのヒントとかさ…
そもそもEXCEL2010なんて激重なカスソスト作ったM$が悪いとしか言えないわな
LOOとかAOOとかのCalcならどんなに大量のVLOOKUP使っても重くならないのにな
738名無しさん@そうだ選挙にいこう:2014/06/17(火) 05:59:04.96
>>736
VBA使えない場合は、自動計算の設定ってExcel全体に影響しちゃうから弊害が大きくないか?
VBA使えば、EnableCalculationとイベントやボタンでの再計算で弊害無く無駄な再計算を無くせるけど
739名無しさん@そうだ選挙にいこう:2014/06/17(火) 08:35:46.07
>>736
それしてる人みたことあるわ
10以上シート作って一つのシートだけ再計算(shift+f9)
普段の操作がしづらい。入力を間違えてるのかと思う。
その人曰く「慣れてるから平気」だそうで…
740名無しさん@そうだ選挙にいこう:2014/06/17(火) 09:07:52.09
慣れてる人には無問題
むしろなれると楽よ
741名無しさん@そうだ選挙にいこう:2014/06/17(火) 09:31:55.36
>>738
>>739
頻繁に使うならクイックアクセスツールバーに自動と手動を入れておくと便利
742名無しさん@そうだ選挙にいこう:2014/06/17(火) 14:43:32.14
普通に数式リボンにあるじゃん。リボン邪魔派?
743名無しさん@そうだ選挙にいこう:2014/06/17(火) 15:36:26.80
数式を使うシートとデータを入れるシートを別にして
数式を使うシートの自動計算を無効にする
そして、データを入れるシートのWorksheet_Changeイベントでフラグを立て
Worksheet_Deactivateイベントでフラグが立ってれば計算を実行してフラグを伏せる
744名無しさん@そうだ選挙にいこう:2014/06/17(火) 16:02:24.35
>>742
クイックアクセスツールバーに置くと、今の状態が一目でわかるから。
リボンは否定しないけど、あまり使いたくない派です
745名無しさん@そうだ選挙にいこう:2014/06/18(水) 16:15:30.50
Excelで置換とかどうした良いですか?
746名無しさん@そうだ選挙にいこう:2014/06/18(水) 16:29:18.07
>>745
コントロール+エッチ
747名無しさん@そうだ選挙にいこう:2014/06/18(水) 16:54:09.98
>>745 >>746


EXCEL関数で文字列の置換を行う方法 ≪ SUBSTITUTE ≫
http://know-how-tree.com/archives/379
748名無しさん@そうだ選挙にいこう:2014/06/18(水) 18:59:03.76
まあ>>745はまず>>1を嫁ってこった
749745:2014/06/18(水) 19:46:57.82
なに嫁を痴漢する?
いつもしてるわ
750名無しさん@そうだ選挙にいこう:2014/06/18(水) 21:03:21.99
エクセル号での痴漢は簡単、いやいや置換w
751名無しさん@そうだ選挙にいこう:2014/06/18(水) 21:04:16.03
リボン邪魔だね。あんなに広く占められては、画面が狭くなってしまう。
パソコン替えて画面が1600x1200から1920x1080になって益々感じるようになった。
旧バージョン時代もツールバーは出してなかったから、折り畳んで使っているよ。
使用頻度多い操作はキーボードでの手順を覚えているし。
752名無しさん@そうだ選挙にいこう:2014/06/18(水) 21:33:25.51
>>751
2画面はどう?
http://www.dotup.org/uploda/www.dotup.org5134314.jpg
2600*1500(タスクバー除く)、右上、右下が使えない変則型だけどリボンとか気にしたこと無いよ。
ありとあらゆるPC作業で唯一不満なのは、動画の再生。あれだけは角が欠けると残念だからねぇ…

画面が滲んでるのはモザイク掛けるのがめんどくさかったんだ、ごめんね
753名無しさん@そうだ選挙にいこう:2014/06/18(水) 22:25:51.55
なんでそんな変な合わせ方するんだよ
同じ向きで並べりゃいいじゃん
それに今は1台で4000x2000という液晶もあるんだし
754名無しさん@そうだ選挙にいこう:2014/06/18(水) 22:45:02.55
与沢翼氏が、女性を…。   渡邉文男

http://www.tanteifile.com/diary/2014/06/17_01/


与沢もう金玉にウルバリンの爪が当てられている状態だな。
755名無しさん@そうだ選挙にいこう:2014/06/18(水) 23:03:45.23
>>753
割と気に入っててな。年季的な問題もあるが、そもそも不便を感じてない。消費電力もまぁまぁだ。I-ODATAのほうはそろそろヤバイがな。
そしてコスパの問題もあるだろ。このiiyama(XB2374HDS)もI-O DATAも20k以内で購入したはずだ。
その4kx2kっていくらぐらいなんだ?
756名無しさん@そうだ選挙にいこう:2014/06/18(水) 23:44:44.02
>>755
28インチで7万切ったとこ
757名無しさん@そうだ選挙にいこう:2014/06/19(木) 00:33:05.48
>>756
う〜ん、もうちょい、ってそれはいいか
4kx2k、ぐらいあればリボンぐらい余裕で気にならないんじゃないか。買えばいいんじゃないか
758名無しさん@そうだ選挙にいこう:2014/06/19(木) 15:31:05.95
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 NO

下のようなデータがあるとして、
  A   B  C
1|6/1 | 6/2 | 6/3 |
2|鈴木|伊藤|田中|
3|   A|鈴木|吉田|
4|  2|  A|  C|
5|田中|  1|   1|
6|  B|   B|鈴木|
7|  1|   2|   A|
8|吉田|田中|   1|

上から日付→人物→商品(A〜C)→売上(数値)を表しています。
売上が0だった商品は項目ごと消えています。
このデータから、関数だけ使って、各日付の鈴木の売上を商品ごとにまとめたいです。
「鈴木」の項目が無い日もあります。

lookupやoffset関数がうまく使えなくて難儀しています。
一発で目標となる表を作れなくても構いません。
(編集しやすいデータに1度移し変えるというやり方で可。)
お力添え願います。
759名無しさん@そうだ選挙にいこう:2014/06/19(木) 16:23:14.98
>>758
無理
データの並べ方を変えるかVBA可にするか選べ
760名無しさん@そうだ選挙にいこう:2014/06/19(木) 18:10:08.12
そもそも、なんでそんな幼稚でバカみたいなデータの作り方してるんだか

> 編集しやすいデータに1度移し変えるというやり方で可
なら、そこまで自分でやっておけよ
761名無しさん@そうだ選挙にいこう:2014/06/19(木) 21:55:24.18
>759,760
758じゃないですが、どのような形式のテーブルにしたら集計しやすくなるのか教えてください
762名無しさん@そうだ選挙にいこう:2014/06/19(木) 22:15:18.21
普通に正規化すれば良いだけじゃね?
763名無しさん@そうだ選挙にいこう:2014/06/19(木) 22:34:51.88
次にお前は正規化って何ですかと質問する!
764名無しさん@そうだ選挙にいこう:2014/06/19(木) 22:35:32.33
>>761 普通に1行1件にしたらピボットテーブルが利用できます。
http://imgur.com/aFfJnmt 担当者を「A」でフィルターをかけたもの
http://imgur.com/qFBodmv 担当者を「すべて」としたもの
http://imgur.com/A3qIRC0 担当者、日付毎に行ラベルを設定したもの

ただし、>>758への回答にはなりません。
B2:B3、C2:C3の担当者2名?に対応できないからです。
765764:2014/06/19(木) 22:40:12.80
自己レス 画面イメージのurlは↓がいいみたい。専ブラで直接見える
http://i.imgur.com/aFfJnmt.png 担当者を「A」でフィルターをかけたもの
http://i.imgur.com/qFBodmv.png 担当者を「すべて」としたもの
http://i.imgur.com/A3qIRC0.png 担当者、日付毎に行ラベルを設定したもの
766名無しさん@そうだ選挙にいこう:2014/06/19(木) 22:42:58.88
>>758のサンプルデータを正規化するとこうなる

  A   |  B  | C | D
6月1日 | 鈴木 | A | 2
6月1日 | 田中 | B | 1
6月1日 | 吉田 |   |
6月2日 | 伊藤 |   |
6月2日 | 鈴木 | A | 1
6月2日 | 鈴木 | B | 2
6月2日 | 田中 |   |
6月3日 | 田中 |   |
6月3日 | 吉田 | C | 1
6月3日 | 鈴木 | A | 1

A列=日付、B列=名前、C列=品名、D列=個数
このように列ごとに役割が決まっているのが「正規化された表」
767名無しさん@そうだ選挙にいこう:2014/06/19(木) 22:47:27.28
なんて親切な人なんだw
768名無しさん@そうだ選挙にいこう:2014/06/19(木) 22:50:01.74
うちの職場でも>>758みたいな表を作る奴ばっかり。
769761:2014/06/19(木) 23:15:21.50
教えていただいた方々 ありがとうございます。
自分も含めて、後で集計することを考えないで表を作るやつが多い。
大変参考になりました。
770758:2014/06/20(金) 02:23:39.00
たくさんのレスありがとうございます。
どうやら自分にはexcel以前に、正規化の考えができていなかったようなので、
1度その考えでデータを整理する方法を探ってみます。
ありがとうございました。
771名無しさん@そうだ選挙にいこう:2014/06/20(金) 03:57:12.73
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excel2000(標準?)と同じカラーパレットを使いたいのですが
ページレイアウト→配色 で選べるものの中にはないようで
2007-2010というのがあるが少し違うようで
772名無しさん@そうだ選挙にいこう:2014/06/20(金) 05:30:07.99
横長のモニタが主流だと思うのだが、なんでリボンが上についてるのか不思議でしょうがない。
左右に配置すればもっとスッキリすると思うのだがというか、スクロール量が少なくて済むのだが。
みんなけっこう、横長にデータを配置する感じ??
773名無しさん@そうだ選挙にいこう:2014/06/20(金) 08:01:57.39
データが縦長か横長かは、配置の問題ではなく必然で決まる
扱いやすさを無視した独自形式ではなく、ちょっと前に出た正規化を前提に考えればね

そして、横のデータ(フィールド)は極力スクロール無しで見れるようにすべきで
そのためなら、縦のデータ(レコード)は、件数次第でスクロールが必要になるのもやむなし

その上でスクロール量を減らすには、並べ替え、フィルタ、検索、ジャンプ、アウトラインなどの機能を駆使すべき
774名無しさん@そうだ選挙にいこう:2014/06/20(金) 16:36:14.62
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

番号を自動で割り振るマクロを組もうとしています。
ページとしては「顧客情報入力シート」と「顧客情報シート」があり、
「入力シート」で性別や氏名などを入力し、「登録」ボタンを押すと「顧客情報シート」に蓄積されるようにマクロを組みました。

その際、自動的に番号を割り振れないか、と考えています。
例えば「登録年・性別・番号」として、「2014年登録、男、1人目」だとしたら「20141001」みたいに(男なら1,女なら2)
「番号発行ボタン」を「入力シート」に設置できればと思っています。

その際、パターンごとに3通りの挙動をして欲しいです。

・登録年度、性別が新しい場合は通番を1から発行する(例えば2014年登録の男性1人目の場合なら20141001)
・登録年度、性別が同じ場合は順に数字を発行する(上記の場合の2人目なら20141002)
・氏名と生年月日が一緒なら「既に登録されていますが、重複していませんか」とエラーを吐く。

よろしくお願いいたします。
775名無しさん@そうだ選挙にいこう:2014/06/20(金) 18:41:55.85
>>774
とりあえず作ってみてわからないところは聞きに来ればいいんじゃないか
776名無しさん@そうだ選挙にいこう:2014/06/20(金) 19:59:46.29
自動採番する番号のルールがわからない
例えば初回訪問日とか契約日とか
また地域・職種などキーがたくさんありそうなので、
印刷などを考慮すればアイウエオ順とかの連番にするコードで対応できないかと
777名無しさん@そうだ選挙にいこう:2014/06/20(金) 20:12:17.60
>>774
各シートの構成も不明なので 取り合えずヒントのみを
 (もちろん これ以外にも やり方は ある)

既登録かどうかは
 顧客情報シートの名前列を Find検索してヒットしたら
 その行の 生年月日 を比較していけばいいんじゃね
 (先に 生年月日で Findしてもいいけど)

 ※ただ上手く作らんと "山本太郎"と"山本 太郎" は別人判定しかねない


新規発行する時の顧客番号は

  顧客情報シートの 顧客番号 列を Findで逆方向検索
  (検索条件 What:="20141*", 逆方向検索:SearchDirection:=xlPrevious)
  とかしてやれば 結果が
   ・Nothing なら その年度・性別は新規( 20141001 とできる)
   ・該当すれば その顧客番号を +1してやれぱいい

  当然
  顧客情報シートの 年度&性別 でみた時に
  顧客番号列は 昇順 になっている事が必要
  (正確には 年度&性別でみた時に最終登録番号が一番下である必要がある)
778名無しさん@そうだ選挙にいこう:2014/06/20(金) 21:15:10.92
>>774
なに普通に発注してんだよw
779名無しさん@そうだ選挙にいこう:2014/06/20(金) 21:36:37.00
>>774
番号発行ごとにシート検索とか面倒なので、
俺なら年度末と性別をキーにして、今時点の通し番号をcustompropertyに入れとく

氏名、誕生日の一致は、非表示列に式で"氏名yyyymmdd"を持っとく
780名無しさん@そうだ選挙にいこう:2014/06/20(金) 21:39:12.97
custompropertyの健全性?を確保できるならそれでいいんじゃないか
そうでもないなら愚直に番号検索したほうがいい
エクセルで管理する程度の会員数なら一瞬で検索できるだろうし
781777:2014/06/20(金) 22:02:57.44
>>779
それを
非表示の"顧客番号採番管理シート"を作ってもいいかとは後で思った(^^
それが普通かも?
782名無しさん@そうだ選挙にいこう:2014/06/20(金) 22:13:43.90
そこまで手をかけるくらいなら最初からDB使えよって話になるんじゃね
783名無しさん@そうだ選挙にいこう:2014/06/21(土) 00:17:23.89
>>771
それはけっこう難しい
こういうフリーウェアとか使った方が簡単
http://fnya.cocolog-nifty.com/blog/2011/12/excel-2003-exce.html
784名無しさん@そうだ選挙にいこう:2014/06/21(土) 00:53:50.14
職場でセルの色塗りで
赤や青はいいけど
こういうときは水色やピンクと指定したときに
微妙に違う色の水色やピンクをみんなバラバラで選んでるので困っています。
いい解決方法はありますか?

とりあえず過去にバラバラに塗った色を東夷うする方法、
こんごみんなが統一した色を使う方法、
2つの方法を教えてください。
785名無しさん@そうだ選挙にいこう:2014/06/21(土) 00:54:20.90
x 東夷うする
o 統一する
786名無しさん@そうだ選挙にいこう:2014/06/21(土) 01:07:11.70
条件付き書式じゃあかんのか
787名無しさん@そうだ選挙にいこう:2014/06/21(土) 01:31:41.24
>>784
色を統一するには工夫が必要
たとえば、カラーパレットの画面をキャプチャーして印刷して番号を書きこんでおく
それをみんなに配って、「何番で塗って」と指定する

すでに塗ったやつを修正するのはかなり難しい
ある程度はVBAで可能だけど最終的には手作業で仕上げるしかない
788名無しさん@そうだ選挙にいこう:2014/06/21(土) 02:57:55.58
>>784
・別シートや空いてるスペースにカラーパレット作り、手動かVBAで書式のみコピー
・VBAでWorksheet_Change使って強制的に塗り替える
789名無しさん@そうだ選挙にいこう:2014/06/21(土) 03:14:09.66
色に意味を 持たせた悲劇だわな

特にみんなで共通使用するものだったりしたら
各人 色調の感性が違うから この問題に おちいりやすい
790771:2014/06/21(土) 04:25:20.26
>>783
ありがとうございました
791名無しさん@そうだ選挙にいこう:2014/06/21(土) 13:07:34.30
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
エクセル(ワードでもそうだと思いますが)でオートシェイプを利用した
簡単なキャラクターって作ることはできませんでしょうか?
センス的なものもありますが...自分ではできませんでした。
勉強小僧・・・をシンプルにしたものがあればと思っています。
(解説書でここはポイントみたいなキャラクターにしたい)

御教授の程、よろしくお願いいたします。
792名無しさん@そうだ選挙にいこう:2014/06/21(土) 13:25:20.12
793名無しさん@そうだ選挙にいこう:2014/06/21(土) 13:49:34.08
>>791
解説書を買え
794名無しさん@そうだ選挙にいこう:2014/06/21(土) 14:40:10.65
>>791
わざわざオートシェイプで作らんでも
著作権フリーなキャラクター画像を拾ってきて .背景色を透明にしてExcelへ取りこめば?
ぐぐれば一杯転がってると思うぞ

自分も とあるExcelファイルでそうしてる

あとパワーポイントが入ってれば標準のクリップアートから使えそうなの探してくるか
795名無しさん@そうだ選挙にいこう:2014/06/21(土) 17:53:32.36
デザイナーに発注するってのもありだと思うぞ

大きなデザイン会社に発注したら高く付くけど
フリーでやってる個人に依頼すれば、1つ数百円くらいから作ってくれる場合もある
796名無しさん@そうだ選挙にいこう:2014/06/21(土) 19:28:16.67
http://coconala.com/
こういうのもあるよ

なんにしろオートシェイプで書くのは労力に見合わなすぎ
797名無しさん@そうだ選挙にいこう:2014/06/21(土) 19:52:55.23
>>794
イルカは居なくなったのかね?

>>795
ランサーズでググれ
798名無しさん@そうだ選挙にいこう:2014/06/21(土) 20:54:20.82
>>791
因みに背景を透過するフリーソフトならGIMPがお奨め
(スレ違いですが)
799名無しさん@そうだ選挙にいこう:2014/06/21(土) 23:13:16.03
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


エクセルで一括で複数読み込んだ画像を

□□
□□
□□
□□
□□

とか

□□□
□□□
□□□
みたいに

画像同士は重ならず、複数列に渡り等間隔で整列
画像サイズは全部同じ
手動で一つずつ並べる以外の方法ありますか
800名無しさん@そうだ選挙にいこう:2014/06/21(土) 23:23:51.50
あります
801名無しさん@そうだ選挙にいこう:2014/06/21(土) 23:59:19.09
証拠は?
802名無しさん@そうだ選挙にいこう:2014/06/22(日) 00:00:44.33
>>799
ないですね
803名無しさん@そうだ選挙にいこう:2014/06/22(日) 00:27:34.37
>>799
カメラ機能とか駆使すれば何とかなりそうだけど、
素直に画像ソフトなりなんなり使ったほうがよい
804名無しさん@そうだ選挙にいこう:2014/06/22(日) 03:44:45.73
>>799
それをやった上で、画像の端にオートシェイプで@,A,B,…と番号を入れるという
マクロを作ったこと有るけど、VBA使わないとなると完全に自動は無理

ただ、手動で行う上で、それを楽にする方法ならあるな
もしかしたらもうやってるかもだけど、「グリッドに合わせる」を有効にした上で
セルのサイズを画像サイズ+余白サイズの大きさに変更しておくと
画像はセルのグリッド単位でしか動かなくなるから、位置合わせは非常に楽になるし
画像同士の間隔も一定になる
805名無しさん@そうだ選挙にいこう:2014/06/22(日) 08:10:19.46
>>799
マクロ使って並べるしかないなあ。
806名無しさん@そうだ選挙にいこう:2014/06/22(日) 12:10:05.91
全部手動でやるならワードやパワポのが楽
そっちで並べといてからエクセルに移せばええ

どうしてもエクセルだけでやりたいなら、セルの縦横を画像の間隔と同じにしといて「枠線に合わせる」できっちり並ぶ
並べたあとで、必要に応じてセルの間隔を戻しとく
807名無しさん@そうだ選挙にいこう:2014/06/22(日) 12:51:35.94
>>799
書式タブで、オブジェクトの整列するだけじゃないの?
http://www.becoolusers.com/office/objects-align-distribute01.html
808名無しさん@そうだ選挙にいこう:2014/06/22(日) 13:02:34.78
>>807
それでグリッドに整列ってできたっけ?
809名無しさん@そうだ選挙にいこう:2014/06/22(日) 14:19:10.45
>>808
グリッドってなに?
等間隔の整列はできないけど、オブジェクト間の隙間を同じに調整してくれるから、オブジェクトのサイズが同じなら結果として等間隔に整列できるよ。
810名無しさん@そうだ選挙にいこう:2014/06/22(日) 15:34:37.98
2列に配置するか、3列に配置するかとかはどうやって設定するの?
811名無しさん@そうだ選挙にいこう:2014/06/22(日) 16:07:40.30
>>809
グリッドというのは元の質問>>799にあるように2列とか3列に並べる
812名無しさん@そうだ選挙にいこう:2014/06/22(日) 16:26:58.52
>>810-811
ああ、並べるところからやりたいのか
すまん、それは無理だわ
813名無しさん@そうだ選挙にいこう:2014/06/22(日) 17:18:59.85
そういうのを自動化させるのにコンピュータが最適なのに
なんで手動でやろうとするんだ
814名無しさん@そうだ選挙にいこう:2014/06/22(日) 17:29:22.16
>>789
完成どころか色弱で特定の色の違いがわからない人も結構いるから、
色で判別は駄目だよ。
815名無しさん@そうだ選挙にいこう:2014/06/22(日) 18:40:44.71
>>813
自動でできるのに、質問者が条件で不可にしてる
816名無しさん@そうだ選挙にいこう:2014/06/23(月) 12:39:29.82
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

異常終了し次に開くと左側にバージョン管理が表示され
一つ一つ選んで保存していますが
全て最新版(一番最近のver)を使用したい場合
まとめてそのように処理させることはできますか?
817名無しさん@そうだ選挙にいこう:2014/06/23(月) 15:44:44.64
無理
818名無しさん@そうだ選挙にいこう:2014/06/23(月) 19:33:32.59
6.3のような小数点以下1ケタの数値を0.08の倍数にまるめたいとき、CEILING関数を使用すると6.32となってむしろ詳細な値となってしまいます。
この場合6.4となるのが理想なのですが、上手い関数の使い方はないでしょうか。
819名無しさん@そうだ選挙にいこう:2014/06/23(月) 19:35:23.17
テンプレ使っていませんでしたので再度。申し訳ないです。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

6.3のような小数点以下1ケタの数値を0.08の倍数にまるめたいとき、CEILING関数を使用すると6.32となってむしろ詳細な値となってしまいます。
この場合6.4となるのが理想なのですが、上手い関数の使い方はないでしょうか。
820名無しさん@そうだ選挙にいこう:2014/06/23(月) 19:52:56.81
いやだって「0.08の倍数にまるめたい」なら、そういう値になるのは必然だろ?
それじゃダメだってなら、そもそも君がやりたいことは「0.08の倍数にまるめたい」とは全く別物ってことになるので
それなら本当は何がやりたいのかを書こうよ
821名無しさん@そうだ選挙にいこう:2014/06/23(月) 20:00:35.52
>>819 小数点第2位を切り上げるってことなら・・・
A1に6.3、B1に0.08が入っているものとして、C1に
=ROUNDDOWN(CEILING(A1,B1)+(CEILING(A1,B1)>A1)*0.1,1)
って入れたら希望に沿った値が出ます。
D1には =CEILING(A1,B1) って入れて、6.3の部分を4.2〜6.3まで
0.1きざみで試したけどいいみたい。
もっとスマートな方法、あるかな?
822名無しさん@そうだ選挙にいこう:2014/06/23(月) 20:10:49.27
>>819
値が0.08の倍数であって小数点以下1ケタの数値にしたいなら

0.08の倍数である 0.4の倍数でまるめるしかないんじゃね
0.4 0.8 1.2 1.6・・・・・・6.0 6.4 6.8 7.2・・・・・・

6.0 → 6.0
6.1 → 6.4
6.2 → 6.4
6.3 → 6.4
6.4 → 6.4
6.5 → 6.8
6.6 → 6.8
6.7 → 6.8
6.8 → 6.8
6.9 → 7.2
7.0 → 7.2
823821:2014/06/23(月) 20:11:11.80
アホや・・・Rounddownを書きながら、Roundupに気付かないとは・・・orz
824名無しさん@そうだ選挙にいこう:2014/06/23(月) 21:16:15.69
>>819
0.08の倍数でまとめるんだったら
小数点以下一桁であらわされるほうがおかしいよね。
0.08の倍数の小数点以下2桁目を切り上げしたいとかじゃないの?
もしそうだとすると、
=CEILING(ISO.CEILING(A1,0.08),0.1)
みたいな感じでできるんだけど。
825824:2014/06/23(月) 21:19:10.01
あ〜〜。
ごめん、計算式うそうそ。
826名無しさん@そうだ選挙にいこう:2014/06/24(火) 12:31:57.59
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

条件付き書式で別ワークシートの情報を参照して、セルの塗りつぶしをしています。
数式は以下の通りです。
=INDIRECT("Sheet2!"&amp;CELL("ADDRESS",A1))="A"

画面上では色が反映されるのですが、プレビューや印刷では色が出ません。
原因や対処法が分からず困っております。

条件付き書式を設定しているセルには何も入力していません。
印刷設定の簡易印刷や白黒印刷のチェックは外れています。
セルの書式設定で塗りつぶしの設定をした場合は、プレビューや印刷にも反映されます。

どうぞよろしくお願いします。
827名無しさん@そうだ選挙にいこう:2014/06/24(火) 13:38:23.60
VBAは使ったこと無いけどたぶんマクロじゃないとできないと思うのだけど、
ボタンを押すと新しいブックを作って、ボタンを押したシートの内容を全コピして書式と値を貼り付けれるようにできないかな?
数式のままコピるとなんかエラー吐くんだよね…
Ctrl+Aでコピって新しいシートを作って貼り付ければいいだけなんだけど、それができない奴が多くて…
ちなExcel2010
828名無しさん@そうだ選挙にいこう:2014/06/24(火) 15:55:20.12
>>826
真っ新なブックに、その条件付き書式と、Seat2のA1に「A」だけ入れて
それでも再現される(印刷に反映されない)か確認してみな
とりあえずバージョン違うけど、2003ではプレビューにも印刷にも反映されることを確認した

それで君の環境で不都合が再現されるなら、それはここで聞くべきことではなく、MSに報告すべきバグ
再現されないなら、まだ出していない情報に原因が隠されてるから
自分でそれを見つけられないなら、ブックをUpした方が早いかもな


>>827
出来るよ

というか、普通にコピーすれば書式はコピーされるから、書式は改めて貼り付ける必要はないよ
普通にコピー → 値を貼り付け ってマクロをボタンに登録してやれば良いだけだ

ここまで教えればマクロの記録から自分で作るくらいのことは出来るかな?
それともコード書いた方がいいの?
829名無しさん@そうだ選挙にいこう:2014/06/24(火) 17:16:26.38
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

1 AAAAA
2 BBBBB
3 CCCCC

のように入力された1行づつのデータをそれぞれ30行にしたいのですが一発で実行する方法を教えてください。
もしなければ行1〜行3にそれぞれ29行の空白行の挿入方法でも構いません。
830826:2014/06/24(火) 17:57:00.32
>>828
回答ありがとうございます。
新規ブックでも再現されたのでバグと判断し、MSに報告することにします。
831名無しさん@そうだ選挙にいこう:2014/06/24(火) 18:26:29.60
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBA内で計算して出てきた値を使ってVBAでグラフを作成することは可能でしょうか。
(セルにある値は使用しない)
可能であれば簡単なものでいいので、やり方(例文)を教えて下さい。
832名無しさん@そうだ選挙にいこう:2014/06/24(火) 18:34:08.49
>>829ですがマクロ使用で自己解決しました。
833名無しさん@そうだ選挙にいこう:2014/06/24(火) 19:43:48.30
>>829
リロードしたら終わってた^o^;
折角なので投下
B1=INDIRECT("r"&INT((ROW()-1)/30)+1&"c1",0)
下にオートフィル
>>831
無理っぽい
グラフのデータは必ずrangeから引っ張ってくるから、rangeなしでは作成できない
834名無しさん@そうだ選挙にいこう:2014/06/24(火) 19:50:46.51
そもそも、VBAでグラフ作る場合は、オートシェイプなどを使って
グラフ自体を自前で組み上げる物だからな

Excelに備わってる簡易グラフ作成機能は、VBA使わない人向けの間に合わせ
835名無しさん@そうだ選挙にいこう:2014/06/24(火) 21:56:04.71
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

現在時刻によって、1〜9などのフラグを建てたいのです。

A1セルに =now()

A2セルに、
=if(and(value(A1)>=value("0:00"),value(A1)<value("1:20")),1,if(and(value(A1)>=value("1:20"),…

といったように。

A1セルに、普通に時刻1:10などを入力した場合はうまくいくのですが
=now()だとうまくいきません。
どうしたら良いでしょうか?

即時性その他の事情により、VBAは無しでお願いします。
836名無しさん@そうだ選挙にいこう:2014/06/24(火) 22:11:42.30
>>835
うまくいきますよ?
837名無しさん@そうだ選挙にいこう:2014/06/24(火) 22:33:34.49
>>836
うまくいかないっすよ?
if文の一番最後を「それ以外なら0」にしてあり、0になっていまいます
838名無しさん@そうだ選挙にいこう:2014/06/24(火) 22:37:59.05
よーわからんけど、とりあえずtimevalue使った方がいーんじゃねーの?
839名無しさん@そうだ選挙にいこう:2014/06/24(火) 22:40:18.91
valueなら、ちゃんとhh:mm:ssで渡すとか
840835:2014/06/24(火) 22:41:25.22
timevalueだと#VALUE!エラーが…
841名無しさん@そうだ選挙にいこう:2014/06/24(火) 22:55:30.01
timevalue(text(a1,"hh:mm:ss")>timevalue("00:00:00")
とか、
a1-today()>value("00:00:00")
とか。
a1に、now()-today()を入れとくとか。
842835:2014/06/24(火) 23:05:25.11
>>841
やだ…かっこいい…

now()-today()が最高にエレガントです
ありがとうございました
843名無しさん@そうだ選挙にいこう:2014/06/25(水) 01:16:35.71
>>828
さんくすやってみるっす
844名無しさん@そうだ選挙にいこう:2014/06/25(水) 02:04:47.11
>>834
> そもそも、VBAでグラフ作る場合は、オートシェイプなどを使ってグラフ自体を自前で組み上げる物だからな

そんなことしてる暇人見たことないわ (w
845名無しさん@そうだ選挙にいこう:2014/06/25(水) 04:35:57.32
それは、君や君の周り人が、それをやるのに膨大な時間が掛かってしまうようなレベルだからだろ?
846名無しさん@そうだ選挙にいこう:2014/06/25(水) 04:50:57.10
>>845

俺も見たことないんだけど、
そのオートシェイプを使って組んだグラフとやらをうpして
実例を提示してくれないか?
847名無しさん@そうだ選挙にいこう:2014/06/25(水) 08:38:11.31
>>831
セルの値を使用しない例ならこんな感じ。
参照先は実際のテーブルと同サイズ(項目+データ)であれば任意セルでOK。

Dim str1 As String, str2 As String

str1 = """あ"",{""前期"",""中期"",""後期""},{53,37,115},1"
str2 = """い"",{""前期"",""中期"",""後期""},{66,87,132},2"

ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.SetSourceData Range("A1:C4"), xlColumns '仮の参照先(値不要)
.ChartType = xlLineMarkers
.SeriesCollection(1).Formula = "=SERIES(" & str1 & ")"
.SeriesCollection(2).Formula = "=SERIES(" & str2 & ")"
.ChartArea.Select
End With
848名無しさん@そうだ選挙にいこう:2014/06/25(水) 09:13:28.51
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 少しは
【4 VBAでの回答の可否】 可

別シートのセル参照で値が変化した時にVBAが実行されるようにするにはどうすればいいでしょうか。
例えばSheet1のA1の中に『=LEFT(Sheet2!A1,4)』とあった場合にSheet1のA1の内容が変化するとVBAが実行するようにしたいです。
チェンジイベントだと直接の値の変化じゃないと認識しないので。
849名無しさん@そうだ選挙にいこう:2014/06/25(水) 09:48:41.55
Calculateイベントの前後で値が変わったかどうか判定って考えたけど、もっとまともな方法がありそう
850名無しさん@そうだ選挙にいこう:2014/06/25(水) 10:00:08.42
参照先のシートのイベント取るんじゃダメなん?
851名無しさん@そうだ選挙にいこう:2014/06/25(水) 12:44:09.25
んー、では普通のチェンジイベントでいいので、対象のセルに値を入力した時に前回と同じ数字なら何もなし
値が前回と違うならVBA実行という風にするのはどうしたらいいですか?

対象のセル値はランダムで頻度に変えます。ただし、同じ数値も入力する場合もあるのでその時は何も起こらないようにしたいです
852名無しさん@そうだ選挙にいこう:2014/06/25(水) 12:48:07.22
auto_openでブック開いたときの値取っといて、イベント時に比較するんじゃだめなん?
853名無しさん@そうだ選挙にいこう:2014/06/25(水) 12:54:08.82
>>852
それだと一回しか有効にならないよね
例えばオープン時に対象セルが1だとして1を取得する。
1回目の変更はいいけど2回目からは比較が1のままだから駄目かな・・・
854名無しさん@そうだ選挙にいこう:2014/06/25(水) 13:02:47.99
>>853
比較した後に値を入れなおせよw
855名無しさん@そうだ選挙にいこう:2014/06/25(水) 13:03:22.75
わかったああああああああああああああ
適当なセルに前回の数値を入れとけば良いんだ
んで比較して実行マクロの最後に現在のセル値に書き換えて、同じようにそれを比較すれば、その適当なセル値は常に1個前の値を維持できる
自己解決してごめんなさい
856名無しさん@そうだ選挙にいこう:2014/06/25(水) 13:04:29.60
>>854
ちょうど自分でも気づけた><
ありがとう&ごめんw
857名無しさん@そうだ選挙にいこう:2014/06/25(水) 17:15:13.06
>>846
ググれ

というか、知的財産を安易に要求するな
858名無しさん@そうだ選挙にいこう:2014/06/25(水) 19:07:39.63
いや、そんな大層な物でもないだろ。
君が>>845なのかどうかは知らんが、偉そうにいってる割に根拠は示してないからそれを指摘したまでのことだよ
ググって出るならそのキーワードを教えてくれ、それができたら根拠の提示と認めようじゃないか。

いっておくがグラフ(チャートオブジェクト)上にオートシェイプを入れこむだけなら馬鹿でもできるが、
それはグラフを書いてるんじゃなくて単なるお絵かきだからな。
859名無しさん@そうだ選挙にいこう:2014/06/25(水) 19:13:01.19
VLOOKUPは便利ですが
・日付が42354
・値が#N/A
・値が0
になったりするのが不便です。
これらを防ぐ一番簡単でシンプルな方法はどのようなことですか?

あと、VLOOKUPでフォントや文字色や背景色や罫線などまでひっぱってくるにはどうすればよいですか?
860名無しさん@そうだ選挙にいこう:2014/06/25(水) 19:13:48.40
背景や罫線まで引っ張るならVBA使うしかない
861859:2014/06/25(水) 19:24:13.29
これは上級者向けの質問です。
VBAの力を頼らずに実現したいのです。
862名無しさん@そうだ選挙にいこう:2014/06/25(水) 19:41:58.50
ない
863名無しさん@そうだ選挙にいこう:2014/06/25(水) 19:50:14.56
上級者向け(笑)
すごいなー、上級者さんはvba使わずに背景や罫線を弄れるんだ、すごいなー
864名無しさん@そうだ選挙にいこう:2014/06/25(水) 20:09:08.19
他言語でExcelを操作しろって意味だろう()
865名無しさん@そうだ選挙にいこう:2014/06/25(水) 21:07:08.43
>>859
=if(iserror(vlookup(〜〜〜)),"",vlookup(〜〜〜))
日付はセルの書式設定>表示形式で予め直しておけ

>>863
Excel2007以上の条件付き書式なら
VBAなしで文字色や背景色変えたり、罫線出したり消したり出来るよ

あっ…マジレスしちゃいけない釣り質問だったのか…?
866865:2014/06/25(水) 21:16:10.47
おっと、表記ミス
空白セルの0回避も入れるなら
=if(iserror(vlookup(〜〜〜)),"",if(vlookup(〜〜〜)="","",vlookup(〜〜〜)))
だな
867名無しさん@そうだ選挙にいこう:2014/06/25(水) 21:18:35.01
>>866
そこは、=If...
おっと、上級者じゃないから、やめとこ
すまん
868名無しさん@そうだ選挙にいこう:2014/06/25(水) 21:42:10.19
>>859
日付は
=TEXT(Vlookup(),"0!/00!/00")
な感じでやれば日付っぽく表示されるんじゃね?
日付も値も一緒くたにオートフィルでやるってのなら無理な話だと思うが…

値に関しては
=IFerror(vlookup(),"")
で防げるよ
0になるのが不便の意味がわからんが、前提として0が出ちゃダメってこと?
あとでAverageで使うとか?
869名無しさん@そうだ選挙にいこう:2014/06/25(水) 21:45:56.65
上級者すぎwww
870名無しさん@そうだ選挙にいこう:2014/06/25(水) 21:58:15.97
真の上級者はVlookUPの参照先を目視してコピペ
871831:2014/06/25(水) 22:00:03.85
>>847
遅くなりましたが、ありがとうございます。
まだ深く検証しておりませんが、目的のものが作れそうです。
872名無しさん@そうだ選挙にいこう:2014/06/25(水) 22:00:18.73
いや、まず日付は書式設定で良いじゃないか
873名無しさん@そうだ選挙にいこう:2014/06/26(木) 02:39:09.18
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

NOW関数を、リアルタイムで自動更新させたいです。

で、ぐぐったら、次の回答がありました

-------------------------------
NOW関数はそのままで、ファイル自体をいじる方法があります。

1:ツールバー「データ」→「外部データの取り込み」で、そのファイル自体を取り込む
  取り込み範囲はNOW関数が入っているセルで
2:「外部データ範囲のプロパティ」で「定期的に更新する」にチェック
  更新間隔は1分で

---------------------------------

これの1番の意味がさっぱりわかりません
外部データの取り込みで、ファイル自体を取り込むというのはどういうことでしょうか。

その他のデータソース→ExcelFiles*→自分のファイルを指定

とやっても、、見つかりませんエラーが出ます。
874名無しさん@そうだ選挙にいこう:2014/06/26(木) 06:00:14.02
おまえらVBAとかどうやって身につけた?独学?
独学なら本とか買った方が良いの?
875名無しさん@そうだ選挙にいこう:2014/06/26(木) 07:44:49.11
>>873
「取り込む」とは、対象を読み込んで任意のデータを取得するということ。

例えば、下記サイトの手順で自ブックのテーブルを自ブックの任意シートに取り込むとする。
(※「クエリウィザード-列の選択」>[オプション]>「システムテーブル」にチェック)
「接続のプロパティ」で自動更新間隔を設定すると、クエリ更新時にブック内のNow関数も更新される。
http://www4.synapse.ne.jp/yone/excel2010/excel2010_data_query2.html
876名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:25:51.06
>>874
構文規則は基本BASICだし、それ以外はヘルプに載ってるし
本が必要になることはないような
877名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:47:18.26
>>874
独学。
グラフを作りたければ「vba グラフ」辺りでぐぐればいくらでも例が出てくるし、
それの積み重ねだよ。

あと違う言語を触ると色々捗ると思う
vb.netかC#.net辺りが楽でおすすめ。
878名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:49:24.04
ヘルプでわかるのがすごいな
結局はプログラムの基礎が必要ってことか
879名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:51:12.30
>>877
ほー
とりあえずググってわからなくてもいいから触っていく感じなのね。ありがと
880名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:02:45.73
マクロの自動記録もいいぜ、無駄なコードも入るけどあれのおかげで楽が出来た
881名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:05:37.96
>>878
俺もヘルプは殆ど見なかったな。
最近はマシになったようだけど、昔のはちょっと酷かった。
>>880
忘れてた、それだ。vbaはそれがあるからなんとかなるよな。
ただたまーにバグっててそのまま使えない場合がある。
882名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:12:55.80
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【4 VBAでの回答の可否】 否

指定した範囲内の最大数値を表示する方法はありますか?
例えばA1〜A10にランダムで数値が入っているとします。その中で1〜30までの範囲で最も大きい数値を参照したい。
例としては「2,10,43,14,6,121,28、21、99、1」この中なら「28」を返す。そんな感じです
関数でできますか?
883名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:39:39.59
>>882
ちなみに数字以外にも文字がある場合もあるので、それも考慮してもらえると助かります
884名無しさん@そうだ選挙にいこう:2014/06/26(木) 10:00:17.10
>>882-883
関数で出来ますよ

=MAX(IF(A1:A10<=30,A1:A10,0))

=SMALL(A1:A10,COUNTIF(A1:A10,"<=30"))

前者は30以下ならそのままの値、30超なら0を返した上で、その中での最大値を返す
配列数式なのでCtrl+Shift+Enterで確定

後者は、30以下の数値の個数を数えて、小さい方からその個数番目の数値を返す
30以下が7つあるなら、小さい方から7番目は、30以下の中での最大値
885名無しさん@そうだ選挙にいこう:2014/06/26(木) 10:01:33.46
>>882,883
配列入力
{=MAX(IF(A1:A10>=1,IF(A1:A10<=30,A1:A10,"")))}
E1に30と入力して
=LARGE(A1:A10,RANK(E1,(E1,A1:A10)))
886名無しさん@そうだ選挙にいこう:2014/06/26(木) 10:04:33.59
>>884
おおー、配列数式使わないでも出来たんですね。素晴らしい
ありがとうございました
887名無しさん@そうだ選挙にいこう:2014/06/26(木) 12:12:13.69
>>878
ヘルプって上から目線で書いてあるからなんかわかりにくいよな
俺はひたすらググって自分の用途に似てる事例を探す
コピる、うまいこと応用する
を繰り返すと、この方法でやればできるんじゃね?とひらめくようになったりならなかったり
888名無しさん@そうだ選挙にいこう:2014/06/26(木) 12:29:54.62
上から目線ってw

プログラムのリファレンスって基本的にああいうものだよ
仕様だけ不足無く書いてあれば十分
懇切丁寧な感じで書かれてたって、ウザいだけ

コードのコピペ改変しか出来ない人からしたら、
いろんな使用例の具体的なコードが欲しいのかも知れないけど、
普通に1からコード書ける人には、仕様だけ簡潔に書いてあった方が
分かり易くて有意義だ
889名無しさん@そうだ選挙にいこう:2014/06/26(木) 12:55:21.40
MSDNライブラリなんかは日本語のページだとわかりづらいから英語のページの方がいい
英語わからなくても、ね
890名無しさん@そうだ選挙にいこう:2014/06/26(木) 13:38:55.80
マイコンBASICマガジンで文法を3割ぐらい覚えて、最初のうちはわからない部分はコピペと試行錯誤
あとは使いながらだんだん覚えてった
891名無しさん@そうだ選挙にいこう:2014/06/26(木) 15:12:29.85
Excelっぽい画面で2chが見れるらしい
なんか力の使いどころ間違えてる気もするがw
ttp://83net.jp/
892名無しさん@そうだ選挙にいこう:2014/06/26(木) 16:08:32.88
使いどころ以前に、設計からして糞すぎるw

名前欄に書かれていることが見れない
メール欄に書かれていることが見れない
改行が正しく反映されない
文が長くても短くてもポップアップが自動で消えるまでの時間は同じでまともに読めない
文が特に長い場合は後半が省略されるが、省略部分を読む手段が無い
スクロールするとタイトルバーやリボンの部分が画面から消えて、「Excel風」ですらなくなる

数十秒使ってみただけでこれだけ不都合があるw


というか、Excel風ではなくExcelそのものを使って2ch読めばいいじゃん
以前は書き込みまで出来るExcelブックの2chブラウザ「=2ch」ってのがあったけど
これは仕様変更で今は書き込みできないけど、読むだけなら多分出来るし
読むだけなら1から作ってもそう大変では無いよ
XmlHttpとかでSubject.txtやdatを読んで、文字列操作して表示すれば良いだけだから
893名無しさん@そうだ選挙にいこう:2014/06/26(木) 17:33:50.22
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

コピーや切り取りすると条件付き書式が繁殖して困ってます。
なのでマクロで一度削除して新しく設定しなおそうと思ってます。
例えばSheet1のA列全体の中で "○"に等しければRGB(255,255,0)
というふうにするのはどうすればいいですか?
894名無しさん@そうだ選挙にいこう:2014/06/26(木) 18:23:50.91
事故解決しました

Sub 条件付き書式()

Dim fc As FormatCondition
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Cells.FormatConditions.Delete
Set fc = ws.Range("A:A").FormatConditions.Add(xlCellValue, xlEqual, "=""○""")
fc.Font.Color = RGB(255, 255, 0)

End Sub

"=""○"""の意味がわからに
895名無しさん@そうだ選挙にいこう:2014/06/26(木) 18:31:54.40
>>894
>"=""○"""の意味がわからに

" (ダブルクォーテーション)で文字や数字、記号などを挟むと
それらは文字列として認識されるんだけど、
ダブルクォーテーション自体も記号のひとつであって、
それをどうやって文字列として認識させるかというと、
ダブルクォーテーションで囲まれた中では「"を2つ続けて表記する」というルールになっている
だから
"=""○""" は、つまり
="○" をダブルクォーテーションで挟んだものという意味になる。
896名無しさん@そうだ選挙にいこう:2014/06/26(木) 19:18:58.30
>>891
個人的には非常に評価する
このスレを読むには全く適さないだろうけど、いい発想だ
使わないけどね
897名無しさん@そうだ選挙にいこう:2014/06/26(木) 21:25:26.20
>>891
作った目的が笑える
俺は職場でも堂々と開くけどな
ニュー速みたいなスレをちょくちょくチェックするのにはいいかもしれん
898名無しさん@そうだ選挙にいこう:2014/06/27(金) 01:54:46.40
どうせプロキシで弾かれるから見れない
899名無しさん@そうだ選挙にいこう:2014/06/27(金) 12:25:52.83
【1 OSの種類         .】 Windows7,8.1
【2 Excelのバージョン   】 Excel2010及び2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

webの表の数値を会社の表エクセルに取り込むのに、
webページに表示された表をコピーしてexcelのシートに単なる「貼り付け」
そして数値部分(単一セル)のみをコピー→会社で作成した表の指定部分の結合したセルに貼り付け(貼り付けオプションアイコンで一番左しかできないのでそれで貼り付け)
とやってみたんですが、

これをマクロで記録して貼り付けまでは一気にできたのですが、
その貼り付けた値ではその会社の表に入れられた計算式(足して平均出すだけの式なんですが)で参照しないようで0のままです
貼り付けた数値を上から手打ちで打ち込むと計算式に反映されます。
貼り付けがうまくいってないと思うんですが、良いやり方はないでしょうか?
VBAでも何でも構いません。よろしくお願いします
900名無しさん@そうだ選挙にいこう:2014/06/27(金) 13:42:39.84
>>899
単に数値ではなく文字列扱いになってるから、計算に反映されないだけじゃないの?

VBA使える奴が、こんな初歩的なことを解って無いとも思えないが
=ISNUMBER(セル)
でFALSEが返るなら、それは数字文字列ではあっても数値じゃない



もし、その辺のことを把握している上で、それでも原因も対処法も解らないってなら
その目的のWebページのURLを書くか、それを貼り付けたExcelブックをうpしよう
901名無しさん@そうだ選挙にいこう:2014/06/27(金) 14:32:25.18
yahoo知恵袋みたいな質問サイトでExcelやVBAの質問に適してるサイトはどこ?
オススメあったらおしえてくり。やっぱりokwaveかな?
902名無しさん@そうだ選挙にいこう:2014/06/27(金) 15:00:22.42
>>901
mougじゃね?

適してるどころか、それ専用に特化してるから
903名無しさん@そうだ選挙にいこう:2014/06/27(金) 15:28:33.70
モーグは自宅鯖で運営してんのか?サイト落ちすぎなんだけど
ゆうべも落ちてて今朝までアクセスできなかったし
Excelで検索かけると上位に出てくるから、ついクリックしてエラーでガッカリというのをよく体験する
904名無しさん@そうだ選挙にいこう:2014/06/27(金) 19:06:44.41
>>899
その値の場所をA1として
Sub Macro1()
Range("a1").NumberFormatLocal = "0_ "
Range("a1").Value = Range("a1").Value * 1
End Sub
って感じで数字を数値にして貼り付ければok

Range("a1").Value = Range("a1").Value * 1
これだけでも数値として認識されるようだけど、書式設定も変えておいたほうが色々安全だった輪
905名無しさん@そうだ選挙にいこう:2014/06/27(金) 22:15:14.12
>>899
・単一セルをコピーしたあとの貼り付けを値のみ貼り付けにする
・表そのものを貼り付けた後に書式設定を変える
・最初から表そのものを通常の貼り付けじゃなくてテキストで貼り付ける

この辺で改善できるんじゃ?
906名無しさん@そうだ選挙にいこう:2014/06/27(金) 22:27:28.06
>>903
既に答えがあるものならGoogleでcacheで開けばいいべ…
907名無しさん@そうだ選挙にいこう:2014/06/27(金) 23:30:10.29
もーぐって回答のレスポン早い?
908名無しさん@そうだ選挙にいこう:2014/06/27(金) 23:39:18.03
遅い
ヤフー知恵遅れの方がマシ
ただ、的はずれな答えが返ってきてうざいならモーグが良い
けど個人T系にはココで十分
909名無しさん@そうだ選挙にいこう:2014/06/28(土) 01:42:22.04
ここが一番ランク下ってことか
910名無しさん@そうだ選挙にいこう:2014/06/28(土) 02:27:24.15
さすがにアホー知恵遅れよりはマシだろうw
911名無しさん@そうだ選挙にいこう:2014/06/28(土) 07:12:19.11
>>826
印刷の設定で背景色を印刷するにチェックしてないだけでは?
912名無しさん@そうだ選挙にいこう:2014/06/28(土) 07:16:08.88
りろってなかった…
でも答え出てないっぽいからいいか。
913名無しさん@そうだ選挙にいこう:2014/06/28(土) 09:37:39.34
>>876
ヘルプに載っていないAPIも多数存在するよ。
これは解説本を買うしかない。

まぁ、書籍で学ぶのは、「独学」の範疇に入ると思うけど。
ようは「師匠」から教わらないことが「独学」でしょ?
914名無しさん@そうだ選挙にいこう:2014/06/28(土) 11:59:47.57
Officeを2007から2010にしたら いきなり印刷プレビューが激遅に・・・
5秒くらいかかるのはザラで 余白調整も毎回同じぐらいかかる
プリンタドライバを最新にしても全く変わらず。
何か他に対策無いですか? ちなみに2007では問題なかったです。
915名無しさん@そうだ選挙にいこう:2014/06/28(土) 12:04:09.03
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

ある時刻が来たら、ある行を1回コピーする
というマクロを作ります。

A1セルにNow()
A2セルに、A1が11:00〜11:10になったら"1"
A6セルに、1回こっきりというフラグを建ておく

Private Sub Worksheet_Calculate()
If Cells(2, 1) = 1 and cells(1, 6)<>9 Then
range(ある行).copy range(別の行)
cells(1,6) = 9
End If
End Sub

エクセルが暴走してしまいました。

@VBAを止める方法は無いですか?
 再度ファイルを起動して、デバッグ画面が出て、終了しても消去しても暴走します。
A暴走するのはなぜでしょう? どうすればいいでしょうか。
916915
補足

おそらく、cells(1,6) = 9を記入した時点でnow()データが更新され
自動プログラムが発動されてしまっているのではないかと

「ある時間が来たら1回だけコピー」というのをさせるためにはどうしたらいいでしょうか

now()の発動条件を、11:00::00のときだけ、とすると、空振りしてしまう可能性があります