Excel総合相談所 113at BSOFT
Excel総合相談所 113 - 暇つぶし2ch2:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/01 15:33:40.41
マクロ使わないと無理じゃね?
for each c in activesheet.usedrange
if c.interior.colorindex <> xlnone
なんか処理
endif
next

5:988
14/05/01 16:25:05.29
前スレの988です。

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

↓実際に作ったファイル
URLリンク(test2test2.web.fc2.com)

↓web形式でアップロードしたファイル
URLリンク(test2test2.web.fc2.com)


自分のPC上ではweb形式保存でも閲覧できるのですが、
ネット上にアップロードすると、ソースらしきものだけで、正しく表示されません。

6:名無しさん@そうだ選挙にいこう
14/05/01 16:36:49.49
>>5
なんで最初からhtm形式で保存&うpしないの?
表とテキストしかないのに。

7:988
14/05/01 17:11:19.69
>>6
今までhtmlでやってきたのですが、
Excelの方がスッキリしてていいなぁ…と試していたところ、
上手くいかないので質問させていただきました。

自分でも相当調べてみたんですが、
どうしてもわからず、モヤモヤと……

8:名無しさん@そうだ選挙にいこう
14/05/01 18:15:34.13
mhtはマイクロソフトの独自形式かも。IEなら開ける。

9:名無しさん@そうだ選挙にいこう
14/05/01 18:18:45.15
>>3
セルの色を調べるような処理は、すべてVBAを使わないと無理と思っていい
色の付いたセルの場所とか、セルが何色かとか

例外は条件付き書式で色を付けたセルに対して、同じ条件式を使って判定する時ぐらい

10:名無しさん@そうだ選挙にいこう
14/05/01 18:28:09.07
>>5 >>7
その症状はfc2のサーバがmhtに非対応
自分でサーバの設定が変更できるならいいけど、そうでなければアウト

参考
URLリンク(kajuhome.com)

11:名無しさん@そうだ選挙にいこう
14/05/01 18:34:37.40
>>8
うちのIE11では開けないんですよねぇ。
バージョンの問題でしょうか。調べてみます。

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

設定変更は無理みたいなので他の方法を模索してみます。
ありがとうございました。

12:名無しさん@そうだ選挙にいこう
14/05/01 18:40:39.13
前スレ>>992
=lookup(1,0/(a$1:a1<>""),a$1:a1)
これの解説だれか

lookupのヘルプには、
第二引数にソートされた配列じゃない場合は正しい結果を返さない
としか書いてなくて、実際には何が返るのか不明

13:名無しさん@そうだ選挙にいこう
14/05/01 18:41:39.71
>>11
直接は開けないけど、ローカルに保存すればIEで開けるという意味だった
たぶん>>10のいうとおり

14:名無しさん@そうだ選挙にいこう
14/05/01 19:37:32.89
>>3です。
>>4 >>9 お答え有り難うございます
やはりVBAしか方法がないのですね…
データ量が少ないので手動で行いつつ、>>4を参考に調べてみます
ありがとうございました

15:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/01 20:40:17.43
>>15
ありがとうございます。
第二引数がソートされてない場合は最後にマッチした結果を返す、という部分がミソですね。
これ最初に考えた人、どんな頭してんだろ…

縦方向の結合セルに対して、この式使えば便利だと思ったんですが、
確かにいつ変わるかわからない仕様なので業務で使うのは止めときます

17:名無しさん@そうだ選挙にいこう
14/05/02 09:09:43.81
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

やりたいこと

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


過去に作成した顧客データがあるのですが、1月~12月と月ごとにフォルダ分けしています。
原本であるBookの顧客ID欄にIDを入れると過去に作成した顧客データからデータを反映させるには
どうすればいいでしょうか?

18:名無しさん@そうだ選挙にいこう
14/05/02 09:43:31.77
原本に過去データのシートをコピーしてvlookupでも使えば?
見た目悪ければ、過去データのシートは非表示で

19:17
14/05/02 10:50:51.15
作業を早くする為にそうしたいという希望ですので
出来ればID入力で済ませたいです。

20:名無しさん@そうだ選挙にいこう
14/05/02 11:37:01.93
>>19
顧客データのブックは12個?それともフォルダが12個で、その中にブックが複数ずつ入ってるの?
その顧客データは追加や修正されることはある?

21:名無しさん@そうだ選挙にいこう
14/05/02 11:50:40.67
▼━質問テンプレ (必ず使ってね) ━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

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

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

原因わかる方いますか?

22:名無しさん@そうだ選挙にいこう
14/05/02 12:28:43.45
>>21
Excelのオプションを開いて、数式→計算方法の設定→ブックの計算、を自動に
URLリンク(blogimg.goo.ne.jp)

23:17
14/05/02 12:31:33.36
>>20
その年度のフォルダ内に1月~12月までのフォルダがあります(12個)
そして月ごとのフォルダ内に複数(詳細は不明ですがかなりの数)の顧客データがあります。
新規の顧客も継続されている顧客も関係なく常に新しいbookで作成しますので
顧客データの追加はありますが修正は今のところ不明です。


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

こういった形です。


継続されている顧客のbookを作成する際に、顧客IDを入力する名前、生年月日、性別が
反映される仕様にしたいのです。

24:名無しさん@そうだ選挙にいこう
14/05/02 12:48:19.84
>>23
めんどくさすぎて笑えるw
ID打つ度に全部のブックを検索すんのか?w

25:17
14/05/02 13:04:51.21
>>24
めんどくさいという事は可能なんでしょうか?

26:名無しさん@そうだ選挙にいこう
14/05/02 13:19:43.47
>>25
可能だけどVBA必須なのと、1件入力するたびに検索で数十秒待たされる可能性がある
作るのも面倒だし、使うのも面倒な物になりそうな悪寒

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

この規模になるとボランティアで作れるもんじゃない
プロに金を払って作って貰うレベル

27:17
14/05/02 14:09:36.44
>>26
可能だけど実用的ではないという事ですね。
わかりました。教えて頂いた理由を添えて断ることにします。
わざわざ教えて頂きありがとうございました。

28:名無しさん@そうだ選挙にいこう
14/05/02 14:16:22.73
ソフトの作成に20万かけて、月給10万の入力要因のパートを一人クビにできれば、3ヶ月目からは利益が出る計算だけどな

29:17
14/05/02 14:35:30.31
名前、生年月日、性別だけの項目ではないので少し厳しいかと思います。

30:名無しさん@そうだ選挙にいこう
14/05/02 15:49:35.29
>>22

自動になっております。他に原因ありますか?

31:名無しさん@そうだ選挙にいこう
14/05/02 19:04:22.41
>>21,30
>入力すると、書式設定が反映されて、上の式が自動で下におりてきて
マクロかな?
そのエクセルのセキュリティの設定が変更されてませんか?
ファイルタブ-オプション-セキュリティセンター-セキュリティセンターの設定 と開いていき
マクロの設定(4通り)のうち「警告を表示せずにすべてのマクロを無効にする」が選択
されてないか、みてください。

32:名無しさん@そうだ選挙にいこう
14/05/02 19:31:32.26
>>25
書式設定が隣のセルから勝手にコピーされるのはわかるけど、式まで自動入力されるなんて初めて聞いたわ
>>31のいうとおりマクロだろうな
あと、マクロ署名の証明書有効期限が切れたとか

33:名無しさん@そうだ選挙にいこう
14/05/02 19:36:36.69
テーブルだとふつうにしてくれる機能だけどな いっこのセルに式いれると全部の行に同じ式がはいる

34:名無しさん@そうだ選挙にいこう
14/05/02 20:48:22.73
テーブルの範囲が解除されちゃってるんじゃね?単に。

35:名無しさん@そうだ選挙にいこう
14/05/03 10:09:32.37
>>32
関連で…
お節介機能は出来るだけを消しているんだけど、
隣の書式のコピーを止められないかな?

36:名無しさん@そうだ選挙にいこう
14/05/04 00:22:42.98
複数のExcelファイルに書かれているデータを
行にデータがある箇所だけ抜き取って
まとめて別の一つのExcelファイルにまとめたいのですが
そういうやり方とかあるのでしょうか?

37:名無しさん@そうだ選挙にいこう
14/05/04 00:27:17.21
>>36
マクロ

38:名無しさん@そうだ選挙にいこう
14/05/04 00:31:34.06
URLリンク(imgur.com)

勤務表なんですが、
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:名無しさん@そうだ選挙にいこう
14/05/04 00:51:47.22
>>38
単に「13」とだけ入力すると、それは13日(24時間×13日=312時間)という意味になってしまうので、
VBA不可ならシリアル値(本当の日付けや時間)を使うのをあきらめて、13日を13時とみなして扱うしかない

40:名無しさん@そうだ選挙にいこう
14/05/04 01:00:05.80
>>36
いくらでもあるが、場合による。
恐らくある程度決まっているだろうけど、全てのブック名、その中のシート名を列挙
>>38
そのままの要望だとvba必須

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

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

間違いなく後者のほうが良いだろう

41:名無しさん@そうだ選挙にいこう
14/05/04 01:08:30.43
>>38
分が0の時に表示しないだけなら条件付き書式で
数式 =MINUTE(A1)=0
書式 h
にするだけ

42:38
14/05/04 19:30:16.39
>>39-41
親切丁寧な解答、すごくありがたいです!

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

前者の要望に関しては、>>41の条件付き書式を設定して使うとよさそうですね。
これで楽になりそうです。ありがとうございました!

43:名無しさん@そうだ選挙にいこう
14/05/04 22:58:13.97
質問です
エクセルでフィルタかけて、抽出した行のみをまとめて色つける方法はありますか?
ドラッグドロップすると消えた行もまとめて色付けされてしまうorz

44:名無しさん@そうだ選挙にいこう
14/05/04 23:05:39.51
>>43
どゆこと?

45:名無しさん@そうだ選挙にいこう
14/05/04 23:21:41.53
A1 あ
A2 い
A3 あ
あ でフィルタかけてA1:A3を塗ると い も塗ってしまうってことだな
A1:A3を選択 ホーム 検索 条件を選択してジャンプ 可視セル
の状態で色塗りすればok

46:名無しさん@そうだ選挙にいこう
14/05/04 23:22:15.00
>>45>>43アテネ

47:名無しさん@そうだ選挙にいこう
14/05/05 00:53:25.99
>>44-46
ありがとうございます!
おかげで120行を一つづつctrl+しなくてすみます

48:名無しさん@そうだ選挙にいこう
14/05/05 01:02:43.64
範囲選択した後、alt+;でええやん

49:ぴころ ◆lHG3Yzo0a6
14/05/05 06:48:17.84
>>48
おまえエライ(^▽^)

50:名無しさん@そうだ選挙にいこう
14/05/05 08:51:17.98
>>48
そんなんあったのか、thx
そういや新しいショートカットキー、いつからか覚えなくなったなぁ

51:名無しさん@そうだ選挙にいこう
14/05/05 13:40:42.55
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 否
別ファイルか、同ファイルの別シートに品名等の一覧を作っておき
メインシートで入力時にそれを参照させることはできますでしょうか?
品名、型番など多種に渡り数も多いので入力の手間を省きたいのです。

52:名無しさん@そうだ選挙にいこう
14/05/05 13:52:48.46
>>51
LOOKUP関数でテーブルを別シートや別ファイルに作るってことは出来るけど

53:名無しさん@そうだ選挙にいこう
14/05/05 14:00:25.36
>>52
ありがとうございます。それでやってみます。

54:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/08 01:16:57.25
>>54
ずれてしまったので訂正・・・
   G                    H                   i
1 #NAME?          2013/07/01            2013.07.01
式 =WEEKNUM(H1,2)  =SUBSTITUTE(I1,".","/")

56:54
14/05/08 01:18:56.52
>>54
度々済みません
ダブルクリックエラーが解消されるのは「G1」でした。。

57:54
14/05/08 01:47:49.69
>>54
メモリー不足かPCがおかしくなったのかと別のノートPCで確認してみましたが同じくエラーが出ていまして
ダブルクリックして式を1度表示させるとエラが消えます。。何なんでしょうねぇこれは。。
iの日付データが元からあったデータで
Gの=WEEKNUM(H1,2)とHの式はVBAで後から自動記述しています。

58:54
14/05/08 02:06:57.62
>>54
自己解決!!
再度式を記述するVBAを実行しましてまったっく同じ式を再記入させるいと正常に表示されました。
式もデータも間違いはないようですがシート数が結構多く自動処理時に何らかの予期せぬ不具合に遭遇したようです。

59:名無しさん@そうだ選挙にいこう
14/05/08 02:15:42.20
>>58
たぶん
Range("H1") = "=SUBSTITUTE(I1,""."",""/"")"
とかやってんじゃない?それじゃエラーになって当たり前だよ

60:54
14/05/08 02:24:05.82
>>59
こう書いて列の最終行まで記述しています。

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

ご指摘頂いた式と類似してますね、、、
これはまずいのでしょうか?

61:名無しさん@そうだ選挙にいこう
14/05/08 02:26:48.94
プロシージャの中で
Application.Calculation = xlManual
ってやってない?

62:名無しさん@そうだ選挙にいこう
14/05/08 02:26:59.19
excelの不具合の前にまず自分の頭を疑え
excel作ってる人はお前なんかより遥かに頭いいよ

63:名無しさん@そうだ選挙にいこう
14/05/08 02:27:35.65
>>60
With Range("I1") > With Range("H1") でした、、眠くてどうも駄目です、、w

64:54
14/05/08 02:31:16.26
>>61
その記述は書かれていません。

65:名無しさん@そうだ選挙にいこう
14/05/08 02:34:26.12
>>60
最後にCalculateって入れとけ

66:名無しさん@そうだ選挙にいこう
14/05/08 02:37:01.22
>>64
じゃあ逆に入れといた方がいいかもね

67:54
14/05/08 02:40:55.59
>>65
>>66
なるほど今までは何となく動いていましたが
入れておくとより確実になるわけですね
ありがとうございます。試して見ます。

68:名無しさん@そうだ選挙にいこう
14/05/08 10:17:58.48
>>54
バグかなんか知らんが再計算は途中で終了することがある
URLリンク(oshiete.goo.ne.jp)

69:名無しさん@そうだ選挙にいこう
14/05/08 10:59:58.10
キーボードの右下ふきんにセルを編集するためのショートカットキーはありませんか?
と申しますのは複数セル同時入力時にすでに入力されてる1つのセル値を他の複数のセルにコピーするとき
右手1つで操作したいときに便利だからです。(不明点はエスパーすること。Excel上級者なら意味は分かると思います。)

70:名無しさん@そうだ選挙にいこう
14/05/08 11:33:34.52
>>69
無い
このへん使うか、多ボタンのゲーム用マウスなどがオススメ
URLリンク(www.forest.impress.co.jp)

71:名無しさん@そうだ選挙にいこう
14/05/08 12:00:46.59
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

VBAでSelectionが連続したセルの場合と連続していないセル(セルとセルが飛び地のようになっている。)の場合で処理を変えたいのですが
Ifで分岐するときどういう記述の仕方になりますか?
またそれと同等の書き方があれば教えて下さい。
よろしくお願いします。

72:名無しさん@そうだ選挙にいこう
14/05/08 12:21:33.48
>>71
もっとスマートな方法もありそうだけど、とりあえず思いつきで

With Selection
  If .Rows.Count * .Columns.Count = .Cells.Count Then
    MsgBox "れんぞく"
  Else
    MsgBox "とびとび"
  End If
End With

73:71
14/05/08 12:40:30.42
>>72
嗚呼、素晴らしい!
このスレ始まって以来のアインシュタインだ。

74:名無しさん@そうだ選挙にいこう
14/05/08 12:45:29.41
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
vlookupをindexmatchに置換する簡単な方法って何かありますか?

75:名無しさん@そうだ選挙にいこう
14/05/08 14:09:37.23
>>72
ありがとうございます。
シンプルでスマートだと思います。
勉強になります。

76:名無しさん@そうだ選挙にいこう
14/05/08 15:01:45.60
>>74
Replace(文字列, "vlookup", "indexmatch")

77:名無しさん@そうだ選挙にいこう
14/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行くらいあり、何か方法はないかと思い、書き込みをさせて頂きました。
よろしくお願いします。

URLリンク(www1.axfc.net)

に同様のファイルをアップロードさせて頂きました。

78:名無しさん@そうだ選挙にいこう
14/05/08 15:41:59.53
>>77
何と何が一致したら集約するの?
導入日から率まで9項目全部?

79:名無しさん@そうだ選挙にいこう
14/05/08 15:54:16.20
>>77
URLリンク(www.dotup.org)
AG:BKを下にコピーすればok

80:名無しさん@そうだ選挙にいこう
14/05/08 18:45:32.99
>>78
そうです。
重複する 導入日から率までが一致した場合に a店~u店にそれぞれの数値を集約していきたいのです。
ちょっと行が多めのサンプルファイルをアップします。

URLリンク(www.dotup.org)

>>79
ありがとうございます。
ごめんさい。イマイチよくわからなかったです。

81:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/08 19:12:57.60
すみません。
処理能力/20000/16000

でした。

84:名無しさん@そうだ選挙にいこう
14/05/08 19:13:58.00
>>81
ホントに全セルを対象にしていいの?

85:81
14/05/08 19:54:46.73
>>84
はい、「店舗」と言うシートの全セルを対象としたいです

86:81
14/05/08 19:55:41.99
>>84
はい、店舗と言うシートの全セルを対象としたいです

87:81
14/05/08 19:56:34.08
すみません連投してしまいました

88:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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

対象のセルが大量に(数十万個のオーダー)あるなら画面の書き換えと再計算は止めた方がいいかも

90:81
14/05/08 21:14:18.36
>>89
ありがとうございます
セルは大体2800~30000弱位ですから
大丈夫と思います

91:名無しさん@そうだ選挙にいこう
14/05/08 23:26:00.52
>>89
それ、テキストで #N/A って書いてあったらクリアされるぞ
厳密とか言うなら CVErr とか使わないと

92:名無しさん@そうだ選挙にいこう
14/05/08 23:45:52.48
ちゃんと調べるならISNA関数あたりかな

93:名無しさん@そうだ選挙にいこう
14/05/09 00:13:26.27
>>80
URLリンク(www.dotup.org)
こうか
AF列にデータを集約、それを元にAIを表示
AIが表示で他全部表示
AG列は別に消してもいい

94:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/09 01:52:33.76
>>96
URLリンク(www.excel.studio-kazu.jp)
columns("a").OutlineLevel
が1以上だとそれっぽい
if columns("a").OutlineLevel > 1 then
~
でいけるかも

98:名無しさん@そうだ選挙にいこう
14/05/09 07:49:26.86
>>92
それ使って >>81 をやれるんか?

99:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/09 10:46:16.51
>>96

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

Rng.Columns.Ungroup

の部分を

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

にしちゃえばエラーが出ても無視して先に進めるよ
どうせグループ化されてない部分でエラーが出るなら
この処理無視しても問題ないでしょ

101:名無しさん@そうだ選挙にいこう
14/05/09 11:05:40.91
一連の操作をマクロの記録でやれ

102:名無しさん@そうだ選挙にいこう
14/05/09 11:21:03.27
Excel2010、GoogleIMEの組み合わせでセルにMacroと入力しようとすると
Mあcろになってしまうのですがこれを回避するにはどうすればいいですか?
Excelの時だけ起きます。

103:名無しさん@そうだ選挙にいこう
14/05/09 11:32:06.61
>>102
確定した瞬間に戻るってこと?

104:名無しさん@そうだ選挙にいこう
14/05/09 11:44:31.76
>>103
入力中からです。
一文字目をシフトキー押しながら入力した時に起きます。

105:名無しさん@そうだ選挙にいこう
14/05/09 11:46:59.84
ちなみに以前使ってた機種では一文字目をシフトキー押しながら入力した時は
全てアルファベットで入力してくれてました。

106:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/09 12:02:03.93
>>105
その機能は知らなかった
Excel2010、GoogleIME、windows7の組み合わせだけどMacroになるけどなぁ
解決法としては
・エクセルのオートコンプリートを切る
・googleime エクセル でぐぐって片っ端から色々試す
ぐらいしか思い浮かばぬよ

108:名無しさん@そうだ選挙にいこう
14/05/09 12:05:27.65
>>99
まずはマクロの記録を試す

109:名無しさん@そうだ選挙にいこう
14/05/09 12:07:57.91
>>107
ありがとう。
確かに出来ていたのはWindows7でした。Windows8だと無理なのかもしれませんね。
変換候補に出てくる”もしかして”が代用できるのでそっちを使います。

110:名無しさん@そうだ選挙にいこう
14/05/09 12:16:59.37
>>109
返還中にF10で半角英語に変換できるよ

111:名無しさん@そうだ選挙にいこう
14/05/09 12:17:47.58
領土返還

112:名無しさん@そうだ選挙にいこう
14/05/09 13:09:12.05
>>106
こっちの方がシンプルだろ
まあ、たいして変わらんとも言うが (w

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

> CVErrは用途が逆じゃ?

逆の用途って、なんだ?

113:99
14/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:名無しさん@そうだ選挙にいこう
14/05/09 14:11:17.66
>>112
c.Valueがエラー値じゃなかった場合、その判定式では実行時エラーで止まる

115:名無しさん@そうだ選挙にいこう
14/05/09 14:28:56.15
vbaでシート無しのブックを作れませんか?

既存ブックのシートを新規ファイルにコピるときに、
worksheets("sheet1").copy
set wb = activeworkbook
だと、いったんマクロの制御から離れたのを後から捕まえに行くのが気持ち悪い。
先にworkbooks.addして、そこにコピーすればいいけど、最初からあるシートを消すのも面倒というかスマートじゃない

116:名無しさん@そうだ選挙にいこう
14/05/09 14:55:36.33
>>115
無理

117:名無しさん@そうだ選挙にいこう
14/05/09 21:22:22.13
俺もそう思ってた時期があったわ
それで動くんだからまぁいいかと思って諦めた、っつうか慣れた

118:名無しさん@そうだ選挙にいこう
14/05/09 22:58:37.67
>>93
ありがとうございます。

119:名無しさん@そうだ選挙にいこう
14/05/10 03:43:05.75
今はエクセル2010の正規版はまともな値段(1万円台)では買えないのでしょうか

さすがに2000ではそろそろ限界が…

120:名無しさん@そうだ選挙にいこう
14/05/10 03:59:18.64
>>119
無理っぽいね

中古かオークションかDSP版かボッタ価格か2013か

121:名無しさん@そうだ選挙にいこう
14/05/10 08:54:08.43
>>119
これから長く使うことを考えれば2013でいいとも思う

122:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/10 19:10:46.95
>>122
ピボットテーブル

124:名無しさん@そうだ選挙にいこう
14/05/10 22:18:32.50
>>123
ピボットテーブルよく分からないんで関数だけで表現する方法ありますか?

125:名無しさん@そうだ選挙にいこう
14/05/10 22:26:57.18
>>124
月だけ表示する列を入れれば、簡単に出来るのでは?

126:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/10 22:39:55.64
=SUMPRODUCT((TEXT(範囲,"yyyym")="20145")/COUNTIF(範囲,範囲))

128:名無しさん@そうだ選挙にいこう
14/05/10 22:41:29.42
>>125
なるほど
やっぱり作業列挟む必要あるんですかね

>>126
SUMPRODUCTは確かにググったら出てきました
数値の種類の数を数える場合有効みたいです
ただ自分がやろうとしてるのは数値の範囲を限定してから数えないといけないので困ってます

129:名無しさん@そうだ選挙にいこう
14/05/10 22:46:28.89
>>127
すごい!
見事に動きました
有難うございます

ところで今後の勉強のためにこの数式の意味教えていただけると幸いです

130:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/11 00:51:54.99
>>120
中古でもオークションでも構わないのですが
アヤシイOEM版ばかりなので…

2013は評判激悪なんですけど
大丈夫ですか?
会社で使っている2010は使いやすいので
2010にしようと思っています

132:名無しさん@そうだ選挙にいこう
14/05/11 17:32:55.14
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelの資格試験を受けようと思っているのですが
出題項目として「以前のバージョンとの下位互換性を保つ」というのがありました。
検索してもいまいち答えが見つからないのですが
具体的にどうすれば良いのでしょうか?

133:名無しさん@そうだ選挙にいこう
14/05/11 18:41:20.73
>>131
試用版があるのでダウンロードしてみては?
個人的にいくつかほしい関数があるので、2013はかなり欲しい

>>132
そんなのあるのか
下位互換って行ってもセル範囲、ifserrorを使わない、条件付き書式は3つまで・・・とかそれぐらいしか思い浮かばない

134:名無しさん@そうだ選挙にいこう
14/05/11 20:19:02.06
>>132
xlsxじゃなくてxls形式で保存しろってこと

135:名無しさん@そうだ選挙にいこう
14/05/11 20:27:17.04
>>133
セルの塗りつぶしに使える色の制限とか

136:名無しさん@そうだ選挙にいこう
14/05/11 20:51:14.26
テーブルも構造化参照もつかえないのは痛い

137:名無しさん@そうだ選挙にいこう
14/05/12 00:52:35.94
>>132

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

試験や検定じゃ、そういうわけにはいかないでしょけど。

138:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/12 05:48:14.74
>>138
xlsはセーブした回数、つまり「改訂回数」を内部情報として保存する機能がある
ファイルを右クリック→プロパティ→詳細を見て、改訂番号がそれだ
その更新回数の数字のせいで、おそらくzip形式での圧縮効率がよくなったり悪くなったりするんだろう
たった数字一つで500Bも変わると言うのは謎だが…
また、君のクライアントか上司か知らんが相手が500Bくらいで文句を言ったりせんだろ
一々気にするな

140:名無しさん@そうだ選挙にいこう
14/05/12 08:49:21.18
>>138
Excel に限らず、Office のファイルは内部にファイルシステムの様な構造持ってて、領域の管理とかを色々やってるから、見かけ上はちょっとした変更でも内部の管理領域の内容ががらっと変わることはある。
なので、そういうもんだと思って使うしかない。
ファイルサイズを気にしてる人の真意はわからんが、HDD のバイト単価と君の時給を比較して説得するがよろし。

141:名無しさん@そうだ選挙にいこう
14/05/12 08:52:11.07
毎回新規に別名保存すりゃええんちゃう

142:名無しさん@そうだ選挙にいこう
14/05/12 10:20:13.71
外付けのHDD 1TBが8000円前後で買える今、5kバイト云々しても…と思うが、、、、

143:名無しさん@そうだ選挙にいこう
14/05/12 14:15:31.92
>>134
>>137
ありがとうございます。
試験の出題項目として書かれていたのですが
実際に試験ではどうすれば良いでしょうか?

また、同様に出題項目に「演算を実行する順序を定義する」とあるのですが
これは何を指しているのでしょうか?

144:名無しさん@そうだ選挙にいこう
14/05/12 15:36:22.57
>>143 四則演算の優先度を考慮のうえ、必要に応じてカッコ()を使うってことかな?

145:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/12 18:06:31.12
>>145
>できる限り相手には少ない労力(時間)で使って貰いたいのですが、

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

その人は計算式じゃなくて表があれば十分ってことなんだろ?
計算式使えれば便利なんだろうけど、本人はそれを知らないか知ろうとしてないわけだから
直接説明して拒否反応示すなら計算式不要ってことだ。

147:名無しさん@そうだ選挙にいこう
14/05/12 19:39:25.43
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

臨時収入があったので24インチのワイドモニタを買ったら、ホームタブのスタイルに
[標準][どちらでもない][悪い][良い][チェックセル]という目障りな文字群が現れました。
これを消すにはどうすればいいですか?

148:名無しさん@そうだ選挙にいこう
14/05/12 20:28:26.23
>>147
右クリックで設定が現れるよ
テキトーに動かしてみるといい。戻したくなったらリセットボタン

149:名無しさん@そうだ選挙にいこう
14/05/12 21:43:56.05
>>143
ほんとうに、
>「以前のバージョンとの下位互換性を保つ」
しか書いてないの?
前後に文章があるんじゃない?
「以前のバージョンとの下位互換性を保つ」
だけじゃ問題になってないよね。
「互換性を保つ」のは良くない
「互換性を保つ」と怒られる
「互換性を保つ」と海外旅行に行ける
などなど、なんでも考えられちゃうぞ。

150:名無しさん@そうだ選挙にいこう
14/05/12 21:48:34.95
>>149
pdfですが
URLリンク(mos.odyssey-com.co.jp)
↑ここにMOS試験の出題項目がリスト表示されています。
その中に>143に書いた項目それぞれがあるので
どういう事なのかと思い聞いた次第です。

151:名無しさん@そうだ選挙にいこう
14/05/12 21:59:20.89
横レスだが、その問題と答えを見ないとまるで分からん
現場ならなんとでもするが、試験とかいうアホのつくったアホな世界観に合わせる能力はここの連中にはないわ

152:名無しさん@そうだ選挙にいこう
14/05/13 10:21:36.13
>>150
バカを相手にしなくていい
下位互換性を保つ とあったら普通は 
低いバージョンのエクセルでも開けて正しく見れること を指す

153:名無しさん@そうだ選挙にいこう
14/05/13 10:22:26.68
高校や大学受験じゃねーんだよ
受けたこともない・勉強したこともないなら黙ってりゃいいのに

154:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/13 18:54:07.36
>>155
indexは
=INDEX(B1:B3,MATCH(D1,A1:A3,0))
こんな感じでいいけど、まぁ第三引数一個減らしたところで変わらんだろう。
もうそこまで重いならaccessにした方がいいと思う。

157:名無しさん@そうだ選挙にいこう
14/05/13 19:05:16.37
>>154
仕様に関する質問はメーカーサポートへ

158:名無しさん@そうだ選挙にいこう
14/05/13 19:13:25.89
>>154
あなたの求める答えじゃないけど
エクセル2000はそうなってます。

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

オフィス2000より古いのって97でしたっけ?
たしかウチでもウィンドウズ98のPCに入ってたと思うんですが、
そのPC自体が今起動できる状態じゃないんで試せなかったです。

159:名無しさん@そうだ選挙にいこう
14/05/13 19:23:56.23
SUMPRODUCT()ならまだしも、VLOOKUP()が重いなんてまずない
重いのは別に原因がある

160:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/13 20:01:17.98
レコードが数千行もあったら、普通はデータベースソフト使うところ、そうじゃない会社は意外とたくさんある
急成長してシステムに手が回ってない所とか

顧客がたった2年で1000倍に増えちゃった会社を知ってる
大ヒットって怖いね

162:名無しさん@そうだ選挙にいこう
14/05/13 20:05:11.83
まさにそれ。新しい会社ならいいけど、古い会社が何かの間違いで急成長すると色々歪になる。
タイムカードも去年まで手書き+電卓計算だったわ。
金は取らないから、ちょっとでいいのでレクチャーさせて欲しい。苦しんでる事務さんはいっぱいいるだろう。

163:155
14/05/13 20:09:40.05
皆さんレスありがとうございます
とりあえずは、"りんご"がメンテナンスの最後の砦なので
現状維持でいこうと思います

>>160
まさにそんな感じです

164:名無しさん@そうだ選挙にいこう
14/05/13 20:53:35.50
エクセルで100万行扱える様になって久しいわけで
数千行程度でデータベースソフト奨めるのもどうかと思う

165:名無しさん@そうだ選挙にいこう
14/05/13 20:58:08.32
ええー?最近のエクセルは、100万行以上扱うるの?
俺も新しいの買おうかな

166:名無しさん@そうだ選挙にいこう
14/05/13 21:04:59.72
Excel2007から 1万6384列 × 104万8576行 になりました

167:名無しさん@そうだ選挙にいこう
14/05/13 21:07:13.07
実際にデータと数式で100万行埋めたらどうなるだろう

168:154
14/05/13 21:07:18.48
>>157
そうします
>>158
態々2000を立ち上げて調べていただき
ありがとうございました

169:名無しさん@そうだ選挙にいこう
14/05/13 21:17:40.72
>>167
ほぼ間違いなくフリーズする
全セル選択後、「1」を入力してctrl+enter
A1,A2,A3・・・I1000000ぐらいでフリーズした
win7+E8400+メモリ4GB+エクセル2010だったかな

170:158
14/05/13 21:51:41.67
>>168
わざわざってことじゃなくて普段から家では2000使ってますwww

2013なんて触ったこともないし、
2007とか2010とかは会社のPCで使うけど家には2000までしかないです。

171:名無しさん@そうだ選挙にいこう
14/05/14 07:12:34.99
>>163
そもそも引っ張ってくるのは入力時だけだろ?
例えば昨日までの入力したセルのVlookupなんてもはや不要なんで
コピー 数値として貼り付け やって計算式を無くして数値として固定化しちゃえば軽くなるだろ

172:名無しさん@そうだ選挙にいこう
14/05/14 08:19:37.35
trueって-1だとずっと思ってたわ

173:名無しさん@そうだ選挙にいこう
14/05/14 08:38:29.05
BASIC 上がりの爺乙
まあ、VBA は -1 だから、こっちで我慢汁

174:名無しさん@そうだ選挙にいこう
14/05/14 09:11:52.86
>>173
MSX BASICのTRUEは1だよ

175:名無しさん@そうだ選挙にいこう
14/05/14 09:14:51.27
そもそも0以外は全部true
なんで-1にするかというと、整数型でオールビット1にすると何バイト変数でも必ず-1になるから

176:名無しさん@そうだ選挙にいこう
14/05/14 09:29:19.82
なるほろ~
他システムとの互換性からなんだ。
一つおりこうさんになれました

177:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/14 11:18:15.83
>>177
一致対象の数字でリスト作っておいて、
そのリスト範囲で、検査対象の数字を数えて>0="一致"は

179:名無しさん@そうだ選挙にいこう
14/05/14 11:41:37.28
>>177
こんなのはどう?
比較する数値が1列にまとまってるから、ちょっとはわかりやすくないかな
=IF(ISERROR(MATCH(G1,{19,79,93,96},0)),"不",)&"一致"

180:名無しさん@そうだ選挙にいこう
14/05/14 11:45:49.94
>>177
Match( ) しかなさげだね
あまり変わらんけど、配列使って
=if(isna(match(G1,{19,79,93,96},0),"不一致","一致")
でどうかな?

181:名無しさん@そうだ選挙にいこう
14/05/14 11:46:35.19
被った... orz

182:名無しさん@そうだ選挙にいこう
14/05/14 13:28:25.68
>>178-181
どうもです
そういうのを探してました
{ }ですねありがとうございました

183:名無しさん@そうだ選挙にいこう
14/05/14 15:47:30.85
【1 OSの種類         .】 Windows7hp
【2 Excelのバージョン   】 Excel2013

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

具体的には目的のファイルのExcelの裏に重なって
タイトルがExcelでシートのないExcelが開かれます。
目的のファイルを先に閉じると空白のExcelが残ります。
空白のExcelを先に閉じると目的のファイルも閉じます。
どうしたらこれを開かないようにできますか?

184:名無しさん@そうだ選挙にいこう
14/05/14 22:24:19.46
下側2~3セルに数式をコピーする時に、
↓、ctrl+D、↓、ctrl+D、・・・って連打してて
間違ってctrl+↓でsheetの最下セルでctrl+Dを押しちゃって
それをスルーしちゃって保存してて、気が付くとファイルサイズが激肥大化してるという現象

どーだ、あるあるだろう

185:名無しさん@そうだ選挙にいこう
14/05/14 22:36:30.01
>>183
他のアプリケーションを無視する
違ってたら御免

186:名無しさん@そうだ選挙にいこう
14/05/14 23:00:22.82
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

このようなグラフを作りたいです。
URLリンク(uproda.2ch-library.com)
(注意:このグラフの一部は画像ソフトで作っています。)

F3セルの値は参考として載せたいものの、折れ線フラフは
実線ではなく点線にするにはどうすればいいでしょうか?

187:名無しさん@そうだ選挙にいこう
14/05/15 00:14:28.36
>>186
その系列選択した状態で、その区間をクリックするとその区間だけ選択された状態になるから、あとは右クリックで色でも線の種別でも設定し放題だったと思う

188:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/15 15:07:21.32
>>116
iserror使え

190:名無しさん@そうだ選挙にいこう
14/05/15 15:08:24.29
アンカーミスった
>>189は、>>188

191:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/15 15:11:58.09
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013

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

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

Excel2013では Alt+O を押すと
「以前のバージョンのメニューシーケンスを入力」
と出るだけで何を入力すればいいか、どんな選択肢があるか?
が表示されません。表示されるような設定は出来ますか?

193:名無しさん@そうだ選挙にいこう
14/05/15 15:55:46.16
>>189-191
iserrorでできますたサンキュー!!

194:名無しさん@そうだ選挙にいこう
14/05/15 16:18:54.72
>>192
そのままshiftEでok

195:186
14/05/15 20:21:08.83
>>187
できました。
最初は「何書いてんだコイツ、俺へのレスか?」って思ってたけどねw

196:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/15 20:36:20.39
196
自己解決しました
choose(A1,5,15,20,32)でできました

198:名無しさん@そうだ選挙にいこう
14/05/15 20:54:32.39
Ctrl+1ってそーいうことじゃないのか。
言われてみれば、リボンになってから、Altでメニュー掘ってく使い方はしなくなったな

199:名無しさん@そうだ選挙にいこう
14/05/15 22:36:01.87
>>195
書いてる方もわかるかなぁ? 状態だったけど、解決してよかった。

200:名無しさん@そうだ選挙にいこう
14/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))))))

201:200
14/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:名無しさん@そうだ選挙にいこう
14/05/16 00:12:13.65
>>201
複雑すぎる上に無駄多過ぎだろ
そういう式書く奴は死ねよ、マジで

203:名無しさん@そうだ選挙にいこう
14/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

204:200
14/05/16 00:18:34.94
>>203
いや、それでやって5だったり6だったり7だったりと
どうやらそういうのが苦手なようで

205:名無しさん@そうだ選挙にいこう
14/05/16 00:21:15.73
>>200
VBSでやりたいならVBSのスレにいけ
Excelの質問じゃない

206:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/16 01:04:06.84
>>204
そんなのも数えられないようなバカがよくこんな式書けたな
エラー出まくって適当なとこに閉じ括弧入れて、とかやってそう

208:名無しさん@そうだ選挙にいこう
14/05/16 01:33:22.24
ネストの深さが答えられない回答者も同レベルにしか見えない…

209:名無しさん@そうだ選挙にいこう
14/05/16 02:06:52.44
>>207
短絡的だな
「シート作成者は別にいて
シート利用者が不便で一部手直ししようとしたものの
この複雑怪奇な式
Excel97なのでifは7レベルまでだから
追加できるかどうか分からない
そこでこのスレで聞いた」
とか
「エラーを潰し潰しやりながら
新しい仕様を何度も追加するうちに
こんなスパゲティな計算式になってしまった
Excel97なので以下略」
とか色々事情はあるだろ

210:名無しさん@そうだ選挙にいこう
14/05/16 02:42:50.95
部分的に同じ式が何度も出てくるから整理しろよ、と思った
(2^GE10)*GJ10 が4回
IF(GI10=1,1,GF$4) が3回
作業セルを使えば式も短くなるし、見通しが多少は良くなってネストの段数で迷うこともなくなるだろうに

ていうかセキュリティ上危険な97なんかいつまでも使ってんなよ

211:200
14/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を超えていないかを質問しました

212:200
14/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:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/16 07:58:04.28
一生悩んでろw

215:183
14/05/16 08:46:44.88
XLStart フォルダにあった個人用マクロブックを削除して
新たに作り直したら解決しました。>>185さん、ありがとう

216:名無しさん@そうだ選挙にいこう
14/05/16 16:25:36.87
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 コピペであれば
【4 VBAでの回答の可否】 可

B列に"納品日"と記入されているセルが複数あります
そのセルの一つ上のセルに"納品日"と記入されているセルから、
2つ下のA列の値を返す場合のコードおしえてください。

217:名無しさん@そうだ選挙にいこう
14/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イベント拾わなきゃならないし、
そうじゃなくてすでに複数の"納品日"セルが存在していて、
それら全てに一括で処理を加える、っていうマクロなら
その処理のトリガーを何か設定しないといけない。

こういうことが曖昧だと答えようにも答えられないよ。

218:216
14/05/16 17:49:49.56
すみません
「その」セルはB列に複数ある"納品日"と書いてあるセルのことです。

書き直しました↓

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

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

"納品日"と記入されているセルから、
2つ下のA列の値を返す
(2つ下がって1つ左に)

219:名無しさん@そうだ選挙にいこう
14/05/16 17:53:02.05
>>216
とりあえず、
計算結果を出したいセルにその計算結果を色違いで手入力し、
計算に必要なセルも別の色で塗りつぶして
そのシートをアップせよ

220:名無しさん@そうだ選挙にいこう
14/05/16 17:57:11.37
>>218
=INDIRECT("A"&(ROW()+2))

221:216
14/05/16 18:27:03.42
>>219
↓のサンプル3というファイルです。よろしくおねがいします
URLリンク(firestorage.jp)

222:名無しさん@そうだ選挙にいこう
14/05/16 18:44:50.47
>>221
B3=A6
それをB14やらB23に
じゃだめなのか

223:名無しさん@そうだ選挙にいこう
14/05/16 18:45:23.12
>>221
B3=A6
それをB14やらB23にコピー
じゃだめなのか

224:221
14/05/16 19:37:05.06
>>222.223
そうです。
しかし、B列に"納品日"が出現するセルは毎回違います

225:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/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

227:221
14/05/16 20:07:29.28
>>225.226
ありがとうございます。

228:221
14/05/16 20:43:21.58
すみませんがもうひとつ
216のようなシートで
A列に「分類」と記入されているセルがあれば
そのセルの1つ下の行を削除して行を詰めるコードもお願いします。

229:名無しさん@そうだ選挙にいこう
14/05/16 20:46:07.48
>>228
エクセル マクロの記録
でぐぐって勉強してこい

URLリンク(www.eurus.dti.ne.jp)

230:186
14/05/16 20:50:06.03
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

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

線の先端を円の中心付近に持っていくと円の周りに
赤い点が現れ(下図上側)、その赤い点に吸い付かれて
しまいます(下図下側)。
URLリンク(uproda.2ch-library.com)

231:230
14/05/16 20:51:12.63
>>230
名前欄の186は関係ありませんw

232:名無しさん@そうだ選挙にいこう
14/05/16 21:07:40.18
>>230
拡大してやれば?

233:221
14/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:名無しさん@そうだ選挙にいこう
14/05/17 00:14:18.06
>>233
上からじゃなくて下の行から削除してきなよ
ズレるじゃん

235:名無しさん@そうだ選挙にいこう
14/05/17 00:31:33.73
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010(下記画像では2013)

URLリンク(i.gyazo.com)

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

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


やりたいことは2段階のプルダウンリストで(始めにD列で区分1を選びその結果でE列で区分2を選択)
リストに変動がありえるため範囲を可変にしているのです。(名前範囲が=$B$6:$B$11のような場合は2段階選択できる)
元のリストの形式はこのようなものからの変更は難しいです。(区分1ごとに列を分けるなど)

236:名無しさん@そうだ選挙にいこう
14/05/17 00:41:33.77
>>235
ファイルのうぷきぼんぬ

237:235
14/05/17 01:09:15.31
>>236
URLリンク(firestorage.jp)

実際には2010で作っていたのですが2013で作っても同じ挙動でした
本ファイルは2013で作成しています

238:名無しさん@そうだ選挙にいこう
14/05/17 07:09:47.96
>>220
それどこに書くんだ?

239:名無しさん@そうだ選挙にいこう
14/05/17 13:53:18.87
>>235
ちゃんと見てないけど
名前定義した範囲が固定ならいけるけど、offsetなんかで可変範囲の場合にはエラーになる現象じゃないかな?
だとしたら残念ながら仕様バグ

240:名無しさん@そうだ選挙にいこう
14/05/17 14:21:59.35
>>235
なんというひどい設計のシートだ。目眩がする。
これはさじを投げても君の責任じゃないから
作った人を捕まえてきて作り直させろ。

241:235
14/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が使えない理由が不明
色々と調べては見たのですが関係あるのかどうかすらよくわかりませんで・・・
URLリンク(www.efcit.co.jp)
URLリンク(okwave.jp)

>>239
可変範囲の名前定義をINDIRECTできないような仕様になってるのですかね
>>240
リスト作ってる人はお偉いさんなのでなかなか・・・

242:名無しさん@そうだ選挙にいこう
14/05/17 14:34:29.59
indirectで可変範囲を指定できない欠陥
concateで範囲指定が出来ないのとか、改善して欲しい

243:230
14/05/17 19:09:26.77
>>232
拡大してもムリぽですた。
真面目に答えてくださいです。

244:名無しさん@そうだ選挙にいこう
14/05/17 20:15:30.25
>>243
は?拡大して操作すれば普通にできたけど?

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

ばか?

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

あと、矢印キーで動かすと線全体が動くんだけど、片側だけ動かすには
どうすればいいですいか?

246:名無しさん@そうだ選挙にいこう
14/05/17 21:30:39.17
>>245
alt押しながら線ひくと枠線にスナップするから
それで位置合わせしなよ
手間のかかるやつだなまったく

247:230
14/05/17 21:50:32.94
>>246
まず初めに円があって、それに線を引きたいので、
枠線スナップじゃダメぽ。

244氏の回答はまだですか?

248:名無しさん@そうだ選挙にいこう
14/05/17 22:00:01.02
>>247
図を拡大じゃなくて
表示を拡大しろといってんのにばか?

249:230
14/05/17 22:14:14.30
>>248
400%拡大してやってみたけど、ダメぽ。
URLリンク(uproda.2ch-library.com)
中心に置こうとしても、周りの赤い点に吸い寄せられてしまいます。
できるなら、ブックをうpして見せてください。

250:名無しさん@そうだ選挙にいこう
14/05/17 22:20:12.22
そもそも、エクセルの作図機能に期待し過ぎでは?

251:名無しさん@そうだ選挙にいこう
14/05/17 22:23:59.93
>>230
先にブックうpして

252:名無しさん@そうだ選挙にいこう
14/05/17 22:38:39.30
>>251
画像を見れば馬鹿でもチョンでもテキトーなのはつくれるよ。
ただ、俺も円の中心に線の先を合わせることは出来なかった。

253:名無しさん@そうだ選挙にいこう
14/05/17 22:48:38.75
>>252
別作業してたからちょっとでも手間省きたかったんだよw
まぁいいや

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

マウスだと無理だな

254:名無しさん@そうだ選挙にいこう
14/05/17 23:00:00.10
おまえらが何と戦っているのかさっぱりわからない
URLリンク(www.winplus.jp)

逆に、赤い点に吸い寄せ「させる」方法を教えて欲しいぐらい

255:名無しさん@そうだ選挙にいこう
14/05/17 23:12:14.69
>>254
大きな円だと中心近辺に持って行けるが、小さい円でもできる?

256:名無しさん@そうだ選挙にいこう
14/05/17 23:22:36.52
ブックをアップロードされるまで待ってダウンロードして開くより、
エクセルを立ち上げて適当な図形を描く方が遥かに手間が省けると思ったのは俺だけ加奈?

257:名無しさん@そうだ選挙にいこう
14/05/17 23:38:55.93
URLリンク(light.dotup.org)
小さい円ってどんぐらい小さいわけ?

258:名無しさん@そうだ選挙にいこう
14/05/17 23:45:32.55
>>255
できる
URLリンク(www.winplus.jp)

259:名無しさん@そうだ選挙にいこう
14/05/18 00:08:11.32
Excel2003ですが
セルの書式の設定でマイナス値を赤文字にしてる物とマイナス表記にしている物とが混在刷る表で 
=で引用して計算させる場合にマイナスがプラスになったりするような結果に影響が出ることはありますでしょうか?
文字が赤字だからマイナスって紛らわしすぎますね、はっきり言ってこの機能無くなってほしいw

260:名無しさん@そうだ選挙にいこう
14/05/18 00:24:54.52
>>259
書式で「マイナスは赤」と設定してある場合は、ちゃんとマイナスで計算されます
人間がマイナス記号を消して字の色を赤に変える操作をした場合はプラスです
ぱっと見、区別がつかないのでややこしいですね

261:名無しさん@そうだ選挙にいこう
14/05/18 00:47:57.38
>>259
ない。
VBAだとcells(1,1).textで取得すると値が変わる(そんなことする人はまずいないだろうけど)

262:259
14/05/18 01:06:35.76
>>260
>>261
ありがとうございます。色々検証してみましたが確かにそのようですね。

263:259
14/05/18 01:24:58.95
>>260
>>261
259ですが原因がわかりました
小数点5桁ある数値で0が4つ付く場合は小数点5桁に書式指定してないとエラー表示が出るようですね
(0.00001 のような数値)
これが集計結果がおかしくなった原因の一つのようです。

264:名無しさん@そうだ選挙にいこう
14/05/18 01:27:33.13
▼━質問テンプレ (必ず使ってね) ━━
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

現在、Excel2007を使っているのですが、
ブック間でリンクを張って、リンク先の書式変更というものはできるものなのかということを
ご教示いただけたらと思います。
例えば、リンク元のセル内の書式が%表示のものをリンク先では小数点第1位までに表示するということです。
(リンク元)126%→(リンク先)126.0といった具合にです。

265:名無しさん@そうだ選挙にいこう
14/05/18 01:30:47.57
>>263
補足ですが計算結果が0.00001になるような場合です。。表にはエラーの文字が!!w

266:名無しさん@そうだ選挙にいこう
14/05/18 01:31:48.82
>>264
リンクされるのは内容だけ
書式の設定はセル単位
つまり「できる」

逆に書式までリンクする方法は「ない」

267:259
14/05/18 02:00:42.82
さらなる質問ですが
小数点が多い数値でセルには 「-9E-05」 といったような表記がされる場合とされない場合があるようですが、表記するしないの
基準は一体何なのでしょうか?

268:名無しさん@そうだ選挙にいこう
14/05/18 02:16:36.95
>>267
桁数と列(セル)の幅

269:名無しさん@そうだ選挙にいこう
14/05/18 04:08:21.76
>>266
ありがとうございます
追加なんですが、書式設定で264のようにする場合は、表示形式で
ユーザー定義からやるべきなんでしょうか?
それとも、分類の中から作成するべきなんでしょうか?

270:名無しさん@そうだ選挙にいこう
14/05/18 08:16:21.84
>>269
PC内の計算量という意味では同じ
普段は分類から選べばok
分類にない場合はもちろんユーザー定義で

271:名無しさん@そうだ選挙にいこう
14/05/18 10:38:29.93
>>270
本当にありがとうございます

272:名無しさん@そうだ選挙にいこう
14/05/18 22:40:51.29
>>268
ありがとうございます。
他のセルから引用して計算するときに桁数が多くて桁数が違っている時に出るようですね、
桁数が多くても同一の物の足し算引き算などではでないようですね

273:名無しさん@そうだ選挙にいこう
14/05/18 23:17:09.73
>>267
Excelは小数点以下の計算を間違える時があるから注意な

274:名無しさん@そうだ選挙にいこう
14/05/18 23:28:30.20
ブックを開いて、なにもせずに閉じようとすると「保存しますか?」って聞いてきます。
何が原因か調べる方法があるでしょうか?
できれば、どこのセルが悪さをしてるかまで分かるとありがたいです。
=today()とかは使っていません。

275:名無しさん@そうだ選挙にいこう
14/05/18 23:46:05.94
>>274
ブックを開いただけで計算される関数は、TODAY関数のほかに
CELL、INDIRECT、INFO、NOW、OFFSET、RANDの6個があります
これらを使っていると必ず「保存しますか?」になります

簡単に調べる方法は聞いたことないですね
数式そのものをチェックするにはVBAを使うしかないでしょう

276:274
14/05/19 00:02:15.85
>>275
TODAY, NOW, OFFSET以外は使ったことがなく、
TODAY, NOWはここ何年も使ってないので、OFFSETが怪しいです。
1年くらいまえに作ったものを再利用してるので忘れてしまったw

277:名無しさん@そうだ選挙にいこう
14/05/19 00:23:29.53
>>274
揮発性関数
で調べてみて

278:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/19 13:58:51.75
>>278
(具体的には手動入力項目未入力の状態で
350KBくらいの)
全然具体的じゃない
シートの内容見なおしてみては

280:278
14/05/19 14:09:51.82
シート作成に1ヶ月、それ以降も2年掛けて軽く4~50回は見直しを繰り返し、
何とか一番重いセルを1秒軽量化できたのですが、それでも未だに
一番重いセルが(Windows再起動直後の一番PCが軽い状態で)2.5秒くらいかかります
1から組みなおすには複雑化しすぎて(重い以外は正常に動いてるのもあるので)
…今からじゃちょっときついです

AthlonII X4だと重いのですが、i7の人から「まあ、Excelシートってこんなもんじゃない?
重くは無いよ」って話を一度戴いてるので、本当にi7ならII X4で重いシートも
重くないのか知りたかったのですが…

281:名無しさん@そうだ選挙にいこう
14/05/19 14:15:35.42
シート見ないとそんなもん分からん
漫画喫茶で試せば?

282:278
14/05/19 14:18:36.12
>>281
その手がありましたか!>漫画喫茶
ありがとうございます

283:名無しさん@そうだ選挙にいこう
14/05/19 15:43:50.13
>>278
Excelでやる業務じゃないってことでしょ

284:名無しさん@そうだ選挙にいこう
14/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:名無しさん@そうだ選挙にいこう
14/05/19 17:38:37.36
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

CORREL関数を使いたいのですが範囲内の空欄を無視するのではなく0として認識して欲しいです。
0を非表示にする以外の方法はありますか。

286:名無しさん@そうだ選挙にいこう
14/05/19 18:23:59.04
>>285
{=CORREL(IF(ISBLANK(A1:A3),0,A1:A3),IF(ISBLANK(B1:B3),0,B1:B3))}
{ } の入力は配列数式でググって

287:名無しさん@そうだ選挙にいこう
14/05/19 18:50:19.71
>>284
そんな方法はない
数字の幅が太いフォントなら色々あるから、そういうのを使う

288:名無しさん@そうだ選挙にいこう
14/05/19 20:07:24.32
>>286
ありがとうございます

289:名無しさん@そうだ選挙にいこう
14/05/19 21:39:08.37
やるとすれば小数点以上と以下を分けてそれぞれ全角にして
半角小数点と&で繋げばいい

290:名無しさん@そうだ選挙にいこう
14/05/19 22:11:21.35
>>278
数列×全行 などの
巨大な「印刷範囲」を設定されてませんか。

291:名無しさん@そうだ選挙にいこう
14/05/19 23:04:49.13
>>278
新規ブックにシートを丸ごとコピペしたら一気に軽くなったりして

292:名無しさん@そうだ選挙にいこう
14/05/20 00:15:24.13
>>280
> i7の人から「まあ、Excelシートってこんなもんじゃない?
> 重くは無いよ」って話を一度戴いてるので、

なら、その人と同じ構成の PC 買えばいいだけじゃないの?

293:名無しさん@そうだ選挙にいこう
14/05/20 00:57:14.84
いや、その人を上回る構成のPC買えよ

294:名無しさん@そうだ選挙にいこう
14/05/20 01:40:49.06
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 それしか方法がなければ可

かなり基本的な質問だと思うのですが…
図形を挿入し、「テキストの編集」からテキストを書き込んでいるのですが、
テキストの左上にすごく小さいフォントサイズで同じ内容の文章が表示され、ゴミのように見えて見栄えがよくありません。
表示されないようにしたいのですが、方法を教えてください。

295:名無しさん@そうだ選挙にいこう
14/05/20 01:42:53.08
>>294
図形を右クリック テキストの編集 delete
もしくはテキストに空白スペースでもいれておけばいいのでは

296:名無しさん@そうだ選挙にいこう
14/05/20 01:55:08.28
>>295
一度消してみました。
それでも、再びテキスト入力すると、入力と同時に左上に小さいフォントサイズの同じ文章が現れます。

長方形の図形の中にテキストを入れ、棚に張るの表示を作りたいのです。

297:名無しさん@そうだ選挙にいこう
14/05/20 02:10:17.42
>>296
>棚に張るの表示を作りたいのです。
拙僧の勉強不足で理解できなかった。これをもう少し詳しく

298:名無しさん@そうだ選挙にいこう
14/05/20 02:33:19.75
>>297
× 棚に張るの表示を作りたいのです。
○ 棚に張る標示を作りたいのです。

299:名無しさん@そうだ選挙にいこう
14/05/20 03:13:38.53
>>294
2010以降なら、右クリック→「テキストの編集」ってしなくても
図形挿入していきなりタイプすれば文字が入るはずなんだけど
それでやってもダメかな…根拠はないけど物は試しで

あと、もう一つ試しで
長方形じゃなくて他の図形とかテキストボックスだとどう?

300:名無しさん@そうだ選挙にいこう
14/05/20 07:30:44.97
「貼る」じゃね?

301:名無しさん@そうだ選挙にいこう
14/05/20 07:52:19.02
左上のゴミってなんだろう
再現しないんだけど
URLリンク(momogaku.s17.xrea.com)

302:名無しさん@そうだ選挙にいこう
14/05/20 07:58:55.02
スクショうp

303:名無しさん@そうだ選挙にいこう
14/05/20 08:26:20.72
なんか再現できたぞ
もしかして、こんな感じか?
URLリンク(momogaku.s17.xrea.com)

ようするに、影付きの状態が「規定の図形」になってんじゃないか?

304:名無しさん@そうだ選挙にいこう
14/05/20 08:28:52.19
やだかわいい

305:名無しさん@そうだ選挙にいこう
14/05/20 08:46:00.64
むしろ影付き文字に設定する方法が分からなかった

306:名無しさん@そうだ選挙にいこう
14/05/20 09:10:50.84
影の設定で、位置を左上、距離を遠く、サイズを小さく、色を濃くすればこの状態になるわけだ

307:名無しさん@そうだ選挙にいこう
14/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」となります。


どう対処すればいいでしょうか?
よろしくお願いします。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch