トップページ⇒bsoft
1002コメント431KB

Excel総合相談所 121 [無断転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@そうだ選挙にいこう2016/02/18(木) 00:17:02.42
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

前スレ
Excel総合相談所 120

http://peace.2ch.net/test/read.cgi/bsoft/1445988669/

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

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
0002名無しさん@そうだ選挙にいこう2016/02/18(木) 00:18:02.33
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意。
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでこのスレでは回答が得られにくいです。
  ここで聞くよりもVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチは嫌う人が多いのでなるべく避けましょう。マルチをすると、逆に回答は得られにくくなると思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
0003名無しさん@そうだ選挙にいこう2016/02/18(木) 07:40:48.90
このスレで質問する女は経理課のメガネのお局オールドミスで一生終わる呪いをかける
さあ呪った
0004名無しさん@そうだ選挙にいこう2016/02/18(木) 10:47:26.96
つまりアレですね
とっても不細工で将来全然結婚の見込みが無い上に
定職にもつけないような就活中の女性は
このスレで質問すればどっかの会社に経理で定年まで雇ってもらえるわけですね
素晴らしいご利益ですね
0005名無しさん@そうだ選挙にいこう2016/02/18(木) 12:42:06.31
ブスよ、惨めだろうが
自分の顔を 認めよう
あなたにゃ幸せ来ないけど
望みだけは持とう
0006名無しさん@そうだ選挙にいこう2016/02/18(木) 22:47:49.06
で?
0007名無しさん@そうだ選挙にいこう2016/02/19(金) 00:42:31.48
質問です。
任意の列の全セルに対して、データの末尾に任意の文字を挿入できますか?
例えば住所録みたいなブックがあったとして、「氏名」の列全セルの末尾に「様」を挿入するみたいな。
Office2013です。
0008名無しさん@そうだ選挙にいこう2016/02/19(金) 00:51:06.54
様を付加する式を隣に作って 値のみ貼り付け
0009名無しさん@そうだ選挙にいこう2016/02/19(金) 00:57:57.05
For Each R In Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
  R.Value = R.Value & "様"
Next

とか
0010名無しさん@そうだ選挙にいこう2016/02/19(金) 04:30:57.97
表示だけで良いなら、セルの書式設定でユーザー定義を選んで
0"様" にする
0011名無しさん@そうだ選挙にいこう2016/02/19(金) 10:35:23.31
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列に郵便番号
B列に住所
C列に地区(東京都千代田区とか)
D列に枚数
が入ってて地区ごとに集計出してる
枚数の集計はデータの小計でズバッと出してるんだけどできればB列に地区ごとのデータの個数も入れたい
今はCOUNTAを手打ちで入れてるんだけど枚数みたいにいっぺんに出すことってできますか?
データの個数が変わる場合もあるから出来ればそれに対応できるようにしたい
0012名無しさん@そうだ選挙にいこう2016/02/19(金) 11:24:52.43
>>11
B列には住所が入ってるのに、
そこにデータの個数を入れるってどう言うこと?
何を言っているのかチョット意味が分からない
0013名無しさん@そうだ選挙にいこう2016/02/19(金) 11:25:09.41
>>11
ピボットテーブル
0014112016/02/19(金) 12:03:42.21
    A      B             C            D
1  000-0000  ○○区○○町1-1-1 東京都○○区     500
2  000-0002  ○○区○○町2-1-1 東京都○○区     100
3                      2 東京都○○区集計  600
4  000-0003  ××区○○町1-1-1 東京都××区     200
5  000-0004  ××区○○町2-1-1 東京都××区     500
6  000-0005  ××区○○町3-1-1 東京都××区     300
7                      3 東京都××区集計  1000
8  000-0006  △△区○○町1-1-1 東京都△△区     300
9  000-0007  △△区○○町2-1-1 東京都△△区     500
10                     2 東京都△△区集計  800
                       7      総計     2400

こんな風に小計を使って出来た集計行にデータの個数を入れたいんです
今まではその個数は後からCOUNTAで手入力してた
ピボットテーブル使うとこの形崩れてしまって困ってます
0015名無しさん@そうだ選挙にいこう2016/02/19(金) 12:12:18.12
>>14
COUNTIF使えば良いんじゃね?
LENとLEFT使って、集計抜いた文字列をワイルトガカートで検索値にして
0016名無しさん@そうだ選挙にいこう2016/02/19(金) 12:25:39.77
後で使い易いように住所はセルを分けてバラバラに入力してるなぁ
0017112016/02/19(金) 12:41:35.80
>>15
ありがとうございます
分かりやすく東京都○○区だけにしたけど、いろんな地区入ってるから検索値の文字数も変わってくるんだ
地区も少なければいいんだけど多くなったりもする(滅多にないが最大で100地区くらい)
なかなか難しいかな…
0018名無しさん@そうだ選挙にいこう2016/02/19(金) 15:15:03.96
お世話になります。

関数を使って、指定した文字列までセル番地を飛ばしてくれるような方法はあるで
しょうか?
現在、A列に得意先、B列に案件名を入力しているファイルが存在し、別シートに得意
先Aであれば得意先Aだけの
案件名をずらーっと入力されるようにしようと思っています。
それにはIF関数とOFFSET関数の両方を使っており、もしそうであった場合は隣の列の
値を参照してね、と言う具合です。

しかし、悩んでいるのは

【得意先Aだった場合に隣の値を参照する】
シート1

A B
1  得意先A     案件1
2  得意先A     案件2
3  得意先B     案件1
4  得意先C     案件1
5  得意先A     案件3

シート2

A
1 =IF(シート1!A1=
0019名無しさん@そうだ選挙にいこう2016/02/19(金) 15:16:28.95
お世話になります。

関数を使って、指定した文字列までセル番地を飛ばしてくれるような方法はあるで
しょうか?
現在、A列に得意先、B列に案件名を入力しているファイルが存在し、別シートに得意
先Aであれば得意先Aだけの案件名をずらーっと入力されるようにしようと思っています。
それにはIF関数とOFFSET関数の両方を使っており、もしそうであった場合は隣の列の
値を参照してね、と言う具合です。
しかし、悩んでいるのは
【得意先Aだった場合に隣の値を参照する】
シート1
A B
1  得意先A     案件1
2  得意先A     案件2
3  得意先B     案件1
4  得意先C     案件1
5  得意先A     案件3

シート2
A
1 =IF(シート1!A1="得意先A", OFFSET(シート1!A1, 0, 1),"")

という場合、セルをオートフィルしていくと対象列は案件名を表示しますが、そうで
ない場合は空白行となります。
こういう場合、次の得意先Aのセル番地まで飛ばす方法はどのようなものがあるで
しょうか?空白行なく連続して入力されるようにしたいのです。
お手数ですが、ご教授よろしくお願いいたします。
0020名無しさん@そうだ選挙にいこう2016/02/19(金) 19:53:09.42
ピボットテーブルで
0021名無しさん@そうだ選挙にいこう2016/02/19(金) 21:16:29.74
>>19
今回の事例の場合は、OFFSETよりINDEXの方がいいと思う
入力する度に再計算されるとなると何個入力欄が用意されているかにもよるが無駄な処理待ちが発生しやすくなる

本題は、作業列を使えば割りと簡単
0022名無しさん@そうだ選挙にいこう2016/02/19(金) 23:54:21.02
>>17
VBA使えば簡単っぽいねえ

書いてあげたいけどおら焼酎3杯目だからダメだ
誰かコード書いてあげてよ
0023172016/02/20(土) 08:05:19.53
>>22
VBA書いていただけると本当にありがたいです
0024名無しさん@そうだ選挙にいこう2016/02/20(土) 09:56:38.09
Sub Shuukei1()
Dim n1 As Long
n1 = 1
n2 = 1 '1が計算開始する行 見出しが入るときは2と修正
Do Until Cells(n1, 3) <> Cells(n2 + 1, 3) Or Cells(n1, 3) = ""
n2 = n2 + 1
If Cells(n1, 3) <> Cells(n2 + 1, 3) Then
Rows(n2 + 1).Select
Selection.Insert Shift:=xlDown
Cells(n2 + 1, 3) = "集計"
Cells(n2 + 1, 4) = WorksheetFunction.Sum(Range(Cells(n1, 4), Cells(n2, 4))) '4が数字の入る列 ここではD
n1 = n2 + 2
n2 = n1
End If
Loop
End Sub
0025名無しさん@そうだ選挙にいこう2016/02/20(土) 09:58:18.15
あ
Dim n2 As Long 忘れた
0026名無しさん@そうだ選挙にいこう2016/02/20(土) 10:10:30.45
書き直し >>17

Sub Shuukei2()
Dim n1 As Long '計算開始する行 見出しが入るときは修正
Dim n2 As Long '計算開始する行 見出しが入るときは修正
n1 = 1
n2 = 1
Do Until Cells(n1, 3) <> Cells(n2 + 1, 3) Or Cells(n1, 3) = ""
n2 = n2 + 1
If Cells(n1, 3) <> Cells(n2 + 1, 3) Then
Rows(n2 + 1).Select
Selection.Insert Shift:=xlDown
Cells(n2 + 1, 2) = n2 - n1 + 1
Cells(n2 + 1, 3) = "集計"
Cells(n2 + 1, 4) = WorksheetFunction.Sum(Range(Cells(n1, 4), Cells(n2, 4))) '4が数字の入る列 ここではD
n1 = n2 + 2
n2 = n1
End If
Loop
End Sub
0027262016/02/20(土) 10:16:24.88
集計の行が入ってない状態から上の実行すると
集計用に行あけて集計して枚数と個数出す
既に集計の行があいてるなら上じゃ阿寒湖
0028262016/02/20(土) 10:29:37.58
あと上じゃデータの個数の合計出ないけど、要するに計算前の状態の行数と同じだ
そこんとこヨロシク
0029名無しさん@そうだ選挙にいこう2016/02/20(土) 11:11:36.92
おまえらVBAよりさきにピボット覚えなきゃ
0030名無しさん@そうだ選挙にいこう2016/02/20(土) 11:21:59.88
どなたか前スレ981お分かりになる方いらっしゃいませんか…?
入力規則のリストをindirectを使って設定したいのですが上手くいきません。

>「注文1」、「注文2」、「注文3」...と名前を定義してあるリストがsheet1にあります。この名前は=INDIRECT("sheet1!A$2:A"&COUNT(sheet1!A:A))のようにデータの入っている範囲のみ選択するようになっています。
>
>Sheet2のA11:13に1、2、3...と番号を振ったセルがあり、その横のセルに注文1〜3の入力規則を設定したいのです。
>そのまま「=注文1」...と設定すると上手くいくのですが、「=INDIRECT("注文"&A11)」...とするとエラーになってしまいます。
0031名無しさん@そうだ選挙にいこう2016/02/20(土) 11:48:25.58
>>30
めんどくさいからブックをアップして
0032名無しさん@そうだ選挙にいこう2016/02/20(土) 13:30:34.23
>>31
すみません、会社のファイルなのでアップはできないんです…
片方のINDIRECTを消すとエラーにならないのですが、入力規則と名前の定義の両方でINDIRECTを使うことはできないということでしょうか?
0033名無しさん@そうだ選挙にいこう2016/02/20(土) 17:18:19.74
>>30
まず基本的な考え方の間違い
×COUNT(sheet1!A:A)
○COUNTA(sheet1!A:A)
だとおもうよ
↑これでも目的は達成しないので 代替え策として

名前の定義で
 注文1 =Sheet1!$A:$A
 注文2 =Sheet1!$B:$B
  ・
  ・
  ・
入力規則で
=OFFSET(INDIRECT("注文"&A11),1,,COUNTA(INDIRECT("注文"&A11)))

でどうでしょう(因みに EXCEL2016でやってみた)
0034名無しさん@そうだ選挙にいこう2016/02/20(土) 17:26:39.44
>>前スレ933、964
データが多いので何万行にまで数式を埋めるのは避けるべき
また、判らないVBAを使うほどでもないので半自動化

例えば、SheetBのA列に削除したい品番があるとすると
SheetAのE列を作業列にして、E2に=COUNTIF(B!A:A,A2) 下にコピー
E列で昇順並び替えてE列が1以上の行を削除
0035名無しさん@そうだ選挙にいこう2016/02/20(土) 18:31:06.34
以前も質問した物ですが以下のようにアドレス関数でアドレスを取得し
行番号だけを抽出したいのですが

=ADDRESS(MATCH(MAX(A1:A4),A1:A4,0),1,4)
↓結果
A5

=RIGHT(B1,LEN(B1)-1)
↓結果
5

このように2セルに渡って文字を削除する方法しか思いつかないのですが
1セル一行の式でできるようにする方法がありましたら教えてください。よろしくお願いいたします。
0036名無しさん@そうだ選挙にいこう2016/02/20(土) 18:34:26.14
>>35
>訂正 例ですが矛盾していました。
=ADDRESS(MATCH(MAX(A1:A9),A1:A9,0),1,4)
↓結果
A5
0037名無しさん@そうだ選挙にいこう2016/02/20(土) 18:37:28.83
=MATCH(MAX(A1:A9),A1:A9,0)
でいいように思うが?
0038名無しさん@そうだ選挙にいこう2016/02/20(土) 18:51:35.15
>>37
なるほど Match関数でできるのですね。 ありがとうございました。
0039名無しさん@そうだ選挙にいこう2016/02/20(土) 18:55:42.14
>>38
自分で >>35-36でMatch関数使ってるじゃん バカなの?
0040352016/02/20(土) 19:06:28.51
>>39
Match関数はまだ一度も使ったことが無く
前スレで教えてもらった通りに使ってたのでMatch関数のメカニズムがわかっていませんでした
0041名無しさん@そうだ選挙にいこう2016/02/20(土) 20:15:02.37
>>33
ありがとうございます!
月曜日にやってみます!
0042172016/02/20(土) 23:22:34.35
>>26-28
本当に感謝です!!
月曜出勤したら試してみようと思います
0043名無しさん@そうだ選挙にいこう2016/02/21(日) 10:15:21.00
>>39-40
こんな現象が起きるのは、関数がどんな内容か調べないで
そのまま使おうとするからなんだろうな

前スレ>>948の解答方法が正しい気がしてきた
0044122016/02/21(日) 10:50:12.06
>>42
>>28はちょっと判定に不具合がある
具体的には最初の地区が一件だと全く処理をせずに終わってしまう
なので少し手直しして、ついでに総計も出すようにしてみた

Sub Shuukei3()
 Dim start_row As Long
 Dim end_row As Long

 start_row = 1    '計算開始する行 見出しが入るときは修正
 end_row = start_row '計算開始する行と同じ地区の最終行

 With Cells(start_row, 3).End(xlDown)
  .Offset(1, -1) = .Offset(, -1).Row - start_row + 1
  .Offset(1) = "総計"
  .Offset(1, 1) = WorksheetFunction.Sum(Range(Cells(start_row, 4), .Offset(, 1)))
 End With

 Do Until Cells(start_row, 1) = "" '1列目が空欄になるまでループを続ける
  end_row = end_row + 1
  If Cells(start_row, 3) <> Cells(end_row, 3) Then
   Rows(end_row).Insert Shift:=xlDown
   Cells(end_row, 2) = end_row - start_row
   Cells(end_row, 3) = Cells(start_row, 3) & "_集計"
   Cells(end_row, 4) = WorksheetFunction.Sum(Range(Cells(start_row, 4), Cells(end_row - 1, 4))) '4が数字の入る列 ここではD
   end_row = end_row + 1
   start_row = end_row
  End If
 Loop
End Sub

ただし、データの正規化という観点から考えると、本質的にこういう構造の表は良くないと思うよ
0045名無しさん@そうだ選挙にいこう2016/02/21(日) 11:55:41.05
windows8
excel2013
VBA使える

Option Explicit

Sub AAA()
Dim K As Integer, M As Integer

K = 1
M = 100

Do

Cells(K, 1).Value = M
K = K + 1
M = M + 5

Loop While Cells(K, 1).Value <= 200

End Sub

うまくループせずにオーバーフローするのですが原因は何でしょうか?
よろしくお願いいたします
0046名無しさん@そうだ選挙にいこう2016/02/21(日) 12:25:16.17
Loop While でみてるセルのKが、K+1なので常に空白を参照してるから
0047名無しさん@そうだ選挙にいこう2016/02/21(日) 12:35:49.00
>>46
ありがとうございます
どう修正したらいいでしょうか?
0048名無しさん@そうだ選挙にいこう2016/02/21(日) 12:38:19.73
Loop While (M-5 <= 200)
0049名無しさん@そうだ選挙にいこう2016/02/21(日) 12:46:19.68
ありがとうございます
Loop While (M-5 <= 200)
で、Mから5を引く意味と、カッコをつけるのはなぜでしょうか?
手元の書籍にない書き方です・・・
0050名無しさん@そうだ選挙にいこう2016/02/21(日) 12:48:07.76
直前で5を足してるから
()をつけるのは俺の趣味
0051名無しさん@そうだ選挙にいこう2016/02/21(日) 12:52:18.83
>>50
ありがとうございます。知らないことだらけです・・・
0052名無しさん@そうだ選挙にいこう2016/02/21(日) 12:58:06.12
ちなみに蛇足ですが、
Loop While (M-5 <= 200) にすると、205までループしたので
Loop While (M <= 200) にすると、200までループしました
0053名無しさん@そうだ選挙にいこう2016/02/21(日) 12:59:21.19
そうか すまんね
0054名無しさん@そうだ選挙にいこう2016/02/21(日) 13:01:19.54
いえ、色々とありがとうございます。
Loop Whileのあとには、変数はあまり使わないべきですね。
0055名無しさん@そうだ選挙にいこう2016/02/21(日) 13:23:20.01
1400 15.2
1320 12.1
1100 11.0
上のような表があって20〜10までの値を検索すると1400〜1100までの値が出るようにしたい。
例えば11.2を検索すると1320が出るようにしたいのですがLOOKUP関数を使うと1100が出てしまいます。
完全一致の場合はその隣の値のまま。
0056名無しさん@そうだ選挙にいこう2016/02/21(日) 13:31:21.31
簡単なのは 10-1400の値をそのまま表にして右に対応する値がくるようにしてから VLOOKUP
0057名無しさん@そうだ選挙にいこう2016/02/21(日) 13:49:05.08
>>56
まあそうなんですけど実際の表は膨大なのでかなり時間がかかってしまいます。
0058名無しさん@そうだ選挙にいこう2016/02/21(日) 13:54:10.60
勘違いしてた 10-20を検索して左の数値か 
VLOOKUPが使えない理由は? 最速のはずだけど
ほかにはMATCHとINDEXをつかうほうほうもあるけど それは大好物のひとがほかにいるので回答はゆずる
0059名無しさん@そうだ選挙にいこう2016/02/21(日) 14:07:17.50
スレ違いかもしれませんが、現在無職でEXCELVBAは市販されている本を読み漁ったレベルです。
EXCELVBAの派遣につきたい場合、ここからどのようなスキルを身につけたらいいでしょうか?
また、EXCELVBAの派遣の求人数は多いほうでしょうか?
0060名無しさん@そうだ選挙にいこう2016/02/21(日) 14:44:47.84
EXCELVBAの派遣の求人なんてほぼゼロなんじゃなかろうか?
VB.Netならかろうじてあるかもしれないってレベルだとおもう。
どうせこれからやるならCとかJAVAのほうが良いんじゃない?
0061名無しさん@そうだ選挙にいこう2016/02/21(日) 14:44:53.48
>>55
表が間違えてました
1400 11.0
1320 12.1
1100 15.2
これで11.2を検索すると1400が出ますが1320を出したいんです。VLOOKUP使ってもそうなりますね。
完全一致以外は数値切り上にしたいんです。
0062名無しさん@そうだ選挙にいこう2016/02/21(日) 14:55:33.08
>>60
ありがとうございます。Cとかのほうがよさげですね。
0063名無しさん@そうだ選挙にいこう2016/02/21(日) 15:33:54.78
だったら 数値切り上げにした数値の表をつくって それでVLOOKUPすればいんじゃねーの
0064名無しさん@そうだ選挙にいこう2016/02/21(日) 15:38:11.23
テンプレの3番って、VBAが使える環境にあるか?っ意味でだいじょうぶでしょうか?
0065名無しさん@そうだ選挙にいこう2016/02/21(日) 15:44:10.53
>>61
B列を下みたいに降順ソートできるなら
 A  B
1100 15.2
1320 12.1
1400 11.0

=INDEX(A1:A3,MATCH(11.2,B1:B3,-1))
で出来る
0066名無しさん@そうだ選挙にいこう2016/02/21(日) 16:10:21.48
>>65
ありがとうございます。
0067名無しさん@そうだ選挙にいこう2016/02/21(日) 16:16:42.17
【1 OSの種類         .】 windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

特定のセル たとえばA1セルに何らかの文字列が入力されていた場合
別の任意のセルに たとえばC3セルに数字の1を表示したい場合関数で記述できますか?
文字が入力されていない場合は空白もしくは0が表示されているようにしたいのですが
0068名無しさん@そうだ選挙にいこう2016/02/21(日) 16:26:27.89
C3=IF(A1="","",1)
0069172016/02/21(日) 16:55:42.67
>>44
感謝
データそのものに関しては他にも施設名とか色々入ってるんだけど相談して改善してみる
本当ありがとうございました
0070名無しさん@そうだ選挙にいこう2016/02/21(日) 18:30:45.61
>>68
なぜこうなるのか最初はわかりませんでしたが
仕組みを理解するとなるほどでした
ありがとうございました。
0071名無しさん@そうだ選挙にいこう2016/02/22(月) 00:12:40.71
エクセル2010 ウインドウズ7
このワークシートの数式に、1つまたは複数の無効な参照が含まれています。・・・・・・
というのがワンクリックごとに頻繁に出ます。
オプションから自動エラーチェックをオフにしても変わりません。
エラーなのはわかってるのですがそうしないといけないのでこの表示を出ないようにする方法はあるのでしょうか。
全く仕事がはかどりません。
よろしくお願いいたします。
0072名無しさん@そうだ選挙にいこう2016/02/22(月) 00:45:13.53
>>71
自動再計算をオフ
0073名無しさん@そうだ選挙にいこう2016/02/22(月) 10:00:52.06
>>33
うまくいきました!
ありがとうございました!!
0074名無しさん@そうだ選挙にいこう2016/02/22(月) 10:41:26.87
エクセル2016
vba出来たら使用せずお願いします。

質問失礼します。a1の時間とb1の時間を足した結果がa3の日付と一致し、かつb3の時刻の範囲(例えば8:00~17:00)の間ならa1+b1の結果をc3に表示、両方の条件を満たさなければ、空白を返すという計算がしたいので、よろしくお願いします。
0075名無しさん@そうだ選挙にいこう2016/02/22(月) 12:49:52.15
>>74
時間はシリアル値?
それによって色々変わってくると思う
0076名無しさん@そうだ選挙にいこう2016/02/22(月) 14:03:19.06
>>75
時刻表示です
0077名無しさん@そうだ選挙にいこう2016/02/22(月) 14:59:02.05
>>76
使用するデータのセル(a1,b1,a3)の書式が何に設定されている?
文字列?日付時刻?
0078172016/02/22(月) 16:40:56.62
>>44
少し調べながらデータに対応するように変更してちゃんとできました
本当に有難う、これからすごく作業が楽になります
0079442016/02/22(月) 19:49:27.97
>>78
まぁ、個人的にはもっと根本的な部分から改修すれば
今よりもっともっとはるかに楽で便利に出来そうに思えるけど、
そうなると2chでやり取りって範疇じゃなくなるし
そこまでやれるかどうかはそちらの都合もあるだろうししょうがないか。
とりあえず、少しは楽になって良かったね。
でも元は>>26さんのマクロだから俺よりそっちにお礼言ってね。
0080名無しさん@そうだ選挙にいこう2016/02/22(月) 21:28:10.40
根本的改善ができれば楽だけどってことは多いよな

文字列数字の表を色々集計しないといけない俺なんかもExcelのバージョンが新しければ
わざわざ掛け算をしなくても扱えるのにとか思っちゃうもんな

職場のPCだから諦めて2007を使っちゃいるが
0081名無しさん@そうだ選挙にいこう2016/02/22(月) 22:16:23.49
>>77
a3が日付でb3は標準で8:00~17:00と入力されていてあとは、hh:mmです
0082名無しさん@そうだ選挙にいこう2016/02/22(月) 22:27:43.78
>>81
>>a1の時間とb1の時間を足した結果がa3の日付と一致し
で a1もb1もhh:mmって事よね?

根本的な疑問として
たとえば
A1 = 17:00
B1= 10:00
A1+B1 = 27:00 = 一日と3:00 ←これに一致する日付はいつにしたいの?
0083名無しさん@そうだ選挙にいこう2016/02/22(月) 22:28:48.95
社内のサーバーでexcelファイルを共有してるのですが、そのファイルを誰が投稿したかってどうやってわかりますか?
作成者と最終更新者はわかりますが、誰が投稿したかを調べたいです
0084名無しさん@そうだ選挙にいこう2016/02/22(月) 22:36:30.33
>>81
その状態で、A1とB1の合計で日付とする状況がわからん

42405.36 が
2016/2/5 8:38
こんな表示になっているわけじゃないんだよな?
0085名無しさん@そうだ選挙にいこう2016/02/22(月) 23:40:50.21
>>82
私の説明が悪く申し訳ありません。
a1とb1を足した結果がc3に表示されて判定させたいのですが、その表は3日分続いていまして、c3+b1をc4にいれ同様の判定を3日分させたいのです。
日付列も同様に基準プラス1日で3日分あります。
0086822016/02/22(月) 23:56:06.51
>>85
その説明じゃもっと訳わからん 具体例を書いてくれ
0087名無しさん@そうだ選挙にいこう2016/02/23(火) 01:02:34.89
>>83
サーバーって何?
投稿ってのは何?
0088名無しさん@そうだ選挙にいこう2016/02/23(火) 05:57:32.15
>>85
時間というのが数字としては何になるかと聞いているんだが
理解できているか?

例えば単純に8時を数字で表すなら(小数点第4位まで表示)
0.3333
17時なら
0.7083
となる

A1とB1のセルの書式設定を小数点第4位まで表示で数値にして
その結果をここに書き込んでみてくれ

若しくは、時間の数字の前に ' は入力されているか?
それなら文字列で入力されているから対処法も変わる
0089名無しさん@そうだ選挙にいこう2016/02/23(火) 07:10:19.40
>>88
せるの書式設定でh:mmにしてあります。
直接時刻を入力しています。
8:00なら8:00と入力。
シリアル値で表示すると0.3333になりますが、シリアル値で入力して計算させるのではなく時刻を入力して計算したいのですが、最初の質問の様な計算は関数の組み合わせでは不可能ということでしょうか?

現在は、vbaでやっていて会社の都合でvbaを使えなくなる為、考えていたのですが無理ならしかたありません。
お時間とらせてしまい申し訳ありませんでした。
0090名無しさん@そうだ選挙にいこう2016/02/23(火) 07:17:05.13
>>89
関数で無理とは言わないが合計して日付にするというのが難しい
合計すると翌日にまたいで、8時から17時の範囲にある場合は
C3表示とかなら簡単だけど
0091名無しさん@そうだ選挙にいこう2016/02/23(火) 07:41:13.10
時刻と日付は同じシリアル値を使ってるから 加算して答えを出せる仕組みになってる
2016/2/22 8:00 に 22:00 を加算すれば 2016/2/23 6:00 になるってこと
0092名無しさん@そうだ選挙にいこう2016/02/23(火) 07:49:42.87
根本的なところがずれている気がする
通常は、時刻を入力しただけでは日付データは付与されないが
VBAで入力した日付の日付データが加算されるみたいな設定になってないか?

単に時刻を入力しただけの合計じゃ1900年の1月0日の時間同士の足し算にしかならんからな
0093名無しさん@そうだ選挙にいこう2016/02/23(火) 10:36:21.23
>>92
おっしゃる通りで時刻入力欄と日付入力欄がべつにあり、そこから入力した時刻の日付を取得し日付+時刻の値に変換したうえで最初の質問の処理をループさせています。
説明が悪くすみません。
0094名無しさん@そうだ選挙にいこう2016/02/23(火) 10:50:01.90
>>26
失礼しました
うまいこと行きました
本当に感謝です!
0095名無しさん@そうだ選挙にいこう2016/02/23(火) 11:15:29.37
>>21

遅ればせながら、ご回答ありがとうございました。
おっしゃる通りINDEX関数とMATCH関数との組み合わせで思い描いてたものが作成できました。
ご教授ありがとうございました。
0096名無しさん@そうだ選挙にいこう2016/02/23(火) 16:18:59.97
>>89
根本的なことで理解ができていないようなので説明すると
シリアル値で入力することはない。
書式が日付になっていれば、普通に日付をいれれば、内部でシリアル値になる。
そこにシリアル値を入れたら、それに合わせたおかしな日付が表示される。
書式が文字列になっていて、日付を入れたなら、それは文字列のまま。
書式が時間や日付になっていて、日付や時刻を普通に入れれば、それは内部的に
シリアル値に変換されて扱われる。
シリアル値になっていれば計算を行うことや、日付や時刻の関数を使える。
表示は日付・時刻として表示される(でも内部はシリアル値)。

という関係。
0097名無しさん@そうだ選挙にいこう2016/02/23(火) 21:47:45.16
>>93
日付データがD1にあるとした場合は、

C3=IF((ROUNDDOWN(D1+A1+B1,0)=A3)*((HOUR(A1+B1)>=HOUR(LEFT(B3,FIND("~",B3)-1)))+(HOUR(A1+B1)<=HOUR(RIGHT(B3,LEN(B3)-FIND("~",B3))))),A1+B1,"")
みたいな計算式にするのはどうだろう?

ループさせる内容によって、$を入れてやれば制御もできるだろう
0098972016/02/24(水) 06:07:07.21
ごめん間違えた
C3=IF((ROUNDDOWN(D1+A1+B1,0)=A3)*(HOUR(A1+B1)>=HOUR(LEFT(B3,FIND("~",B3)-1)))*(HOUR(A1+B1)<=HOUR(RIGHT(B3,LEN(B3)-FIND("~",B3)))),A1+B1,"")
だ
もっとスマートな式を出せる人も多いと思われ
0099名無しさん@そうだ選挙にいこう2016/02/24(水) 09:56:18.65
>>98
ありがとうございます!
思い通りに動きました。
0100名無しさん@そうだ選挙にいこう2016/02/24(水) 13:22:11.86
エクセル2002を使っていますが
ブルタウンメニューを貼り付けても
拡大している文字が反映されずサイズ11のままになります
どこが間違えているのでしょうか?
0101名無しさん@そうだ選挙にいこう2016/02/24(水) 22:07:02.19
>>100
プルダウンメニューはサイズが反映サれない
どうしても反映サせたいならvbaで1から作る
0102982016/02/24(水) 23:13:26.45
今更だが
C3=IF((A1+B1+D1-A3>=LEFT(B3,FIND("~",B3)-1)*1)*(A1+B1+D1-A3<=RIGHT(B3,LEN(B3)-FIND("~",B3))*1),A1+B1-A3+D1,"")
のほうが正しいな
>>98だと、合計したのが17時台の数字になるとその合計が表示されるようになってた
0103名無しさん@そうだ選挙にいこう2016/02/24(水) 23:40:34.62
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

折れ線グラフの縦軸の値の間隔をルートの2倍ずつにする方法を教えてください。
0104名無しさん@そうだ選挙にいこう2016/02/25(木) 01:16:33.38
>縦軸の値の間隔ルートの2倍ずつにする・・・

ラベルあるいはティックマークの振り方?
軸自体がルートの2倍対応にしたいなら、縦軸データがそうなっていれば
そのようになると思うけど。
0105名無しさん@そうだ選挙にいこう2016/02/25(木) 04:55:01.12
>>102
全然気づいていませんでした。
ありがとうございます!
0106名無しさん@そうだ選挙にいこう2016/02/25(木) 07:40:52.61
>>105
計算式の中身わかってんのかね?
メンテナンスに苦しまなければいいが
0107名無しさん@そうだ選挙にいこう2016/02/25(木) 09:10:49.92
Excelに新規関数の追加来たな。
IFSにSWITCH、TEXTJOINあたりが使えそうだな。
0108名無しさん@そうだ選挙にいこう2016/02/25(木) 10:28:37.08
範囲指定連結のCONCATがやっと実装されたか。10年遅いんだよ
0109名無しさん@そうだ選挙にいこう2016/02/25(木) 16:58:52.06
Excel2010の印刷プレビューで拡大するには
どうすればよいのでしょうか?
0110名無しさん@そうだ選挙にいこう2016/02/25(木) 17:21:34.52
>>109
右下のボタン、マウスオーバーで「ページに合わせる」って出るやつ
またはCtrl+ホイール
0111名無しさん@そうだ選挙にいこう2016/02/25(木) 19:56:48.92
>>110
ありがとう。
右下のボタン使うしかなさそうですね。
0112名無しさん@そうだ選挙にいこう2016/02/26(金) 05:41:57.45
>>107
MINIFSも便利そう
今まで0を除いた最低値みたいなことやるのに配列数式使ってたけど
この関数使えば必要なくなりそうだ
0113名無しさん@そうだ選挙にいこう2016/02/26(金) 08:17:48.61
自動伸縮するUNIQUEが欲しかった
0114名無しさん@そうだ選挙にいこう2016/02/26(金) 11:34:21.06
質問です。

例えばシートAのA列には元々数式が入力されており、B列が空白ならば何も表示しな
いというIF式をシートAの最後の行まで入れていたとします。
そのシートAの全セルを選択〜コピーして、新たなワークブックに数字として貼りつ
けた場合、A列の数式の入っていたセルも空白セルとしてペーストされますが、
全く何も入っていない空白セルとは扱われません(カウントされている状態でもいえ
ばいいでしょうか)

このとき、空白セルに見せかけた真の空白セルでないものを、元々真の空白セルとし
てペーストする、あるいは置き換えるにはどうすればよいでしょうか?
初歩的な質問ですみません、よろしくお願いいたします。
0115名無しさん@そうだ選挙にいこう2016/02/26(金) 14:26:49.05
>>114
オートフィルタで空白セルだけを表示、列全体を選択して「すべてクリア」
0116名無しさん@そうだ選挙にいこう2016/02/26(金) 18:18:40.64
A2,A5,A8,A11...と、2つ飛ばしでB列にコピペしたい場合
[B1]=A2
[B2]=A5
と入力してオートフィルしても駄目なので
[B1]=INDIRECT("A"&ROW(A1)*3-1)
までは調べられました

1.セル番地なのは変わらないのに、何故、前者の方法ではオートフィルが機能しないのに、後者では機能するのでしょうか?

2. ダブルコーテーションを移動して
[B1]=INDIRECT("A&ROW(A1)*3-1")
とするとエラーになるのは何故でしょうか?

宜しくお願いします
0117名無しさん@そうだ選挙にいこう2016/02/26(金) 20:10:36.47
>>116
問1については簡単です。計算式のあるセルと引用するセルの相対的な位置が変わるからです。
B1セルの =A2 という計算式では、上下方向の位置関係は+1なので、オートフィルしても+1のまま。
B2セルの =A5 という計算式では、上下方向の位置関係は+4なので行番号を使って計算させるしかありません。

問2については、引用符”で囲まれた範囲は「計算式の要素としてではなく」文字列そのまま解釈されます。
正しい式の =INDIRECT("A"&ROW(A1)*3-1) は、先に ROW(A1)*3-1 が計算されて 2 となり、
文字列の結合の結果 A2 となるわけです。
オートフィル後のB2セルの計算式は=INDIRECT("A"&ROW(A2)*3-1)になるので "A" と 2*3-1=5 から A5 となります。
0118名無しさん@そうだ選挙にいこう2016/02/27(土) 00:01:55.46
>>117
詳しくありがとうございます

質問1については、セルの相対的な位置が変わるから+1でオートフィルですか
でも、これがセルではなく
[B1]2
[B2]5
とすれば、オートフィルで[B3]8になりますよね?
この違いが解りませんでした

質問2について、とても解りやすかったです
ダブルコーテーションで括ると文字列扱いは頭にはあったので、ショックでした
ROWの計算式までもが文字列として処理されてしまうってことなんですね
0119名無しさん@そうだ選挙にいこう2016/02/27(土) 06:02:08.10
>>118
余計なお世話かもしれないけど
式中の ROW(A1)*3-1 は ROW()*3-1 でも同じ結果になりますよ
(ただし、式の入力先がB1だからですけど)

そもそも ROW(A1) ってのは、A1の行を求めてるわけで、ROW(A1)=1 です
ROW(A1)*3-1 という式全体で考えると ROW(A1)*3-1=2 です

対して ROW() ですが、
ROW関数はカッコの中が省略されるとそのセル自身の行を求めるので、
これをB1に入力すると ROW()=ROW(B1)=1 ですから ROW(B1)*3-1=2 です

そして、これをオートフィルしても同様です
B2では ROW()*3-1 は ROW(B2)*3-1 と解釈されますから
結果はやっぱり ROW(A2)*3-1 と同じになるのです
0120名無しさん@そうだ選挙にいこう2016/02/27(土) 06:13:52.95
>>118
実際にオートフィルした時の式を見てもらいたい
B3=A4 B4=A7 B5=A6 B6=A9

になっているだろう?

B3は、B1にあるA2に2行分オートフィルされているので足されてA4になる
B4は、B2にあるA5に2行分オートフィルされているので足されてA7になる
B5は、B3にあるA4に2行分オートフィルされているので足されてA6になる
B6は、B4にあるA7に2行分オートフィルされているので足されてA9になる

後は2ずつ足されての繰り返しになる
差分が足されるのではなくオートフィルされた範囲が繰り返し行分足されていくんだ
数字と違って値の差を足すのではなく、行数分元の値に足す挙動になる理由までは知らんけど
0121名無しさん@そうだ選挙にいこう2016/02/27(土) 06:57:57.94
>>114
値貼り付け
0122名無しさん@そうだ選挙にいこう2016/02/27(土) 08:13:34.15
計算式だけなら直感的に
B1=OFFSET(A$2,(ROW(A1)-1)*3,)
のほうがわかりやすいかもしれないと思った
0123名無しさん@そうだ選挙にいこう2016/02/27(土) 10:09:50.89
本当にご丁寧にありがとうございます
>>119
ROWについても調べていたので、単なる行番号を返すのは解っていましたが、()だけの処理は初めて知りました

>>120
実際に試してから質問させて頂いたのですが、>>117さんの「相対的」と今回の「差分」は、とても理解できたんですが、
> 数字と違って値の差を足すのではなく、行数分元の値に足す挙動になる理由までは知らんけど
↑この点が>>118での再質問でした
不可思議ですよね

>>122
新たな表現、調べてみます!
ありがとうございます
0124名無しさん@そうだ選挙にいこう2016/02/27(土) 10:53:15.48
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel 2010

お願いします。
VBAで現在の時間表示にFloor関数を使って15分刻みにしたいのですが
WorksheetFunction.Floorをどのように用いればいいのかわかりません

Sub 日付入力()
With ActiveCell
.Value = Now()
.NumberFormat = "mm/dd hh:mm"
End With
End Sub
0125名無しさん@そうだ選挙にいこう2016/02/27(土) 12:08:50.73
>>124

Sub 日付入力15分刻み()
With ActiveCell
.Value = Int(Now * 96) / 96
.NumberFormat = "mm/dd hh:mm"
End With
End Sub

何をやったかというと、15分はシリアル値だと 1/96 なので、
元のNowのシリアル値を一旦96倍したの
そうすると15分刻みの時刻が整数部分になって、小数点以下はその端数になるわけ
んで、Intでそれの整数部分をとりだして、96で割ると端数部分が消えて
元の数値が15分刻みに丸められるって寸法
0126名無しさん@そうだ選挙にいこう2016/02/27(土) 12:45:08.45
>>125
できました。
変数使うのかな?と思っていたのですがこんな方法があったんですね。
説明、考え方も非常に解りやすく、今後に色々役立ちます。
御教授ありがとうございます。
0127名無しさん@そうだ選挙にいこう2016/02/27(土) 13:28:58.97
>>126
まぁ、こういうやり方もあるって事で参考になったなら幸いです

本当は一度シリアル値を時刻の値にしてから処理したほうが
コードとしての可読性は高まるし、
10分刻みとか5分刻みとかにも変更が容易で応用が利きやすいんだけどね

だっていきなり96掛けるとか、また96で割りなおすとか、
解説がなきゃ何やってんだか意味わかんないよね
0128名無しさん@そうだ選挙にいこう2016/02/27(土) 19:03:20.05
VBAの時間に詳しい方がおいでみたいなので質問です

http://up.mugitya.com/img/Lv.1_up87081.jpg

この○、▼、■ には何入れればいいんですか?
DateとかObjectとかいろいろいじってるんですがうまくいきまへん
よろしくお願いします
0129名無しさん@そうだ選挙にいこう2016/02/27(土) 19:49:03.95
2016のエクセルだけ買ってみたのですがoffice2000と共存できますか?
0130名無しさん@そうだ選挙にいこう2016/02/27(土) 20:41:28.88
>>128
他にも間違いがあるんで○、▼、■、を埋めるだけじゃ動かない


Sub test()
Dim x1 As String
Dim x2 As Range 
Dim z1 As Long 
x1 = Cells(1, 1).Text
Set x2 = Cells(2, 2)   '<= ここが間違い。x2の方は Range型なので Set を使わないといけない
z1 = Columns("B").Find(What:=x1, After:=x2, LookIn:=xlValue, SearchOrder:=xlByColumns).Row
Cells(z1, 2).Activate
End Sub
01311302016/02/27(土) 20:57:45.14
ゴメン、偉そうに言って俺も間違えてた
× LookIn:=xlValue
○ LookIn:=xlValues
許してチョンマゲ
0132名無しさん@そうだ選挙にいこう2016/02/27(土) 21:02:05.56
>>129
うん
01331292016/02/27(土) 22:27:30.75
>>132
どうもありがとう。早速インストールしてみます。
0134名無しさん@そうだ選挙にいこう2016/02/28(日) 00:14:21.41
数学初心者ですが
=(((5−1)*20) +5)+ ((7*2)-1)
この式はこの記述方法で合ってますか?

最終的には変数X Y を使い
=(((X−1)*20) +5)+ ((Y*2)-1)
とします。
エクセルに打ち込んだところとりあえずは正しい答えが得られますがかっこを3つも使うのは変かなと思いました。
0135名無しさん@そうだ選挙にいこう2016/02/28(日) 01:06:13.14
>>134
算数/数学の質問なら スレ違い

計算式見る限り 義務教育レベルで教えられる 数式に見えるが?
数学初心者って君は小学生か?(それも低学年)

ま で正しい値が出るならそれでいいじゃないの?
0136名無しさん@そうだ選挙にいこう2016/02/28(日) 01:17:07.13
>>135
ありがとうございました。
Excelの関数として上の式は適切かどうかという質問でした。本当はこう書いた方がいいですよとかありましたらお願いします。
0137名無しさん@そうだ選挙にいこう2016/02/28(日) 01:18:40.32
>>135
私は社会人ですが数学は苦手で初心者レベルです
0138名無しさん@そうだ選挙にいこう2016/02/28(日) 01:21:51.47
脳内社会人なのね可哀想に 早く社会復帰しなさい
0139名無しさん@そうだ選挙にいこう2016/02/28(日) 08:14:47.51
>>134

=(((X-1)*20)+5)+((Y*2)-1)

数式としては意図したとおりの結果が出るならどんな式でも正しいけれど、
数学としてより望ましいのはこっち

=(20*X)+(2*Y)-16

数学のマナーでは
変数項を次数 (変数同士の乗算・除算の回数) の高い順から並べて、
最後に定数項 (ゼロ次の変数項とも言える) を書くのが一応のしきたりになってる

同じ次数の変数項は特に理由がなければアルファベット順に書く
カッコは無くてもいいんだけど、読みやすさのためにあえて残した

でも、エクセルとしてなら数学の流儀に従う事が常に正しいとは限らない

まとめる事が可能な式でも、別々のカッコで分けて書いてあるほうが
「その処理の意図」が掴みやすくなったりするからあえて分けとくってのは割とよくあることで、
上で書いた式のカッコだって数学的には無用のもの

闇雲にカッコの数を気にするんじゃなくて、
その処理の意図を分りやすく反映できているかどうかや
見た目の読みやすさを基準に考えたほうがいいよ
01401282016/02/28(日) 08:24:29.64
>>130
おー成功した

ありがとうございます
0141名無しさん@そうだ選挙にいこう2016/02/28(日) 09:16:27.60
>>134
変だと思った理由まで書いてくれないとわからない
あと、マイナス記号は半角の方がいいと思う
0142名無しさん@そうだ選挙にいこう2016/02/28(日) 10:01:58.46
=(10*X+Y-8)*2
とか考えたけどコストは同じだな
0143名無しさん@そうだ選挙にいこう2016/02/28(日) 10:32:14.68
【1 OSの種類         .】 windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A列の条件をもとにB列の数字を検索したいのですが、
A列に同じ項目が複数あり
C1=INDEX(B:B,MATCH(A1,A:A,0)) をオートフィル
等では、2個目になっても1個目の項目のみが検索されてしまいます

2個目以降を検索するにはどうすればいいでしょうか?

現状では最終的に合計することになるため
C1=IF(COUNTIF($A$1:$A1,$A1)=1,SUMIF($A:$A,$A1,B:B),0)
をオートフィルすることで対応しているのですが、
項目ごとに表記するように変更するよう言われて困っています

実際にはAB列とC列は別のシートにあり
AB列の行を削除することがあるため
C1=B1のような計算式だと#REF!エラーになってしまう為できないで居ます

何とかする方法はないでしょうか?
0144名無しさん@そうだ選挙にいこう2016/02/28(日) 10:38:41.78
ごめんなさい
自己解決しました

C1=INDEX(B:B,ROW())
にすればAB列を削除しても#REFエラーにならないんですねorz
0145名無しさん@そうだ選挙にいこう2016/02/28(日) 21:37:30.92
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい(少し)
【4 VBAでの回答の可否】 可

xlsm を何度か保存していくと、
タイトルの末尾に数字が付加されるのですが、
これを編集する方法はありますか。
0146名無しさん@そうだ選挙にいこう2016/02/28(日) 21:52:42.46
>>145
EXCEL標準機能ではなく マクロで付加してると思われる
そこを特定して修正すればできると思うよ
0147名無しさん@そうだ選挙にいこう2016/02/28(日) 22:45:27.40
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel 2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列に画像URL B列にファイル名 C列に保存ホルダー の入力があるとします。
a列         B列     C列
http〜test.jpg  20160228111.jpg C:\Users\ユーザー名\Desktop\hozon
A列のURLの画像を取得してB列にあるファイル名でC列に保存
データが8000件あり、1つ1つ手作業でURLを開き、名前をつけて保存をやっているとかなり効率が悪いです。
何とかする方法はないでしょうか?
0148名無しさん@そうだ選挙にいこう2016/02/28(日) 22:55:37.59
Do
 For
  For
   If ※1
  Next
 Next
 ※2
Loop

※1でForを2個抜け出し、※2に飛ばすにはどうすればいいにょ?
01491452016/02/28(日) 22:57:55.83
VBAProject のプロジェクト プロパティに
プロジェクトの説明を追加したらできました。
ありがとうございました。
0150名無しさん@そうだ選挙にいこう2016/02/28(日) 23:10:41.87
>>148
goto
0151名無しさん@そうだ選挙にいこう2016/02/28(日) 23:14:03.38
>>147
ダウンローダ使ったら?
ちなみにfolderをカタカナで書く場合、一般的にはホルダーとは書かないよ
0152名無しさん@そうだ選挙にいこう2016/02/28(日) 23:37:20.98
>>151
フォルダーですね
スレチですがおすすめのダウンローダーを教えて頂くことは可能ですか?
0153名無しさん@そうだ選挙にいこう2016/02/29(月) 00:09:23.84
>>152
その要件を満たすダウンローダが必要なんでしょ?
ググって出てきたのを試せばいいだけ
0154名無しさん@そうだ選挙にいこう2016/02/29(月) 00:20:35.04
>>147,152
ダウンローダが使えればそっちがいいけど

VBAでやるなら
URLDownloadToFileというAPIを使う手もある
http://officetanaka.net/other/extra/tips01.htm
0155名無しさん@そうだ選挙にいこう2016/02/29(月) 01:51:07.09
>>148
ループの終了判定用にフラグを用意するって手もある

Dim flg As Boolean 'フラグ用変数の宣言

Do
 flg = False   ’フラグ初期値設定
 For A
  For B
   If ※1 Then
    flg=True '終了条件を満たしたらフラグを立てる
    Exit For 'ループBを抜ける
   End If
  Next B
  If flg Then
   Exit For  ’フラグが立ってたらループAを抜ける
  End If
 Next A
 ※2
Loop

あるいは、VBAの仕様外の方法だって怒られそうだけど、
経験上、For Next分の終了判定は
Next文の時点でのループカウンタ変数の値で行われているようなので、

If ※1 の所で、ループA側のループカウンタ変数の値を
その最終値を超える値に書き換えちゃうという手も
使えることは使える
0156名無しさん@そうだ選挙にいこう2016/02/29(月) 02:10:07.68
なんでそんな複雑な仕掛けを作るんだ?
150で既に最良の答えが出てるのにバカなの?
0157名無しさん@そうだ選挙にいこう2016/02/29(月) 02:17:47.97
>>156
gotoがきらいだから
0158名無しさん@そうだ選挙にいこう2016/02/29(月) 03:23:45.11
>>156
構造化というプログラミング概念では
GOTOを使用するのは御法度になってる

俺がプログラム始めた20数年前(年がバレるな)でさえ
GOTO使ったプログラム書いてたら3流以下扱いだったぜ
0159名無しさん@そうだ選挙にいこう2016/02/29(月) 06:20:10.28
関数でいうOFFSETみたいなもんか
0160名無しさん@そうだ選挙にいこう2016/02/29(月) 07:54:22.51
>>158
構造化ねえ…
0161名無しさん@そうだ選挙にいこう2016/02/29(月) 07:59:20.14
>>158
素人からこの議論見た感じ、gotoは直接行を指定するものだから、何か要素を追加した際に行がずれた時に
gotoの指定も直さなければならず拡張性? なにそれ美味しいの? になるってことなんかね

条件分岐をすることでやたら長文になり要素の追加があり得ないなら使う選択肢もあるかもしれないが
そんな限定的状況を考えるぐらいなら使わないようにする方が良い、みたいな感じなのかな?
0162名無しさん@そうだ選挙にいこう2016/02/29(月) 08:39:04.41
>>161
このスレでする話じゃない
0163名無しさん@そうだ選挙にいこう2016/02/29(月) 09:33:20.87
gotoしかないんだから使え。
0164名無しさん@そうだ選挙にいこう2016/02/29(月) 09:43:31.26
>>161
昔のBASICは行番号で飛び先をしていたけど、
VBAの場合はラベルで指定するから
そういうズレは気にしなくても良くなった。
(昔は後から拡張する時のために
予め行番号を10飛ばしで付けたりしてたね。)
ただ、やっぱりループ抜けるときは
そのループにちゃんとけりをつけて抜けるべきであって
どっかにポンと飛んじゃうのは
後から見たときにコードの流れが読み辛くなる元だと思う。
0165名無しさん@そうだ選挙にいこう2016/02/29(月) 09:56:14.47
gotoってある意味便利な命令なんだよなラベルさえ付ければそこへ簡単に飛べるから
でその便利さに溺れてあっちこっちで使ってコードの流れがぐちゃぐちゃになると
(今でも言うか知らんが スパゲッティコード化する)
0166名無しさん@そうだ選挙にいこう2016/02/29(月) 10:36:28.57
100ページ以上あるシートがあるのですが改ページプレビューで上下しながら編集してるのですが、指定したページに飛ぶ事って出来ませんかね?

マウスの設定を変える以外で…
0167名無しさん@そうだ選挙にいこう2016/02/29(月) 13:23:46.77
ヘルプです
下記のようにプラスとマイナスが逆転してますが
修正方法ご存じの方お願いいたします

A1 10
A2 -5
A3 =SUM(A1-B1) 値が15
----------------------------------
A1 10
A2 -5
A3 =SUM(A1+B1) 値が5
01681672016/02/29(月) 13:25:00.70
>>167
B1ではなくA2の間違いです
0169名無しさん@そうだ選挙にいこう2016/02/29(月) 13:53:09.47
SUM関数使う必要ないやん
01701472016/02/29(月) 14:52:50.67
>>153
ググっても見つからなかったのでVBAかマクロならと思いこちらにきました。
ソフト板に聞いてみますね
ありがとうございます。

154>>
見てきました
かなり希望に近いです。
ただカスタマイズの方法がまったくわかりません。
ご教授頂くことは可能でしょうか?
0171名無しさん@そうだ選挙にいこう2016/02/29(月) 15:23:58.88
>>167
A3の式と結果は正しいから
何をどう修正したいのかわからん
すまん
10-(-5)=15
10+(-5)=5
0172名無しさん@そうだ選挙にいこう2016/02/29(月) 17:25:45.60
>>167
真面目に質問してるんだろうけど笑ってしまったw
SUM使うなら =SUM(A1:A2)
もしくはSUM使わず =A1-A2 ってこと?
0173【B:116 W:51 H:90 (One cup)】 2016/02/29(月) 19:05:08.12
俺はGoToよりOn Error Resume Nextが嫌いだ!
0174名無しさん@そうだ選挙にいこう2016/02/29(月) 19:08:44.79
プログラミングは詳しくないけど、gotoを使うほうが簡単な場合もあるよな 多段For-Nextを抜ける場合なんか特に
あと、こういう場合、動かしてるうちにスタックがオーバーフローする心配はないのかね 昔とは違うのかな
0175名無しさん@そうだ選挙にいこう2016/02/29(月) 19:45:17.61
ドトール傘下のエクセルシオールカフェ赤羽東口店では店員が自分の事、好きだと言い始めたので
優しくしたら他の店員のやっかみ、最低の接客だ
0176名無しさん@そうだ選挙にいこう2016/02/29(月) 19:54:49.31
タブ区切りテキストの住所リストをExcelで開くと
「○○町8-8」みたいな住所が「○○町8月8日」とかってなる。
こういう勝手な変換って止められますか?
0177名無しさん@そうだ選挙にいこう2016/02/29(月) 20:00:00.03
たぶん
0178名無しさん@そうだ選挙にいこう2016/02/29(月) 20:04:28.84
テキストファイルの行の先頭にあらかじめ ' を入れておけばおk
0179名無しさん@そうだ選挙にいこう2016/02/29(月) 20:06:57.01
>>176
型を指定すればいい
0180名無しさん@そうだ選挙にいこう2016/02/29(月) 22:46:31.20
>>176
エクセルのファイルを新規で開いて、
データ→外部データの取り込み→テキストファイル
で、住所のデータを文字として読み込む。
0181名無しさん@そうだ選挙にいこう2016/02/29(月) 22:53:17.20
型を指定ってどうやるんですか
0182名無しさん@そうだ選挙にいこう2016/02/29(月) 23:18:21.56
というか住所録をExcelで開いた時点で「8月8日」とかってなってるので
Excelで開く前に住所録を加工する必要があるのか? と…

でもタブ区切りテキストの加工なんてどうすればいいんだよう。
0183名無しさん@そうだ選挙にいこう2016/03/01(火) 06:51:39.67
>>181-182
>>180の言うとおりのやり方で、ウィザードのなかで型を指定するステップがある。
0184名無しさん@そうだ選挙にいこう2016/03/01(火) 08:40:07.50
にしても、CSVファイル開いた時のこの自動変換機能なんて、求めてる人なんているんだろうか…
0185名無しさん@そうだ選挙にいこう2016/03/01(火) 11:09:24.12
てす
0186名無しさん@そうだ選挙にいこう2016/03/01(火) 15:36:17.21
セルの表示形式で、頭から任意の桁数で丸めて表示することは出来ませんか?
例えば頭から3桁で丸める場合、
123456→123000
1.23456→1.23
0.0123456→0.0123
と表示したいです。
表示を丸めたいだけなので、セルの値は丸めないでください。
よろしくお願いします。
01871472016/03/01(火) 19:09:28.76
画像を取得してファイルネームを付けることまでは成功しましたが
任意のファルダーに保存できません。
どこを訂正すればいいでしょうか?
またBのファイル名だけで出来れば保存したいです。
現状は”gazou20160228111となりデスクトップに散乱します。

A列に画像URL B列にファイル名 C列に保存ホルダー の入力があるとします。
a列         B列     C列
http〜test.jpg  20160228111.jpg C:\Users\ユーザー名\Desktop\gazou



Sub sample()
Dim tbl As Variant, i As Long, returnValue As Long
Dim myDownURL As String, mySaveName As String
tbl = Range("A1").CurrentRegion.Value
For i = 1 To UBound(tbl)
myDownURL = tbl(i, 1)
mySaveName = tbl(i, 3) & tbl(i, 2)
returnValue = URLDownloadToFile(0, myDownURL, mySaveName, 0, 0)
Next i
If result = 0 Then
MsgBox "ダウンロードできました"
Else
MsgBox "ダウンロードできませんでした"
End If

End Sub
0188名無しさん@そうだ選挙にいこう2016/03/01(火) 19:16:05.85
>>186
ちょっと無理ぽいな
値を変えずに 表示のみを変えるとしたら
VBAにて 値を見てセルの表示形式を変更する必要があると思うんだけど

それには EXCELの表示形式上の 根本的な部分が解決しないとなのよ

丸め位置が整数部の時 任意桁で丸めは無理っぽいって事(3桁単位なら可)
  1234367 → 1234000  (表示形式 0,"000") とは出来る
  本来は 15100→ 15千円 見たいに表示させる時使う
0189名無しさん@そうだ選挙にいこう2016/03/01(火) 21:02:32.63
>>186
ルールがよくわからん
0190名無しさん@そうだ選挙にいこう2016/03/01(火) 21:05:01.69
>>187
URLDownloadToFile()を修正すればいいんじゃない?
01911482016/03/01(火) 21:05:05.88
>>150
�d

>>155
後藤さんを採用しますた
0192名無しさん@そうだ選挙にいこう2016/03/01(火) 21:14:26.37
>>187
保存先の指定に最後の"\"が抜けてる
デスクトップのgazouフォルダに保存したいなら
C:\Users\ユーザー名\Desktop\gazou\
っていう風に、最後にちゃんと "\" を付けなきゃダメ
あと、その場合にはgazouフォルダもデスクトップ上に実在してないと
エラーが出ると思う
0193名無しさん@そうだ選挙にいこう2016/03/01(火) 21:18:28.05
>>187
Next i
の位置は 成功/失敗の表示の後 じゃないとだめよん
今のままだと 最後のダウンロードの結果は分るけど 途中失敗してても分らんよ
0194名無しさん@そうだ選挙にいこう2016/03/01(火) 21:19:06.19
>>191
自分でしかメンテしないような小規模のものならそれでいいと思う
他人が書いたコード見せられてそこそこの規模なのにgotoとか出てきたら
そいつは使えねーやつだと評価せざるを得ない
0195名無しさん@そうだ選挙にいこう2016/03/01(火) 21:44:35.56
>>187
指摘されてもなおファルダーとかホルダーってカタカナを使い続けるのはどういう神経なんだろう…
0196名無しさん@そうだ選挙にいこう2016/03/01(火) 22:23:51.47
>>191
アマチュアのままでいるなら どうでもいいけど
プログラム組む仕事だったら 即プロジェクトから外すな
01971482016/03/01(火) 22:51:51.91
>>194,196
では、Gotoを使わない高度なプログラムを書いてくだちい
155とは別のやつでおながいしまつ
0198名無しさん@そうだ選挙にいこう2016/03/01(火) 22:55:05.67
>>197
あくまで俺ん中では >>155 で良いと思ってるから書かない
0199名無しさん@そうだ選挙にいこう2016/03/01(火) 23:04:21.67
>>198
クライアントが155とは別のを要求してるんだからさっさと書けや
使えないヤツだな
0200名無しさん@そうだ選挙にいこう2016/03/01(火) 23:15:11.73
クライアントが要求って対価は?
0201名無しさん@そうだ選挙にいこう2016/03/01(火) 23:17:37.31
>>197
>>155=194
なんだけどさ、別のやり方書かなきゃダメ?

>>155のが本質的に正しいと思うけど、
どうしても途中で飛ばさなきゃならないなら

Sub main()
 Do
  Call hoge()
  ※2
 Loop
End Sub

Sub hoge()
 For A
  For B
   If ※1 Then Exit Sub
  Next B
 Next A
End Sub

みたいに最低限の多重ループ部分だけ別プロシージャに分けるよ
0202名無しさん@そうだ選挙にいこう2016/03/01(火) 23:23:17.80
>>199
対価(金とは限らん)がないとクライアントとみなされない
それがお仕事っていうもの(ヒッキーには難しいかな)
このスレでクライアントの募集はしてないし
0203名無しさん@そうだ選挙にいこう2016/03/01(火) 23:27:05.66
>>201
お前には要求してないだろ?
対象は194と196の二人w

まぁ、これら同一人物の可能性も否定できないけどなw
0204名無しさん@そうだ選挙にいこう2016/03/01(火) 23:29:07.05
>>202
クライアントは単に依頼人と見なされるから対価は必ずしも必要とされない
バカには分からんか
0205名無しさん@そうだ選挙にいこう2016/03/01(火) 23:31:58.75
>>203
いや、だから俺が>>155=194=201なんだってば
ちなみに>>196とか>>198とかは俺じゃない
0206名無しさん@そうだ選挙にいこう2016/03/01(火) 23:35:21.29
>>205
いや、だからお前には要求してないだろ?
対象は194と196の二人って書いてるんだしw
でしゃばるな!ハゲ
0207名無しさん@そうだ選挙にいこう2016/03/01(火) 23:46:52.39
>>204
クライアント=依頼人
だけど依頼は対価必要なくても請負って貰うには対価は必要になるよ

ここは善意でヒントや例を提示してくれる場所で要求する場所ではないんじゃないかな
0208名無しさん@そうだ選挙にいこう2016/03/01(火) 23:47:13.23
>>206
なんか面白いな君w
俺の安価の付け方が悪いのか?
>>155を書いたのも
>>194を書いたのも
>>201を書いたのも
全部同一人物なんですよ
と、これで理解できたか?
0209名無しさん@そうだ選挙にいこう2016/03/01(火) 23:57:56.78
>>196はプログラム組む仕事なのかww
で、対価ガー対価ガーと文句ばかり言って断るわけねwww
0210名無しさん@そうだ選挙にいこう2016/03/01(火) 23:58:59.25
ID出ないからなんか書き放題だな この板ってID表示できないんだっけ
ワッチョイ(正式名称しらん)要りそうだな
0211名無しさん@そうだ選挙にいこう2016/03/01(火) 23:59:52.20
クライアントを請負と解釈するバカもいるんだな
0212名無しさん@そうだ選挙にいこう2016/03/02(水) 00:02:00.93
>>210
ID出てもPCとスマホで一人多重役するやつがいるから無駄www
0213名無しさん@そうだ選挙にいこう2016/03/02(水) 00:12:47.60
一人何役だろうと見かけの人数で正しさが決まるわけでもなし
最終的にはロジックの正しさで判断されるんだからどうでもいい
0214名無しさん@そうだ選挙にいこう2016/03/02(水) 00:41:16.08
>>209
対価に 見合わない仕事する人いないとおもうよ(遊びやボランティア除けば)
もちろん 将来的にビジネスにつながると思えば
赤字覚悟や無料でやる事はあるけど
0215名無しさん@そうだ選挙にいこう2016/03/02(水) 00:47:07.88
ここで質問して答えるのも仕事?対価?
一生そうやって逃げていればいいよ
0216名無しさん@そうだ選挙にいこう2016/03/02(水) 00:52:06.01
ボランティア
0217名無しさん@そうだ選挙にいこう2016/03/02(水) 01:03:33.31
>>155=194=196=201なんだよw
だから3つも4つもアイデアが出ないw
0218名無しさん@そうだ選挙にいこう2016/03/02(水) 01:37:06.27
ネットで.xlsファイルを拾いました。
Excel2007で開きました。
マクロが見たいと思い、
表示→マクロ→マクロの表示
で、
とあるマクロを選択しても編集の字が黒くなりません。
これってマクロを他人に見せないようにプロテクトがかかっているのでしょうか?
0219名無しさん@そうだ選挙にいこう2016/03/02(水) 01:57:43.67
>>218
マクロが見えて実行できるけど 編集できないならそうゆう事

あと拾ってきたところ信頼できるところ?
マクロウイルスってのがあるから あまり拾い食いは関心せんよ
0220名無しさん@そうだ選挙にいこう2016/03/02(水) 02:11:08.98
>>217
だから>>196は別人だと言っておろうがw
ついでに言うと
>>155で2つ、>>201で1つ出したから、3つは出してるぞ
君らは安価も読めなきゃ数も数えられんのかwww
02212182016/03/02(水) 02:30:34.91
>>219
ありがとうございます。 たぶん大丈夫です。
0222名無しさん@そうだ選挙にいこう2016/03/02(水) 06:41:32.77
VBAで記述とかどーでもいいよ
動けばいいんだよ
0223名無しさん@そうだ選挙にいこう2016/03/02(水) 07:16:45.48
動けばいいのは否定しないがエクセルのファイルって
業務用の利用が多く、他人に引き継ぐ可能性がそれなりにあるって話じゃね?

個人用家計簿みたいなのだったら必要ない配慮だけど
0224名無しさん@そうだ選挙にいこう2016/03/02(水) 08:22:13.64
>>155
なんとなくだけど、これだとgotoの方がシンプルでわかりやすい気がするんだけど…
俺がアマチュアだからそう感じるのかな?
0225名無しさん@そうだ選挙にいこう2016/03/02(水) 09:31:04.71
クライアントはサーバーに何か対価を払っているのかい?
0226名無しさん@そうだ選挙にいこう2016/03/02(水) 11:12:32.13
>>155
アマチュアっていうより他人の作ったマクロや
少し大きめのマクロを
後からメンテしたり仕様変更したりすることがなければ
あんまり問題ないよ

俺もキチンと勉強してないから
詳しく書くとボロがでるんで簡単な所でやめとくけど
基本的にループ処理ってのは
その内側と外側が区別されてて、
ループの命令文は自分の内側の事にしか責任を負ってないの
それは単体だろうと多重になろうと同じで、ループの中のループの事は外側のループが介入すべき問題では無いし、逆に内側のループも外側のループに直接関与すべきでない訳
多重ループから直接抜け出すという行為は
本来独立した処理である内外のループに
無用の依存関係を作ってしまうから
後から仕様変更したりメンテナンスしたりするときに
そういうことを考慮しなきゃならなくて負担が増えるんだよ

だからそういうことで無駄に苦労したくないから
一個ずつ終了条件を作って判定させるか、
あるいはプロシージャ単位という結合のさせ方で
多重ループ全体をまとめて管理するかみたいなやり方しかやらないわけです。
0227名無しさん@そうだ選挙にいこう2016/03/02(水) 11:14:31.97
ごめん安価間違えた

>>226 は>>225に向けて書いたものです
0228名無しさん@そうだ選挙にいこう2016/03/02(水) 11:38:08.54
あ、ダメだ、また間違えてた orz
>>226は>>155宛でも>>225宛でもなくて
>>224宛でした
本当にスマン
0229名無しさん@そうだ選挙にいこう2016/03/02(水) 17:13:56.30
>>192
おっしゃるとおり / で解決できました。
逆に / の後ろに○○○とつければ任意の名前を付属できると考えてもいいのでしょうか?
後学のためにご教授願います。

>>193
何をやっても出来ましたと表示されていました
変更してみます
0230名無しさん@そうだ選挙にいこう2016/03/02(水) 18:09:39.39
対価ガー対価ガー
0231名無しさん@そうだ選挙にいこう2016/03/02(水) 18:32:08.43
>>229
何をやっても出来ましたとなるのはそれだけじゃないよ
モジュールの行頭(一番上の行)に Option Explicit を入れる事を勧めるよ
Option Explicit
Public Declare ・・・・

Sub sample()
 ・
 ・
な感じね
こうすると↓で"変数が定義されてません"となると思うが
If result = 0 Then

これ間違いで

If returnValue = 0 Then
だと思うよ
0232名無しさん@そうだ選挙にいこう2016/03/02(水) 18:51:06.90
>>229

>>187のコードで、「保存するフォルダとファイル名」を指定しているのは
mySaveName = tbl(i, 3) & tbl(i, 2) の部分だから、
そこをきちんと処理すれば好きなフォルダに好きな名前で保存できる

そもそもこのコードは、tbl(i, 2) の部分で名前を指定して、
tbl(i, 3) の所ではフォルダを指定するように、
わざわざ役割を分けて書いたんじゃなかったの?

それなのにフォルダの指定の最後に"\"が付いてなかったから
本来なら
C:\Users\ユーザー名\Desktop\gazou\20160228111.jpg
で
保存先 C:\Users\ユーザー名\Desktop\gazou\
ファイル名 20160228111.jpg
となるべきところが
C:\Users\ユーザー名\Desktop\gazou20160228111.jpg
と、最後の"\" が抜けてたせいで

保存先 C:\Users\ユーザー名\Desktop\
ファイル名 gazou20160228111.jpg

になっちゃってただけの話
0233名無しさん@そうだ選挙にいこう2016/03/02(水) 18:52:30.04
変数の定義を強制するのは素人っぽいとか言って嫌がる人も多いのがな
一人で管理するなら問題ないが複数人でメンテする場合は使いにくい

強制した方が便利なんだがね
0234名無しさん@そうだ選挙にいこう2016/03/02(水) 18:56:55.29
>>233
むしろ逆じゃね?
一人で使う分には変数なんて好きにしたらいいけど
(とはいえ例え一人でもtypo防ぐ意味でも強制したほうがいいけど)
他人も見るコードで
宣言もせずに好き勝手に変数使う奴って
頭がおかしいとしか思えない
0235名無しさん@そうだ選挙にいこう2016/03/02(水) 19:20:36.59
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Worksheets("Sheet1")とSheets("Sheet1")の使い分けが分かりませんo
誰か優しく教えてくださいなのですo
0236名無しさん@そうだ選挙にいこう2016/03/02(水) 19:23:34.25
>>235
田中さんが優しく教えてくれてる
http://officetanaka.net/excel/vba/beginner/09.htm
0237名無しさん@そうだ選挙にいこう2016/03/02(水) 19:48:20.89
>>236
エクセル マクロ worksheets sheets 違い でググると一番上に出るやつですねo
既に見ましたですo
0238名無しさん@そうだ選挙にいこう2016/03/02(水) 19:49:49.93
しかし マクロシート/ダイアログシートってまだあるんだね
すっかりその存在忘れてたわ
0239名無しさん@そうだ選挙にいこう2016/03/03(木) 07:07:54.09
>>234
mjd?
下手に素人に理解できるコードを書くと勝手に改変始める可能性あるから
変数は宣言しないのが常識って教えられてたわ

gotoも積極的に使って他人にわかりにくいようにしたほうが良いとも習ってた
ここ見ると教えてくれた人が特殊だったみたいだな
0240名無しさん@そうだ選挙にいこう2016/03/03(木) 08:08:50.59
>>239

貴方がよほど嫌われてて
わざと使えない人間に育つように
仕組まれていた可能性もある

だいいち、他人にコード弄られたくないなら
マクロにパスワードロック掛けるのが常道じゃん
0241名無しさん@そうだ選挙にいこう2016/03/03(木) 11:20:03.61
質問させてください
印刷プレビューで真っ白な2ページ3ページが出てしまうんですが
印刷自体はページ指定せず全て印刷にしても1ページ目しか印刷されません。
特に困るわけではないのですが不用なページがプレビューに出てこないようにするには
どうしたら良いでしょうか
0242名無しさん@そうだ選挙にいこう2016/03/03(木) 11:49:33.73
印刷範囲から中途半端にはみ出して
2ページ目とかになってる部分って
改ページプレビューで調整したら消せなかったっけ?
0243名無しさん@そうだ選挙にいこう2016/03/03(木) 11:53:37.78
Excel2013で日をまたいだデータのグラフを描きたいと思っています。
現在、「時:分:秒」の形式の列と、その秒単位での値(仮に温度とします)の列があります。
1週間の期間に温度を秒単位で保存し続け、温度の変動を連続したグラフにするにはどの様な形式が良いのでしょうか?
検索すると散布図が良いと出てきますが、散布図にてX軸を時間にすると、0:00:00の時点で折り返してしまいます。

(データ例)
23:59:58 15.4
23:59:59 15.5
0:00:00 15.4
0:00:00 15.3

よろしくお願いします。
0244名無しさん@そうだ選挙にいこう2016/03/03(木) 12:09:27.37
追記です。
縦軸を温度、横軸を連続した秒単位(一週間分)の時間で描きたいです。
0245名無しさん@そうだ選挙にいこう2016/03/03(木) 12:13:58.28
>>244
時間のデータには日付も入れられるんですけど、入れてますか?
日付情報も入れてあれば1週間だろうが一ヶ月だろうが
問題なくグラフに出来ます
0246名無しさん@そうだ選挙にいこう2016/03/03(木) 14:11:09.48
>>245
返事ありがとうございます。
日付情報は無いです。
手入力して時間列に結合するのがよろしいのでしょうか?
0247名無しさん@そうだ選挙にいこう2016/03/03(木) 16:05:37.52
>>246
データの規模にもよるけど、手入力ではちょっと厳しいかと思いますよ
1秒値データ1日分で86400行有りますから、一週間分だと
86,400*7で604,800行です

私だったらVBAで書き換えますけど、VBAが無理なら
とりあえず日付の列(最初の86,400行はゼロで、86,400行ごとに1,2,……と増えていく)を作って
それを値貼り付けで時刻列に加算するとかでしょうか
これなら最初の行に数式を入れるだけで、後は最終行までコピペすれば済みます

具体的には、例えば日付列をA列とし、データが2行目から始まっていると仮定して、
A2に =INT((ROW()-1) /86400)
って入れたら
A3から最後の行までコピペしたら日付列完成です
あとはそれを時刻列に値の貼り付けで加算して張り付ければ
時刻に日付情報を含められます
もう日付列は不要ですから削除したって構いません
0248名無しさん@そうだ選挙にいこう2016/03/03(木) 16:17:07.95
>>247
F5を使った範囲指定の一括コピーなら、1週間分の7回で済むかと
って回答に回答してスマン
02492472016/03/03(木) 16:33:12.42
>>248
ごめん、俺その機能のこと知らないです
よかったらやり方教えてください
0250名無しさん@そうだ選挙にいこう2016/03/04(金) 01:05:29.64
Book2の、同じ色がランダムに付いた行を消してから最終行の2行の一部をコピーして
あらかじめ開いておいたBook1に貼り付ける、というのをしたいのですが、真ん中あたりの「r.Select」で
「オブジェクト変数または with ブロック変数が設定されていません。」エラーが出て先に進みません。
どう対処すればいいか教えてください。Excel2010です。m(_ _)m

Dim appExcel As Object
Dim i As Long
Dim s As Long
Dim r As Range
Set appExcel = GetObject("C:\temp\Book2.xlsx")
i = appExcel.Worksheets(1).UsedRange.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
Application.FindFormat.Interior.Color = RGB(255, 0, 0)
With ActiveSheet.Range("$A$1:$U$500")
Set r = .Find(What:="", After:=.Cells(1), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, _
MatchByte:=False, SearchFormat:=True)
r.Select
While Not r Is Nothing
r.EntireRow.Delete
Set r = .Find(What:="", After:=.Cells(1), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, _
MatchByte:=False, SearchFormat:=True)
Wend
End With
For s = 11 To 17
Cells(2, s - 7) = ExecuteExcel4Macro("'C:\temp\Book2.xlsx]Sheet1'!R" & i & "C" & s & "")
Next s
For s = 11 To 17
Cells(1, s - 7) = ExecuteExcel4Macro("'C:\temp\Book2.xlsx]Sheet1'!R" & i - 1 & "C" & s & "")
Next s
End Sub
0251名無しさん@そうだ選挙にいこう2016/03/04(金) 01:33:24.62
>>250
そのときのrの状態をウォッチしてみたらどうなってるの?
0252名無しさん@そうだ選挙にいこう2016/03/04(金) 01:40:21.84
>>250
×With ActiveSheet.Range("$A$1:$U$500")
○With appExcel.Worksheets(1).Range("$A$1:$U$500")
でどうかな?

ただ
workbooks.openじゃなくて
GetObject("C:\temp\Book2.xlsx")
なのはなぜ?
02532522016/03/04(金) 01:48:32.99
>>250
あ やっぱ ごめん
GetObject("C:\temp\Book2.xlsx")
じゃそのブックのシートアクティブにならんからのselect失敗する
workbooks.openにしる
0254名無しさん@そうだ選挙にいこう2016/03/04(金) 11:13:36.87
教えてください

A1〜A10に数値が入っています
B1〜B10にa,b,cなど文字を手入力します
C1〜C5にa,b,cなど文字を手入力します
D1〜D5に関数が入っています
E1〜E5に計算結果が表示されます

計算したいのは
B列とC列に同じ文字が入ったら
A列から拾った数値の合計をE列に表示したいです

いまD列に使っている関数が
D1 =(IF(B1=C1,A1,0))+(IF(B2=C1,A2,0))+(IF(B3=C1,A3,0))+(IF...A10,0)
D2 =(IF(B1=C2,A1,0))+(IF...

という感じです

実際は行数多いのでもうちょっと簡素化したいんですが
なにかいい関数はないでしょうか?
02552542016/03/04(金) 11:17:36.03
ごめんなさい、E列は必要ないですね
0256名無しさん@そうだ選挙にいこう2016/03/04(金) 11:42:20.12
あ、SUMIF関数使えばいいのか
0257名無しさん@そうだ選挙にいこう2016/03/04(金) 16:34:13.16
原因が特定できずへとへとです。助けてください。お願いします。

不具合  Excel VB写真ファイルを選択して開く際、プレビューウインドウで写真表示が出来なくなる場合がある。
作業環境 Win8.1Home 64bit, office 365 (昨日までの修正プログラム適用済)
使用画像 デジカメ写真(拡張子jpg)

プログラム(抜粋)
Dim FLT$
  ’*** 処理1:写真ファイル名取得
FLT$ = "写真ファイル(*.jpg),*.jpg,GIFファイル(*.gif),*.gif"
picture_file_name = Application.GetOpenFilename(FLT$, 1, "画像ファイルを選択してください", False)
  ’*** 処理2:写真表示
  Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(picture_file_name)
  Shapes.AddPicture picture_file_name, False, True, Target.Left + 2, Target.Top + 2, Target.Width - 4, Target.Height - 4
Cells(ActiveCell.Row + 7, ActiveCell.Column + 1).Value = picture_file_name

症状
操作例1  処理1
        ライブラリーウインドウ:詳細(ファイル名、日付時刻)表示、
        プレビューウインドウ: 表示されない。
        ファイル名をダブルクリックするとファイル名を取得して、画像表示可。
操作例2  処理1
        ライブラリーウインドウ:特大アイコン表示(サムネイル写真表示される)
        プレビューウインドウ: 表示されない。
        特大アイコンをダブルクリックするとファイル名を取得して、画像表示可。
プレビュー表示ができなくなると、プレビュー表示出来た写真までプレビューできなくなる。

再現性
ある特定の写真をアクセスした直後に不具合になる訳ではありません。
0258名無しさん@そうだ選挙にいこう2016/03/04(金) 18:43:26.19
>>257
それはメーカーに問い合わせるべき内容じゃない?
02592572016/03/04(金) 19:01:36.73
似たような症状がないかネットで検索してみましたが、現時点で見当たらず。
アプリてんこ盛りの富士通パソコンなのでOSとofficeと必要最低限の通信系業務アプリをクリーンインストールしてもダメ。

やはりマイクロソフトコミュにティに聞いた方がよいでしょうか?
0260名無しさん@そうだ選挙にいこう2016/03/04(金) 19:12:14.39
>>259
好きにしたら?
0261名無しさん@そうだ選挙にいこう2016/03/04(金) 20:31:13.12
>>260
そういう糞の役にも立たないレスはいらない
0262名無しさん@そうだ選挙にいこう2016/03/04(金) 21:56:17.66
オートフィルタについて下記の質問があります。

質問)
A1〜A100までそれぞれ1〜100の数値が入っています。
1,5,8,15,26,30,48という数値をオートフィルタで抽出したい場合、
チェックボックス以外で抽出する方法はありますか?
例えば、抽出したい数値が別の連続した複数セルにそれぞれいれていたら
その範囲を選択して抽出とかできたりしませんか?

分かりづらい説明だと思いますが、よろしくお願いいたします。
0263名無しさん@そうだ選挙にいこう2016/03/04(金) 22:29:40.28
>>262

>>1のテンプレ(特に3,4)書いて欲しいとおもうが まあいいや
もちょっと詳しい状況聞かないとあれだけど VBA 使えばできるバズよ
0264名無しさん@そうだ選挙にいこう2016/03/04(金) 23:19:34.71
>>263
すいませんテンプレ書いてませんでした。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
0265名無しさん@そうだ選挙にいこう2016/03/05(土) 00:06:16.50
作業列作れば
0266名無しさん@そうだ選挙にいこう2016/03/05(土) 00:44:33.58
>>262
フィルタの詳細設定で可能じゃないの? 但し先頭行は項目名を入れとく
 項目名
 1
 2
 10
 4
 ・
 ・
見たいにして

それで 別セルに同じように検索条件を入れる
 項目名
 1
 5
 8
 15
 26
 ・
 ・

フィルタの詳細設定で
  ・抽出条件   選択範囲内
  ・リスト範囲     A1:A100
  ・検索条件範囲 A200:A210
でOK(元データ・条件 項目名を含める事が必要)
0267名無しさん@そうだ選挙にいこう2016/03/05(土) 01:09:59.83
>>261
じゃあ、MSのコミュニティで質問したらいいかどうか?って質問のナイスな回答くれよ
0268名無しさん@そうだ選挙にいこう2016/03/05(土) 05:13:19.56
>>267
そういうときにはスルーするんだよ
>>260みたいに役に立たない糞レスよりもはるかに有益
0269名無しさん@そうだ選挙にいこう2016/03/05(土) 06:17:09.65
>>268
有益?リソース的に?
0270名無しさん@そうだ選挙にいこう2016/03/05(土) 08:28:25.42
>>266
試してみたらできました!!
ありがとうございました!!
0271名無しさん@そうだ選挙にいこう2016/03/05(土) 16:00:49.60
無能の役立たずが姦しいスレですね
0272名無しさん@そうだ選挙にいこう2016/03/06(日) 01:36:12.01
>>257
メモリを使いすぎてる気がする、多分だけど写真が多すぎる。多分な。
・小さい写真だけにする
・少ない枚数にする。
・ファイル名をアルファベットだけにする
等で問題を切り分ける
また、windowsの問題のような気もする。
windows プレビュー 見れない
等で検索してみては?

>>260は有益なレスだと思う
別に法的に禁止されてるわけでもないんだし、>>260の通り好きにしたらいいと思う。
スルーされると質問者も困るだろう。
マルチもどんどんしていいと思う。
俺は自分のスキルが上がれば何でもいいしどうでもいいわ
0273名無しさん@そうだ選挙にいこう2016/03/06(日) 06:34:36.54
>>272
まぁ、どう感じるかは人それぞれかもしれないが、
仮に俺が質問者なら好きにしろと言われても何の参考にもならない
むしろ揶揄されたと感じて嫌な気分になる

第三者としてみていても同じ様に感じる者がいるだろうし
場合によってはそういう対応を嫌って質問を控えるようになるかもしれない

おれ自身も自分のスキルが上がればどうでも良い訳だけど
そのためには素材となる質問を提供する者の存在が必要不可欠なわけで
このスレに質問者が来なくなっては俺が困る

その意味でああいう役に立たない回答をするヤツは
有益どころか有害だとすら思っている

スルーは単なる無視ではなく、Object型のNothingみたいなもんだと考えれば
その問題について有効な回答が出来る人間が居ない証左とみなせるので
それ自体に意味は無くとも無益ではない

マルチは俺もどうでもいいけど、今回特に関係ないよね?
0274名無しさん@そうだ選挙にいこう2016/03/06(日) 07:24:38.69
>>273
2chとMSコミュニティのマルチってことだと
だいたい、MSコミュニティで質問した方がいいかなんてここで聞くことじゃないからスレチ
もうこの話題は終わらそう、誰も何も得られない
0275名無しさん@そうだ選挙にいこう2016/03/06(日) 07:56:56.49
>>274
え、何?
もしかして>>260は「これからマルチしようとしてる奴が気に入らない」とか
そういう理由であんな糞の役にも立たないレス付けたの?
器のちっちぇー男だな
0276名無しさん@そうだ選挙にいこう2016/03/06(日) 08:46:33.00
Windows7です
Excel2003と2013を併用しています
.xlsは2003に、.xlsxは2013に関連付けできないでしょうか
0277名無しさん@そうだ選挙にいこう2016/03/06(日) 09:54:27.45
>>275

Office 2013 スイートおよび Office 2013 プログラム (MSI による展開) を、他のバージョンの Office を実行しているコンピューターで使用する方法について
https://support.microsoft.com/ja-jp/kb/2784668

↑の中に、↓って書いてあった

>特定のバージョンの Office に含まれるプログラムにファイルを関連付けるには、
>Office セットアップ プログラムを実行し、[修復] をクリックします。
>この操作を実行すると、そのバージョンの Office のファイルの関連付けが登録されます。


[修復] の具体的なやり方は多分この辺が参考になると思う

Excel2003とExcel2010の共存で、基本的にExcel2003で起動させるようにしたいのですが、どのような設定をすればよいのでしょうか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1073250690
0278名無しさん@そうだ選挙にいこう2016/03/06(日) 09:56:00.11
あれ?安価間違えてた
なんでだろ?

>>277は>>276宛でした
0279名無しさん@そうだ選挙にいこう2016/03/06(日) 11:02:35.53
>>277
質問の仕方のがまずかったですかね?
うまく伝わらなかったようで…
0280名無しさん@そうだ選挙にいこう2016/03/06(日) 11:06:59.70
>>279
え、違うの?
要するに2003の側で修復すればxlsは2003に関連付けされるけど
xlsxとかxlsmとかの関連付けは変更されないから2013のままになる
って事だと思うんだけど
0281名無しさん@そうだ選挙にいこう2016/03/06(日) 12:37:02.04
>>274
いまどきマルチ騒ぎだなんて(ププププ
レベルが低いところから高いところに質問して、回答が得られたらレベルの低いところに転載してやれば神だろ?
0282名無しさん@そうだ選挙にいこう2016/03/06(日) 12:39:34.44
>>280
2003でxlsxファイル使えるようにするアドイン使ってると2013あっても2003が選ばれちゃう話じゃね?
2013を修復してもアドインが優先されちゃうし
02832572016/03/06(日) 12:58:04.83
>>272
CPU  Corei7、Mem 8GB

写真1枚のサイズ 300kB程度
フォルダ内の写真 250枚以上
ファイル名 デジカメ標準 DSCXXXXXX (Xは連番)

プレビューが表示されない件に関して現時点で該当なし

EXCEL当該プログラムでプレビューが表示できない状態で、
別途エクスプローラーで同じフォルダーを開いた際には問題なくプレビュー表示されます。


写真が多すぎるのは不具合原因に近い気がします。
0284名無しさん@そうだ選挙にいこう2016/03/06(日) 14:12:24.81
>>281
あ!それかもしれません
ExcelViewerがインストールされてたかも…
すみません、クリーンインストールして試してみます
0285名無しさん@そうだ選挙にいこう2016/03/06(日) 14:19:26.41
>>283
なんとなく、もしかして英語圏の方ですか?
英語の情報のほうがネットには多いと思うので、そちらでも調べてみてはいかがでしょう
0286名無しさん@そうだ選挙にいこう2016/03/06(日) 21:52:44.05
>>283
Application.GetOpenFilename実行した時に出るウインドで
右上の方の (?)アイコンの直ぐ横の マウス乗っけると"プレビューウインドを表示します"なアイコンがない?
それが offになってるだけのような
0287名無しさん@そうだ選挙にいこう2016/03/07(月) 17:01:58.84
>>283
思いつく原因
・メモリスティックがへたれてる→一度PCにファイルを移す
・電源不足か熱を持ち過ぎなど→一度PCにファイルを移す
・プレビューは順にファイルにロックをかける。それが何らかの原因でミスしてるような気もする。jpgのバージョンやらなんやら。→どうしようもない。後述のフォーム作成
・端から順にプレビューを作成だか読み込みをしているので、プレビューの作成中かも→長時間待つ。それかPcにファイルコピーかいどう
・未知のバグかなにか→OSかexcelを再インストール。
・原因不明→ユーザーフォームかIEコンポーネント辺りでプレビューと同じ機能を持ったものを作る。
個人的にはこういう場合、原因究明するよりも作ってしまったほうが早いので、ユーザーフォームで作ってしまう。
一覧を表示するhtmlファイルを作ってもいいかもな

>>273-275,281
当てずっぽうでも何でもいいから回答手伝ってくれ
0288名無しさん@そうだ選挙にいこう2016/03/07(月) 22:55:36.04
ひでーなこりゃ
0289名無しさん@そうだ選挙にいこう2016/03/07(月) 23:08:39.39
>>288
俺のことはどうでもいいからお前もなんか考えてくれ。何でもいい
0290名無しさん@そうだ選挙にいこう2016/03/08(火) 00:11:46.95
50枚ずつ五つのフォルダに切り分けても同じ症状出るか否か せめてそれぐらいの試行錯誤してみ
性能的にはグラフィックメモリやらの仕様も確認とか 別画面でタスクマネージャ開いて動きを確認するとか
あと、365ってのの仕様が不明だが、よくありがちなのはテンポラリファイルが肥大してるだの
削除し切れて無くて過去の遺物がぞろぞろ居るとか が原因なんてこともありがち

テンポラリの確認は、フォルダオプションで隠し・・や保護されたオペ・・辺りを不可視から可視に変えて見て
0291名無しさん@そうだ選挙にいこう2016/03/08(火) 02:09:26.65
私は、零細の一会社員ですが、独学ながらグラフや表などの作成方法を学び、
ACCESSを長年使っていたこともあり、エクセルのVBAも、だいたいのことは理解したつもりです。

教えていただきたいというか、案内していただきたいのですが、
フォームなどを多用した、いかにも「ひとつのシステム」というレベルまで作り込んだ
エクセルファイルを見てみたいのですが、どこかに見本になるようなものを入手できないでしょうか?
アクセスでは、タイトル画面やメニューフォームを作って、そこから入力フォームや帳票印刷などに
移動させるのをよく作ってるのですが、エクセルではそういうのをどう作るのが通例なのか見てみたいです。

どこかにないでしょうか?
0292名無しさん@そうだ選挙にいこう2016/03/08(火) 03:53:01.64
>>291
正直、ない
みんな好き放題作っている

エクセルは入力フォームを作らずに直接表に入力するのが主流
・入力シートはデータベースのように扱い、計算や書式設定、セルの結合などは一切しない
・入力シートと出力シートは分ける
・必要に応じて設定シートや、計算の作業用シートなどを作成
変に凝ったことはせず、この辺りを守ればそれなりにいいものができると思う
0293名無しさん@そうだ選挙にいこう2016/03/08(火) 03:56:25.79
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

B4〜B8に入力規則リストで×と○のリストを作りました
×の場合は0、○の場合は-500としてIF関数を使って別のセルの計算に組み込むことはできました

その際の計算式は以下の通りです
=IF(B4="×",0,IF(B4="○",-500))

ただ×と○の合計数に応じてB列のみで計算して、B9に表示するにはどうすればよろしいのでしょうか

例えですがB4〜B8の間に○が3つあるならB9は-1500と自動で計算したいです
0294名無しさん@そうだ選挙にいこう2016/03/08(火) 04:00:49.02
>>293
エクセルないからエラーでるかもしれんけど
=countif(b4:b8,"○")*-500
こんな感じ
0295名無しさん@そうだ選挙にいこう2016/03/08(火) 04:20:52.55
>>294
COUNTIFの存在すっかり忘れてました!
ありがとうございます
0296名無しさん@そうだ選挙にいこう2016/03/08(火) 05:43:15.80
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

申し訳ないのですが別の箇所でつまってしまったのでもう1度質問させてください


×の場合は0、○の場合は-500としてIF関数を使って別のセルの計算に組み込むことはできました

=IF(B4="×",0,IF(B4="○",-500))

D4はC4*5000(ただしC4の記載なしの場合は空白のまま)としたいので以下の計算式を使っています
=IF(C4>=1,C4*5000,"")

E4はC4の数値が5以上の場合5000(ただし5以下の場合は空白のまま)と入力したいので以下の計算式を使っています
=IF(C4>=5,5000,"")

F4はC4の数値が1以上5未満の場合はD4を表示するだけ、5以上の場合はD4-E4、
0もしくは記載なしの場合は空白したいので以下の計算式を使っています
=IF(C4>=5,D4-E4,IF(C4>=1,D4,""))

B4に入力規則リストで×と○のリストを作り、
F4の計算式にB4が×の場合は何もせず、○の場合は-500と組み込みたいので

=IF(C4>=5,D4-E4,IF(C4>=1,D4,""))-IF(B4="○",500)

この計算式を作ってみたのですが、なんとか動作するものの
C4が記載なしの場合だとF4に#VALUE!と表示されてしまいます
他の計算式ではC4が空白の場合はそもそも計算しないでセルを空白にしているので、
C4が記載なしの場合はF4が空白になるようにするためにはどうしたら良いのでしょうか
0297名無しさん@そうだ選挙にいこう2016/03/08(火) 07:38:22.47
>>296
2007以降のエクセルならエラーを判別するIFERROR関数というのがあるけど
それ使えば?
0298名無しさん@そうだ選挙にいこう2016/03/08(火) 09:12:39.22
>>296
先に空白時の条件をまとめておいて、計算はあとにしたほうがわかりやすい
=if(or(B4="×",c4=""),"",foo)
fooの部分に空白以外の計算式が入る
わからんかったら>>297でいいと思う
0299名無しさん@そうだ選挙にいこう2016/03/08(火) 10:27:19.48
>>298
誤解させてしまったかもしれませんが×の場合は
=IF(C4>=5,D4-E4,IF(C4>=1,D4,""))
こちらの計算式ができるようにして、○の場合のみここから更に-500したいのです
そちらの計算式だとB4が×の場合だとC4に記載があっても消えてしまいました

>>297さんの言うとおりIFERROR関数でなんとか対処はできましたが、
もし2007以下の方に送らないと駄目な時だと困るので
ほかにも同じセル内でできる方法がございましたら教えていただけると助かります
0300名無しさん@そうだ選挙にいこう2016/03/08(火) 12:51:52.94
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】否

01
0101
010101

という規則でオートフィルのように100行くらい入れたいのですが
どのようにすればよいでしょうか。
関数はどれを使ったら良いのかわかりません。お願いします。
0301名無しさん@そうだ選挙にいこう2016/03/08(火) 13:13:38.71
>>300
A1へ =REPT("01",ROW())
で下にオートフィルかな?
0302名無しさん@そうだ選挙にいこう2016/03/08(火) 13:35:19.66
>>301
ありがとうございます!
うまく出来ました≦(._.)≧
REPTとというのは初めて使いましたです
0303名無しさん@そうだ選挙にいこう2016/03/08(火) 15:51:30.51
297ですがスマホのExcelで確認してみたところ、IFERRORの部分が?NAMEになってしまい読み込めませんでした…
03042972016/03/08(火) 15:55:33.04
>>299
無理やりやったらこんな感じかなぁ
F2 = IF(C4>=5,D4-E4,IF(C4>1,D4,IF(B4=
03053042016/03/08(火) 16:00:17.00
途中で切れた

F2 = IF(C4>=5,D4-E4,IF(C4>1,D4,IF(B4="○",0,"")))-IF(B4="○",500)

一体何やってんだか知らんけど、
式が長くなると後からメンテするのが大変だから、
もうちょっと抜本的に計算式の整理とか考えた方が良さげ
03062972016/03/08(火) 16:11:12.64
>>303
え?
>>303は俺じゃないですけど?

もし、「297のIFERRORをスマホで試したがダメだった」
って話なら、まぁオフィスモバイルとかだとダメなのかも知れんね
持ってないから確認出来ないけども
マクロも使えないらしいね
0307名無しさん@そうだ選挙にいこう2016/03/08(火) 16:59:25.49
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルの書式設定の表示形式で、_ @と定義して頭にスペースが入るようにしたのですが、
そのセルの文字の一部だけを太字にしたり、フォントを変えたりといったことができません。
セルの文字列すべてなら書式設定ができます。
こういうものなのでしょうか。
0308名無しさん@そうだ選挙にいこう2016/03/08(火) 17:07:39.48
>>292
わかりました。
ありがとうございました。
0309名無しさん@そうだ選挙にいこう2016/03/08(火) 18:14:41.39
>>304-306
305の関数を間違えていると思わしき部分を修正したうえで試してみたのですが、
C4が空欄の場合はF4が#VALUE!になってしまいますね…
教えていただいた関数だとB4が○の場合F4が-500と#VALUE!にはならなくなりました
(B4を○にする場合は絶対にC4に記載があるので問題ないです)

抜本的に改善したいところなのですが、
不必要なところに数値が入ってしまうのは困るのでIF関数を使って空欄にしてるので他に方法があるのでしょうか

例えば「D4 =IF(C4>=1,C4*5000,"")」ですが、空欄かどうかがどうでもよければ単純に「D4 =C4*5000」で済ませてしまうのですが…
0310名無しさん@そうだ選挙にいこう2016/03/08(火) 18:53:46.08
>>307
はい
0311名無しさん@そうだ選挙にいこう2016/03/08(火) 18:56:04.42
>>299
iserrorとifを組み合わせてiferrorを作る
>>307
そういうものだよ
>>309
・空白は使わずに、0を使う。書式設定で0の時に非表示にする。確か「0;;-0」こjんな感じで場合分けで設定できる
・空白の場合に0で処理する
D4 =IF(C4>=1,C4*5000,"")
D4 =IF(if(C4="",0,c4)>=1,C4*5000,"")
こんな感じで一旦ifをかます

どちらにしろ、多分根本的に数式が悪いとは思う
もし可能なら、実際に何やってるか言えば誰か整理してくれるかも
03122972016/03/08(火) 18:59:50.89
F4=IF(C4="",IF(B4="○",-500,""),IF(C4>=5,(C4-1),IF(C4>=1,C4,""))*5000-IF(B4="○",500))
0313名無しさん@そうだ選挙にいこう2016/03/08(火) 19:05:51.80
>>297
作業列一列増やして、C4が0かどうか判定させたら?
あと書式瀬底で非表示にするのはダメなの
0314名無しさん@そうだ選挙にいこう2016/03/08(火) 20:27:15.80
Windows7 32bit、Excel2003でコマンドボタンの貼り付けが出来なくなった。ActiveXの問題らしい。ネットの情報を全部ためしても解決せず。
KB2920794をアンインストールしたら解決しました。これが誰かの役に立つことを期待して書き込みました。
0315名無しさん@そうだ選挙にいこう2016/03/08(火) 20:48:51.72
違う
ActiveXは使わずにフォームを使うのだ
0316名無しさん@そうだ選挙にいこう2016/03/09(水) 01:05:10.06
>>315
ふむ。たしかにFm20.dllが含まれてるもんね。
ちなみにWin8.1、Excel2003でも同じ症状が出ていた。これはKB2965286のアンインストールで直った。
これにもFm20.dllが含まれていた。
0317名無しさん@そうだ選挙にいこう2016/03/09(水) 01:11:26.31
>>316
それはしらんけど、OSにデフォルトでそのdllが含まれるようになると実質削除不能の状態になる。
もしマクロを配布するにしても誰も使えないような状態になっているかもしれない。
ActiveXが完全に終了する前に移行しておいたほうがいい。

今でいう「macro4.0使い」みたいな原始人になりたければどうぞお好きに
0318名無しさん@そうだ選挙にいこう2016/03/09(水) 01:18:26.23
>>312
ありがとうございます!
とりあえず5000円増減ではできました!
あとは増減額が変わる場合です…

>>311
実際にやってることの詳細は教えられないのですが、
特定のセルに数値を入力すると横列のセルでさまざまなパターンを自動で計算をしてもらいたいのです

01.特定のセルの数値*5000(今度はこの部分のみ3000のパターンが欲しい)
02.特定のセルの数値が5未満の場合はそのまま、5以上の場合は5000(01が3000でもここは5000)
03.その時々によって違う項目なので×か○かのリスト、×ならそのまま、○なら別のセルで-500する(縦列計算は294で解決済み)
04.((01(-02で5000の場合))-03が○の場合のみ-500)*0.8
これらを縦ではなく横1列で行いたいです

例(一番左が上で言うところの01です)
1 3000 空欄 × 3000
1 3000 空欄 ○ 2500
4 12000 空欄 × 12000
4 12000 空欄 ○ 11500
5 15000 5000 × 10000
空欄 空欄 × 空欄
5 15000 5000 ○ 14500
このような感じです

挙動の理想は
特定のセルに1以上の数値を入れた場合のみ、01〜04の計算を行うようにしてもらいたく、
03はその時々によって違うので仕方なく×と○のリストにしていますが、
できれば特定のセルに1以上の数値が入っていない場合は0などの表記はせず空欄のままが良いのです
また、スマホなど他の環境で見る場合もあるので書式設定などはなるべくしない方向で頑張ってました
0319名無しさん@そうだ選挙にいこう2016/03/09(水) 01:32:28.45
すいません、空欄の列で空欄が1個足りず間違えてました

1 3000 空欄 × 3000
1 3000 空欄 ○ 2500
4 12000 空欄 × 12000
4 12000 空欄 ○ 11500
5 15000 5000 × 10000
空欄 空欄 空欄 × 空欄
5 15000 5000 ○ 14500

正しくはこうです
0320名無しさん@そうだ選挙にいこう2016/03/09(水) 01:49:25.81
>>317
配布はする予定がない。自営業で使う業務ソフトだから気楽なもんだよ。いざとなったら新しいPCと新しいOFFICE買えば済むんだから。
今回の件でこりたのでアップデートは極力しないようにするわ。MSのお陰で無駄な仕事が増えたわ
0321名無しさん@そうだ選挙にいこう2016/03/09(水) 02:22:48.97
>>320
自営業か。
知り合いも未だにwin95を使っている。大昔発注した古いPC用のソフトを使っている。
「仮想Pc」や「vmware」という単語を検索して使えるようになっておくと良い。

アップデートは好きにすればいいと思うしMSの仕事は無駄ではないが(両方セキュリティ面の問題解決)
仮想PCを使わないその未来は非常にヤバイとだけは言っておく。
別に進んでもいいぞ。
03223122016/03/09(水) 05:26:58.14
>>318
説明が全然足りてないよ

「特定のセル」に入る数値の取りうる範囲は?
整数のみ?非負数限定?空欄以外に数値以外のものが入る可能生は?

○×は空欄にならないの?あるいは他のものが入る可能生は?

処理に用いる定数(「1以上5未満」とか「5以上」とかの閾値や、5000とか3000とか-500とか0.8とかの係数)は
これで全部もれなく書き出してあるの?
他にもあるなら全部書き出して


とりあえず、仮に「○×が空欄無しで常に○×どちらかが入る」という仕様なら
これを「1と0」とか「1と空欄」とかに置き換えるだけでもはるかに計算がやりやすくなる
だって○なら-500ってのと×なら無しってのを、1か0との掛け算に出来るから
それがやりたくないならこういうのを一旦作業列で数値化して
それを計算する形にしといたほうが後々修正しやすいかな
0323名無しさん@そうだ選挙にいこう2016/03/09(水) 07:28:14.80
>>322
特定のセルには1から12までの数値のみ
他はすべて書き出しました

○×はリストにしてるので他の文字は入りません
リストに全角スペースで空欄を追加しても構わないですが、特定のセルに数値を入れる時は必ず○×どちらかを入れます
リストは「1と0」や「1と空欄」でも問題ないのですが、他人に渡すので○×リストの方がわかりやすいかと思ってそうしてます
(その項目は、したかしてないかの選択なのでオンオフスイッチみたいなものです)
代替案で入れるなら「空欄と-500」が良いです
0324名無しさん@そうだ選挙にいこう2016/03/09(水) 07:56:09.73
>>321
単語と簡単な概念以上は面倒だとおもって調べていなかったけど、これからは考えてみます。
MSの言うとおりにして業務が面倒になるのはコリゴリだからアップデートは1年遅れにしますわ。
古いのが好きという訳ではなくてExcelは2007を購入したところ速度低下が酷いのとリボンを消すのにシェアウェアで5000円というのが嫌で2003へ戻しただけですわ。
0325名無しさん@そうだ選挙にいこう2016/03/09(水) 10:23:36.98
表のデータに他のセルアドレスを参照してて(例えばC5セルの中身が「=C4」となってる)、
その表を並び替えでソートしたらもともと参照してあったセルではなくなるんです。

あれ、Excelのソートってこんな仕様だったっけ?
非常に困っております。
解決方法はありますか?
0326名無しさん@そうだ選挙にいこう2016/03/09(水) 10:35:00.78
絶対参照にすれば?
0327名無しさん@そうだ選挙にいこう2016/03/09(水) 10:42:02.11
>>326
それもやった。
でも結果は同じ。
0328名無しさん@そうだ選挙にいこう2016/03/09(水) 10:48:09.66
セルに名前つけたら?
0329名無しさん@そうだ選挙にいこう2016/03/09(水) 11:27:57.21
>>328
表は行が何千もあるんだ。
0330名無しさん@そうだ選挙にいこう2016/03/09(水) 12:00:15.31
絶対参照にしとけば結果変わったけどどんな式入れてんの?
0331名無しさん@そうだ選挙にいこう2016/03/09(水) 12:04:54.87
>>330
その絶対参照は確かに数個の行のテスト用の表を使ってためしたときはうまくいったけど
実際のデータの数千の行がある表だとうまくいかなかったんだ。
原因はわからないけど。
0332名無しさん@そうだ選挙にいこう2016/03/09(水) 12:07:51.98
INDIRECTで参照するのは、どうだろう?
0333名無しさん@そうだ選挙にいこう2016/03/09(水) 12:29:45.30
じゃあ原因別じゃん
0334名無しさん@そうだ選挙にいこう2016/03/09(水) 12:48:00.99
表の中で他のテーブルをVLOOKUP()で参照するなんてのはよくあるけど
その表をソートしたら参照がおかしくなるなんてことは一度もないな
0335名無しさん@そうだ選挙にいこう2016/03/09(水) 13:33:34.73
並べ替えるとき選択範囲を拡張していないとか
0336名無しさん@そうだ選挙にいこう2016/03/09(水) 13:56:49.79
>>335
単純にそうだと思う
03373312016/03/09(水) 23:33:18.23
>>335
あまりわたしを怒らせないほうがいいぞ。
わたしがそんな初歩的なミスをすると思っているのか?
03383312016/03/09(水) 23:35:17.49
>>334
たしかにVLOOKUPを使ったシートでソートはよくやるが
それでおかしくなったことは一度もない。

しかし先に書いたように
単に「=セルアドレス」で書いたものを含むシートでソートすると
おかしな結果になる。
0339名無しさん@そうだ選挙にいこう2016/03/09(水) 23:46:01.45
初歩知ってる奴なら起こさないようなクソ操作してるんだろ。
そんなプロのクソ操作なんて再現できねーからわからんよ。
どうしても原因教えてくれって言うなら再現するブックくれ。
0340名無しさん@そうだ選挙にいこう2016/03/10(木) 00:02:59.20
>>337
しらねーよ10年使ってる俺でも>>335のミスは経験してる
解決シたけりゃさっさとアップロードしろ俺は別に困ってないからどうでもいい
0341名無しさん@そうだ選挙にいこう2016/03/10(木) 01:12:14.09
まあひとついえるのは 表の中で上下のセルを参照しておきながら それをソートするというのは正常な操作ではないってことだな
0342名無しさん@そうだ選挙にいこう2016/03/10(木) 07:56:21.56
>>341
割りとありがちな操作のような
特に二人以上で同じブックを扱う場合

保存の競合で何度も叱咤されてるから、可能な限りコピーして別ファイルにして処理するが
0343名無しさん@そうだ選挙にいこう2016/03/10(木) 09:08:53.69
>>332の方法でいいじゃん
0344名無しさん@そうだ選挙にいこう2016/03/11(金) 15:31:45.97
【1 OSの種類         .】 Windows100
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

タイトルバーに色がつかなくて パッと見で
アクティブか非アクティブかわからないんだけど
アクティブなときにタイトルバーに色をつける設定は
どこにありますか?
0345名無しさん@そうだ選挙にいこう2016/03/11(金) 16:16:15.89
100かあ
難しい質問だな
0346名無しさん@そうだ選挙にいこう2016/03/11(金) 16:25:11.32
ウィンドウズの個人設定でクラシックにすればいいんじゃね
0347名無しさん@そうだ選挙にいこう2016/03/11(金) 18:25:10.76
中国製っぽくてワロタ
>>344
パーソナル設定というものがあるらしい
http://tunemicky.blogspot.jp/2015/12/windows-10.html
まぁ今回はいいけど、一応こういうのはwindows板で効くべき質問ゾ
0348名無しさん@そうだ選挙にいこう2016/03/11(金) 19:09:35.74
>>347
ちゃうねん

それやってもオフィス製品はタイトルバー付かないねん
だからWindowsというよりエクセルやワードの問題やねん
0349名無しさん@そうだ選挙にいこう2016/03/11(金) 20:02:28.80
>>348
あ、そうなんか。ごめんね
俺windows10もってないからわからん。SDIやMDIが関係している気もするが、分かる人を待とう。
0350名無しさん@そうだ選挙にいこう2016/03/11(金) 21:09:50.38
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

VBAでオートフィルターを使おうとしています。
A列は、1番から10番までの「コード番号」を入れる列とします。
そして、A列の1番→2番→…→10番と、順番にフィルター抽出し、抽出結果を別シートに貼り付けるという動作を組んでいます。
一応、うまいこと動いたのですが、
ここで、たとえばコード番号3番が無い場合、処理を飛ばして4番に進めるには
どうすればよいでしょうか。

If Range("A:A"),Find(What:=○○○)then とか適当に打ってみても、やはりだめでした。
0351名無しさん@そうだ選挙にいこう2016/03/11(金) 21:56:42.65
>>350
テキトーだけど
for i = 1 to 10
if cells(i,1)<>"" then
' オートフィルタ、コピー等の処理
end if
next

他の言語にはcontinueというものもあるが、vbaにはない
興味があれば for continue などで検索するといい
更にgotoなどでも処理できるけど、やめておいたほうがいい
0352名無しさん@そうだ選挙にいこう2016/03/11(金) 23:57:08.70
【1 OSの種類         .】 Windows7 64bit Pro
【2 Excelのバージョン   】 Excel2010 or 2003 or 2007
【3 VBAが使えるか    .】 使える環境にはあるが、自分で作成することはできない。
【4 VBAでの回答の可否】 可(ソースを提供くださるなら・・)

縦に、

142.544
175.541
187.547
146.124
(以下何十万件のデータ)
という複数列のデータがあり、これを簡単にグラフ化したいというのが希望です。

今はこの列を、countifで数えて、

  A    B
120-130 54821 ←countifで数えてる
130-140 47821 ←countifで数えてる
140-150 47361 ←countifで数えてる
(以下10区切りで繰り返し)

と数え   ↑ B列のデータを使ってグラフ化しています。

これを、列を選択して、「グラフの最低値を120」「最高値は180」「数の区切りは5ずつで区切って、(120-125、125-130・・)」
グラフ化せよって一発でできる方法ってありませんか?

よろしくお願いします。
0353名無しさん@そうだ選挙にいこう2016/03/11(金) 23:59:38.77
Win10でOfficeのタイトルバーの色がMSの決めたテーマカラーから変更できないのは仕様
でも個人設定で「ハイコントラスト」を選ぶと色が変わるんで、レジストリ操作でなんとかできそうな気がする
0354名無しさん@そうだ選挙にいこう2016/03/12(土) 00:26:47.08
>>352
う&#12316;ん
列数が決まってるなら数式でいける。列数が不定ならvbaが良いだろう
また、マクロの記録でいけるんじゃないか?
まくろの記録で不便なところがあったら教えて欲しい。
とりあえず思いつくのは最終行で、それは
最終行
でぐぐれば一発で出てくる
マクロの記録がわからない、マクロの記録のやり方がわからないならまた聞いてくれればいいよ
0355名無しさん@そうだ選挙にいこう2016/03/12(土) 01:02:00.95
何だこりゃ。文字化けした
>>354は>>352あてです
0356名無しさん@そうだ選挙にいこう2016/03/12(土) 07:30:31.16
>>352
エクセルの分析ツールの機能でヒストグラムってのがあるから
それを使えば一発とまでは言わないがかなり簡単に実現できる
(すくなくともCountIfとかはやらずに済む)

さらにそれをVBAで制御すれば、まぁ一発といって良いレベルになる
実は会社の俺のPCにはまさにそれがあるんだけど
今日は土曜日なので最短でも月曜にならないとソースコードが確認出来ない

まぁ、そんな難しいコードじゃなかったと思うから
分析ツールでヒストグラム作成する作業をマクロの記録で記録して
それをちょちょっと手直しするだけで作れそうではあるが
0357名無しさん@そうだ選挙にいこう2016/03/12(土) 07:55:06.72
>>355
>>356
ありがとうございます。ヒストグラムですね。
この元ネタを吐き出すのもVBAなので、ついでにVBAも自分でやってみようと思います。

ありがとうございます。
0358名無しさん@そうだ選挙にいこう2016/03/12(土) 21:01:39.31
エクセルでソートする前のデータはなんと呼びますか?
ぐぐったらmaster databaseとThe original dataが出てきたのですがどう違いますか?
0359名無しさん@そうだ選挙にいこう2016/03/12(土) 21:34:33.05
>>358
「マスター」も「オリジナル」も、どっちも「ソートしてない」って意味じゃないし
状況や目的によって呼び方はどんどん変わる

「マスター」は整形や正規化が終わっていて、抽出や集計をする前の状態だろうな
基本的にソート済みかどうかは問われない

収集してからソートに限らない一切の加工をしてなければ「生データ」、これは「オリジナル」に近いけど厳密には違う
全角を半角にしたり、なんらかの修正をしてしまった物は「未ソート」とか言うしかない
0360名無しさん@そうだ選挙にいこう2016/03/12(土) 21:37:52.97
>>359
大変勉強になりました。ありがとうございます。
0361名無しさん@そうだ選挙にいこう2016/03/12(土) 21:40:25.51
>>358
Excelではそんな用語の定義はないから気にしなくていい
ソートされてないデータ、で通じる
0362名無しさん@そうだ選挙にいこう2016/03/13(日) 03:20:42.74
csvならcsvという名称で落ち着いている
jsonデータはjson
この先は大抵ロクでもないデータにかわるので、データで読んでいるな
0363名無しさん@そうだ選挙にいこう2016/03/13(日) 09:17:48.08
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A    B
1:00  1
2:00  2 
3:00  3

Aの表が時間で、Bの表で個数になってます。
この二つの表で個数を関係した時間平均を出したいのですが
どのような関数を使えばいいのでしょうか?

お願いします。
0364名無しさん@そうだ選挙にいこう2016/03/13(日) 10:43:41.47
>>363
「時間平均」という言葉の一般的な定義を知ってますか?

http://www.cradle.co.jp/glossary/detail/0000000164

これを踏まえれば、単に「個数の時間平均」だったら

=AVERAGE(B:B)
となります

ですが恐らく、こんな簡単な答えを望んでいるわけではないでしょう?
たぶんもっと独自の概念を「時間平均」という言葉に込めているのだと推測しています

もしそうであれば「個数を関係した時間平均」という言葉の意味が
質問内容からは判断できないので、
どんな計算結果を望んでるのかきちんと具体的に説明してください
0365名無しさん@そうだ選挙にいこう2016/03/13(日) 11:05:40.33
>>363
average関数でできますよ
0366名無しさん@そうだ選挙にいこう2016/03/14(月) 07:03:25.58
個数が何パターンあるのか知らんけど
それぞれの作業列にイフ文でコピーしてケツにカウント××?つけてから計算
が楽だね
0367名無しさん@そうだ選挙にいこう2016/03/15(火) 07:08:47.84
最近2003の質問が多いな
0368名無しさん@そうだ選挙にいこう2016/03/15(火) 08:12:19.82
>>367
最近ではない
0369名無しさん@そうだ選挙にいこう2016/03/15(火) 21:50:38.83
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 無理ではない程度
【4 VBAでの回答の可否】 出来れば無しの方がいい

理系学生で主に散布図を利用しています。データを選択して散布図を選択しグラフを作るというところまではいいのですが
その後、軸の色、文字の色を黒に変更、補助線を削除、枠を追加、ラベルを追加
これを毎度やるのが面倒で仕方ないので既定のスタイルを変更したいのですが
エクセル2013でも可能でしょうか。
2010とかだとらしい記事を見かけるのですが2013のは見つけられず途方に暮れてます。
ご指導よろしくお願いします。
0370名無しさん@そうだ選挙にいこう2016/03/15(火) 22:02:50.11
>>367
2007以降と2003以前は別ものに近いから仕方ない
2003は重複の削除機能すらないんだぜ
0371名無しさん@そうだ選挙にいこう2016/03/16(水) 00:47:54.72
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 コピペ利用程度
【4 VBAでの回答の可否】 可

飛び飛びの行へまとめてコピーしたときに、参照セルを1ずつずらしたいです。

Sheet1
  A B C
1 あ い う
2 え お か
3 き く け

Sheet2
  A B C D
1
2   あ い
3   う
4
5
6   え お
7   か
8

シート1(データシート)に100行程度のデータがあります。(各行3列ずつ)
シート2にはA1からD4までが1ブロックの塊になった表のようなものがあり、
その中に、B2=Sheet1!A1、C2=Sheet1!B1、B3=Sheet1!C1の要領でリンクが貼ってあります。
A1からD4までをコピーしてその下(A5)に貼り付け、この要領でシート1の全行データを表示できるように
100個の塊をコピーして表を作りたいのですが、B6に=Sheet1!A2が来てほしいところ
自動で(当然ですが)B6=Sheet1!A5になってしまいます。
これを1ずつずらしてB6=Sheet1!A2、C6=Sheet1!B2、B7=Sheet1!C2(以下100回繰り返し)
とするための関数などを教えていただきたく思います。
0372名無しさん@そうだ選挙にいこう2016/03/16(水) 03:47:04.36
>>371
INDIRECT を使うとできる

シート2の各セルを

B2
=INDIRECT("Sheet1!A" & INT((ROW()-2)/4)+1)

C2
=INDIRECT("Sheet1!B" & INT((ROW()-2)/4)+1)

B3
=INDIRECT("Sheet1!C" & INT((ROW()-2)/4)+1)

にして、あとはA1からD4の領域(B1からC4でも問題ないけど)を選択して
下にオートフィルでいける
03733722016/03/16(水) 03:54:19.07
ごめん
式を見直したら

INT((ROW()-2)/4)+1)

の部分は

INT(ROW()+2)/4)

のほうが簡単だった
03743722016/03/16(水) 04:14:24.89
さらにごめん
B2とC2はINTが不要で、
B3はINTに必要な括弧が抜けてたからきちんと書き直す

B2
=INDIRECT("Sheet1!A" & (ROW()+2)/4)
C2
=INDIRECT("Sheet1!B" & (ROW()+2)/4)
B3
=INDIRECT("Sheet1!C" & INT((ROW()+2)/4))

もちろん、全部B3のようにINTをつけても正常に動く

少しでも計算量を減らしたいならB2とC2はINTなしの式で、
全部のセルに同じ要領の数式を入れて
見た人が内容を理解しやすくしたいなら
B2とC2にもINTありの式で書くと良いと思う
03753722016/03/16(水) 04:19:18.03
B3
=INDIRECT("Sheet1!C" & (ROW()+1)/4)

という書き方もあった(B2,C2はもとのまま)
0376名無しさん@そうだ選挙にいこう2016/03/16(水) 06:39:50.27
>>372-375
実際に試してみたが、オートフィルは最初に言っている通り
A1からD4の領域じゃないと無理みたいだぞ
B1からC4をオートフィルしてみると>>371の状態にはならない
03773722016/03/16(水) 08:57:14.59
>>376
え?
そんなはずはないと思うんだけど・・・・・・
もしかして縦の方の選択を間違えてるんじゃない?

1行めと4行めはオートフィルに必要な領域だから、
これを省くと正しい結果が得られないけど、
A列もD列も今回の式には全く関係ないよ
0378名無しさん@そうだ選挙にいこう2016/03/16(水) 18:51:08.62
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 使えるとも
【4 VBAでの回答の可否】 否

ファイル⇒印刷 とリボン移動したときや「印刷プレビューと印刷」ボタンを押したとき
「印刷プレビューの表示」というボタンを押さないと 印刷プレビューが表示されない
これを、自動的に表示するように設定したいです
0379名無しさん@そうだ選挙にいこう2016/03/16(水) 19:04:19.79
>>378
これかな?
http://hamachan.info/win8/excel/insatu.html
03803712016/03/17(木) 07:07:18.35
無事に思う通りのものがスムーズに作ることができました。
ありがとうございました。
0381質問2016/03/19(土) 14:10:27.20
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(必要なら勉強します)

よろしくお願いします。
長いのでレスを分割します。

あるサークルのメンバー毎のミーティング出席率を月ごとに求めたいと思います。

sheet1は日付毎のミーティング参加者の一覧です。
1行目はミーティングの日付、2行目以降は日付毎に出席者名が列に並んでいます。
メンバーに存在しない名前が含まれる場合があります。

sheet2はメンバー毎のサークル加入日の一覧です。
A列に名前、B列に日付。
ソートされていません。

sheet3はメンバー毎のミーティング出席率を月ごとに計算した表です。
例えば、佐藤は2001年4月1日に加入しているので、
3月の4回のミーティングすべてに参加できたはずですが、
3回しか参加できていないので、参加率75%となります。
また、鈴木は2016年3月20日に入会しているので、
3月は2016年3月26日からの2回のミーティングに参加できたはずですが、
1回しか参加していないので、参加率50%となります。
加入前の月の参加率はN/Aと表示します。

sheet1及びsheet2からsheet3を自動的に出力する方法を教えて下さい。
0382質問2016/03/19(土) 14:11:14.65
sheet1
   A        B       C       D        E       F
1 2016/02/21 2016/03/08 2016/03/16 2016/03/26 2016/03/27 2016/04/10
2     佐藤      佐藤     竹内     百地      鈴木    百地
3     田中      田中     鈴木     山田      佐藤    山田
4     百地      百地     佐藤     竹内      田中
5     山田      山田     田中
6                      ほげ

sheet2
   A     B
1 佐藤 2001/04/01
2 田中 2001/04/01
3 鈴木 2016/03/20
4 百地 2001/04/01
5 山田 2001/04/01
6 竹内 2001/04/01

sheet3
   A   B   C   D
1       2   3    4
2 佐藤 100% 75%    0%
3 田中 100% 75%    0%
4 百地 100% 50%  100%
5 山田 100% 50%  100%
6 竹内   0% 50%    0%
7 鈴木 N/A  50%    0%
0383名無しさん@そうだ選挙にいこう2016/03/19(土) 14:13:12.38
「百地」はなんとおよみするのですか?
ひゃくちさんですか?
そんな人いねーよ。
0384名無しさん@そうだ選挙にいこう2016/03/19(土) 14:14:02.78
>>382
どうせウケを狙うならこちらのほうがよかったですよ。

sheet1
   A        B       C       D        E       F
1 2016/02/21 2016/03/08 2016/03/16 2016/03/26 2016/03/27 2016/04/10
2     佐藤      佐藤     竹内     百地      鈴木    百地
3     田中      田中     鈴木     山田      佐藤    山田
4     百地      百地     佐藤     竹内      田中
5     山田      山田     田中
6                      ハゲ
0385名無しさん@そうだ選挙にいこう2016/03/19(土) 14:16:01.82
ハゲてる人はいつ入会したのですか?
0386質問2016/03/19(土) 14:16:05.85
>>383
「ももち」です。
実際に存在する苗字で、日大の名物憲法学者の百地章先生という方がおられます。
0387質問2016/03/19(土) 14:23:26.46
>>385
「ほげ」は部外者です。
部外者もsheet1に含まれますが、sheet3に出力する必要はありません。
0388名無しさん@そうだ選挙にいこう2016/03/19(土) 17:05:49.89
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

有効なアドインとして設定されているxlmaファイルを削除したいです。
killコードでやってみましたが有効中なためか削除できませんでした。
手動でアドインチェックボックスからチェックオフした後はできました。
手動チェックオフの部分もVBAで指示できないのでしょうか?
もしくは他に方法がありますでしょうか?よろしくお願いします。
0389名無しさん@そうだ選挙にいこう2016/03/20(日) 07:45:03.62
>>382
VBAでできる
0390名無しさん@そうだ選挙にいこう2016/03/20(日) 09:10:12.71
できるけどコード書くの結構面倒くさそうだな・・
その程度の人数なら手動でやったほううが駱駝
それとも会員何百人もいるのか
0391質問2016/03/20(日) 09:30:17.96
解決しました。
数式で対応できました。
0392名無しさん@そうだ選挙にいこう2016/03/20(日) 14:42:41.22
>>388

AddIns("Test_Addin").Installed = False
0393名無しさん@そうだ選挙にいこう2016/03/20(日) 15:46:24.28
>>379
あー ほほーう
いい線いってるよ! いいねいいね! でもちょっと惜しいかなー!


ありがとうございました
0394名無しさん@そうだ選挙にいこう2016/03/20(日) 15:50:10.32
1
2
2
3
のデータに対して
=SMALL(A1:A4,1)
=SMALL(A1:A4,2)
=SMALL(A1:A4,3)
↓としますと
1
2
2
となりますが
同じ数値を除外して
1
2
3
という風に結果を出したい場合は一体どうすればいいのでしょうか?
0395名無しさん@そうだ選挙にいこう2016/03/20(日) 16:35:26.36
>>394
まず重複データを取り除いたらいい
0396名無しさん@そうだ選挙にいこう2016/03/20(日) 16:49:53.06
>>394
b1=if(countif(a2:a100,a1)>0,"",a1)
下にオートフィルで重複を除外すると良い
03973942016/03/20(日) 16:51:13.99
元データの表は手を加えたくないのですが関数ので間引く事はできるのでしょうか?
03983942016/03/20(日) 17:02:15.70
>>395
>>396
重複を除外する機能はいろいろあるのですね、ありがとうございました。
一見簡単そうに見えて難し
0399名無しさん@そうだ選挙にいこう2016/03/20(日) 17:35:30.62
>>398
ピボット使うとか
0400名無しさん@そうだ選挙にいこう2016/03/20(日) 21:30:57.35
エクセル2013 Ctrl Tab が使えないんだが、、、
0401名無しさん@そうだ選挙にいこう2016/03/20(日) 21:42:36.17
>>400
Excel のショートカット キー
https://support.office.com/ja-jp/article/Excel-%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88-%E3%82%AD%E3%83%BC-6a4319ef-8ea9-45d1-bd98-f238bf953ba6
0402名無しさん@そうだ選挙にいこう2016/03/20(日) 22:11:00.50
ブックの切り替え出来ないんだが、、、
0403名無しさん@そうだ選挙にいこう2016/03/20(日) 22:44:12.18
>>402
Excel2010まではMDI(Multi Document Interface)のウィンドウだったのが
Excel2013からはSDI(Single Document Interface)のウィンドウに変わったことによる弊害では無いかな?
0404名無しさん@そうだ選挙にいこう2016/03/20(日) 23:06:52.13
Excel2010なんだけど、1シートを左右分割表示して、左側は上下スクロール可能、右側はスクロールできないようにできますか?
0405名無しさん@そうだ選挙にいこう2016/03/20(日) 23:17:54.34
>>404
多分出来ない
新しいウィンドウで開く、で擬似的にやるしか無いと思う
0406名無しさん@そうだ選挙にいこう2016/03/21(月) 00:54:35.71
>>403
ありがとう。皆は不便に思わないのかな
0407名無しさん@そうだ選挙にいこう2016/03/21(月) 01:54:18.30
【1 OSの種類         .】 Windows7 home
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否 VBAには関係しないと思うのですが

A列からF列まで選択肢てデータ→並べ替えをしようとすると、

この操作は、同じサイズの結合セルが必要です。
とのメッセージがで、ヘルプを見ると、
並べ替えようとしているセル範囲、または重複を削除しようとしている
セル範囲に、結合されているセルが含まれています。
ってでるんですけど、
結合されているセルがどこにあるかって素早く判別できる方法って
あります?



http://www.dotup.org/uploda/www.dotup.org786941.jpg
0408名無しさん@そうだ選挙にいこう2016/03/21(月) 05:23:24.49
>>407
https://support.office.com/ja-jp/article/%E7%B5%90%E5%90%88%E3%82%BB%E3%83%AB%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%99%E3%82%8B-d02b2a5a-a08d-4641-8d4d-b3f233daca2c
0409名無しさん@そうだ選挙にいこう2016/03/21(月) 08:35:56.14
>>406
普通の人はそんな操作しないからみんな不便に思わない。
0410名無しさん@そうだ選挙にいこう2016/03/21(月) 19:06:38.77
配列数式の事で質問なんですが、COUNTIF関数を配列数式でくくると
第1引数の範囲の部分は無視されてるって事でいいのでしょうか?
0411名無しさん@そうだ選挙にいこう2016/03/21(月) 19:25:39.51
初心者スレッドに貼ればよかったorz
0412名無しさん@そうだ選挙にいこう2016/03/21(月) 21:36:05.16
>>392
できました。
大変助かりました。ありがとうございます。
0413名無しさん@そうだ選挙にいこう2016/03/22(火) 10:19:54.19
【1 OSの種類         .】 Windows2007
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
下のセルに連続で特定の値が来る確率を今までの履歴から出したのですが数式が思い浮かびません
1〜3までの整数が確実に入るとして例としては
1
1
2
2
1
3
1
1
だとすると次に1が来る確率を求めたいです。
0414名無しさん@そうだ選挙にいこう2016/03/22(火) 10:31:07.83
>>413
履歴から出現の確率を計算するだけなら
=COUNTIF(A:A,1)/COUNTA(A:A)

それ以外の方法で予測するとしたら、1の次にまた1が来る確率みたいなのを全パターン計算するとか、
1がn個連続する確率を求めるとか、複雑にやろうと思えばいくらでも方法はあるけど
0415名無しさん@そうだ選挙にいこう2016/03/22(火) 10:44:07.25
>>414
出現確率ではなく連続で来る確率が知りたいのですが方法がわかりません。
0416名無しさん@そうだ選挙にいこう2016/03/22(火) 11:43:01.21
A列に元データがあってBCD列を作業列として、
B1=1
B2以下=IF(A1=A2,B1+1,1)
C1以下=IF(A1=A2,"",B1)
これで連続の個数が出るんで、あとは集計すればいいと思う
0417ひろ2016/03/22(火) 19:10:11.81
学校の成績処理してるんですが、
例えば、「1学期」をリストから選択すると、
1学期の成績が、「2学期」を選択すると「2学期」の成績が同じ表に表示
されるにはどうしたらいいでしょうか。
vlookupでもうまくいかないし、どうしていいかわかりません。
どなたか教えていただけますか?
0418名無しさん@そうだ選挙にいこう2016/03/22(火) 19:28:49.79
テンプレ使ってね

ピボットテーブル使えばいいんじゃない?
ていうかそもそもどうデータ作ってるのかによるので
それだけの情報じゃ何とも答えられないんだけども。
0419ひろ2016/03/22(火) 19:42:42.06
   1学期    2学期 3学期
 100 98 88 65 98   89 99 89 78 87 65  45 55 55 67 54 88
 100 98 88 65 98   89 99 89 78 87 65  45 55 55 67 54 88
 100 98 88 65 98   89 99 89 78 87 65  45 55 55 67 54 88

↑ こんな表があって、
別のシートで「1学期」とリストから選択すると、1学期のみ表示させる
 
できますかね?
0420名無しさん@そうだ選挙にいこう2016/03/22(火) 20:03:39.96
>>419
できないことはないけど、もうちょっとデータ整理の方法を考え直した方がいいと思う
そういうのはほかの先生がすでに作ってることも多いし
0421名無しさん@そうだ選挙にいこう2016/03/22(火) 20:18:35.26
>>419
別シート側の計算式の中にOFFSET関数で列指定をずらす工夫ができますよ。
419で示した内容がSheet1で、引用先がSheet2で、ひとつの学期あたりの占有列数が境目も入れて6と仮定します。
学期を入れるA1セルには1,2,3だけ入れて表示形式で"学期"を付加するとします。
419の左上隅の100がSheet1のB3セルにあると仮定したらSheet2のB3セルに
=OFFSET(Sheet1!B3,0,($A$1-1)*6) と入れて、右方向、下方向にコピーすると出来上がり。
0422名無しさん@そうだ選挙にいこう2016/03/22(火) 20:41:07.80
たとえば2列あって、1列目のデータを任意の範囲でグルーピングして、2列目をそのグルーピング単位で集計するにはどうすればいいでしょうか?行見出しはグルーピングの範囲がわかるようにつけます
0423>>4212016/03/22(火) 20:51:31.72
419です。
すごい!! 神様ありがとうございます! 解決しました!!
0424名無しさん@そうだ選挙にいこう2016/03/22(火) 21:11:39.31
どういたしまして
04254102016/03/22(火) 21:14:43.04
その調子で僕の質問もお願いします!!
配列数式ってのは配列にできないセル範囲は無視するでたぶんあってると思うんですけどね
0426名無しさん@そうだ選挙にいこう2016/03/22(火) 21:28:30.97
文科省はなにやってんだ? このレベルのテンプレートすら持ってないのか?
で、教員それぞれ個々人が毎年こんな馬鹿げたことに個別に時間費やしてんのか?
そらいくら時間あっても足りなくなるわけだ  国産ソフトじゃないから腰引けてんのか?
一太郎の栄華をまだ引きずってんのか? ジャストシステムの表計算って何だっけ?

高学歴者の考えることはさっぱり判らん おれ、りこうだし、じぶんでやるし
あぁ、そうだな 自分で苦労して疲弊して途絶えとけ
  「先生と 呼ばれるほどの バカで無し」

ま、たった一例をもって全体を量ってもいけないんだろうが、この程度を一教師が『2ちゃんねる』
で聞いてる  って現実に驚愕するわ  戦慄すら覚える  頼むから判り易く成績で喩えた
と、言ってくれ 本業は経理だとか総務だとか・・・  なんなら現場監督でもいいから
0427名無しさん@そうだ選挙にいこう2016/03/22(火) 22:37:23.50
>>426
利口なら>>425ぐらいわかるよね
0428名無しさん@そうだ選挙にいこう2016/03/22(火) 22:57:29.69
車輪の再発明は世界中で行われている
0429名無しさん@そうだ選挙にいこう2016/03/22(火) 23:04:03.17
http://home.att.ne.jp/zeta/gen/excel/c01p09.htm
http://office-qa.com/Excel/ex248.htm
http://www.clayhouse.jp/array/array01_e.htm
http://pc.nikkeibp.co.jp/pc21/special/hr/hr2.shtml まだ足りない?
自分が利口だ などとはカケラも書いて無いのだが? 微塵もだ
YesかNoだけの世界の人かな? All or nothing の世界観をお持ち? 生き辛そう
0430名無しさん@そうだ選挙にいこう2016/03/23(水) 05:33:02.36
教えてください

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

市販本で、フォームやマクロをたくさん使う使用例を見て勉強しています。
そのテキストの見本をダウンロードしてみたのですが、そのファイルの拡張子はxlsxでした。
本の中身をそのまま自分で作ってみてるのですが、どうしてもxlsmでしか保存できません。
xlsxで保存したら、フォームとかぜんぶなくなってしまいます。

xlsxのまま、フォームもVBAコードもぜんぶ込みで保存する方法があるのでしょうか?
0431名無しさん@そうだ選挙にいこう2016/03/23(水) 05:50:58.27
>>419 は学校の先生だとは一言も言ってない件
学習塾に提出された学校の成績をまとめているだけかも知れないんだし

ただ、文科省が用意したソフトは操作が非常に難解なのは事実なようで
それが間接的原因で去年の十二月に広島で生徒が自殺しているみたいね
0432名無しさん@そうだ選挙にいこう2016/03/23(水) 06:11:22.44
>>410=425
バージョンによる
2013以降ならその通りだが
2007以前だとエラーになる
0433名無しさん@そうだ選挙にいこう2016/03/23(水) 06:57:25.93
>>430
マクロを使う場合は、*.xls か *.xlsm になります
*.xlsx にはマクロを含めることはできません


Excel でサポートしているファイル形式
https://support.office.com/ja-jp/article/Excel-%E3%81%A7%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%BD%A2%E5%BC%8F-0943ff2c-6014-4e8d-aaea-b83d51d46247
0434名無しさん@そうだ選挙にいこう2016/03/23(水) 07:06:44.87
>>433
ありがとうございました!
0435名無しさん@そうだ選挙にいこう2016/03/23(水) 07:12:57.31
>>433
その辺の使い分けが面倒で未だにxls以外の使用を禁止してくれる人多いよなw
0436名無しさん@そうだ選挙にいこう2016/03/23(水) 07:26:50.57
>>432
なるほどありがとうございます!
これで配列の理解が少し深まりました!
0437名無しさん@そうだ選挙にいこう2016/03/23(水) 07:32:45.04
>>436
状況にもよるんじゃね?
COUNTIFを割り算の分母に使う場合は第一因数の範囲を狭めると、数式的な理由でエラーになるし
0438名無しさん@そうだ選挙にいこう2016/03/23(水) 08:42:52.38
ひきすうな
0439名無しさん@そうだ選挙にいこう2016/03/23(水) 09:32:08.73
>>438
引数の読みは「いんすう」でもいいんだぜ
0440名無しさん@そうだ選挙にいこう2016/03/23(水) 10:16:33.28
いいわけあるかアホか。
解毒をかいどくって呼んでるのと同じだ。
間違って覚えた奴が見栄張ってるだけの痛々しい言い訳広めんな。
0441名無しさん@そうだ選挙にいこう2016/03/23(水) 10:50:38.92
>>440
本来の正しい読みはいんすうだよ
それを誤解無いようにバケガク読みしてる
0442名無しさん@そうだ選挙にいこう2016/03/23(水) 10:52:24.28
アホは>>438=>>440だったというオチ
0443名無しさん@そうだ選挙にいこう2016/03/23(水) 12:08:47.61
それ知ってる奴はいんすうなんて言わないからな。
アホしか使わないからやめとけよ。
ここで知れて良かったな。
0444名無しさん@そうだ選挙にいこう2016/03/23(水) 12:31:23.84
アホの癖に負けず嫌いな>>443であった
0445名無しさん@そうだ選挙にいこう2016/03/23(水) 13:50:26.21
>>441
>本来の正しい読みはいんすうだよ

これホント?
ぐぐってもそんな説出てこないよ
みんなヒキスウを主に書いてインスウとも読むとなってる

あと、それとは別次元の根本的な話だけど、
話題の発端となった>>437は引数じゃなくて因数と書いてるんで
これは弁解の余地無くまちがいだけどさ
0446名無しさん@そうだ選挙にいこう2016/03/23(水) 14:50:59.41
2chで誤変換を「弁解の余地無く」とか言っちゃうバカ久しぶりに見た
0447名無しさん@そうだ選挙にいこう2016/03/23(水) 14:56:30.92
いんすうじゃ変換しても引数にならねーよ
0448名無しさん@そうだ選挙にいこう2016/03/23(水) 15:06:15.63
因数 オブ ジョイトイ
0449名無しさん@そうだ選挙にいこう2016/03/23(水) 15:44:48.86
>>445
wikipediaなので どうかとは思ったが "説"という事なら
湯桶読み
https://ja.wikipedia.org/wiki/%E6%B9%AF%E6%A1%B6%E8%AA%AD%E3%81%BF
で

>>また本来は音読みをする単語であるが、同じ分野で用いる同音異義語や似た音の言葉が存在するため、あえて慣用で湯桶読みを行う事例もある。以下が代表例である。
>>買春(かいシュン)[4]……売春(バイシュン)と識別。
>>引数(ひきスウ)[5]……因数(インスウ)と識別。
>>市立(いちリツ)[6]、私立(わたくしリツ)[7]
>>化学(ばけガク)[8]……科学(カガク)と識別。
>>首長(くびチョウ)[9]……市長(シチョウ)、首相(シュショウ)、主張(シュチョウ)などと識別。

とは書いてあるよ
0450名無しさん@そうだ選挙にいこう2016/03/23(水) 20:44:10.94
>>437
すいませんこれ例えばどのような式でしょうか??
0451名無しさん@そうだ選挙にいこう2016/03/23(水) 20:57:13.03
>>450
COUNTIFを割り算の分母に使う配列数式というと、種類数を求める配列数式が有名だな
0452名無しさん@そうだ選挙にいこう2016/03/23(水) 20:58:44.83
下記の計算ができる数式があるかを教えてください。

行に年月、列に名前、各人の月毎の給料が数値として記載されている表があるとします。
表の右端のセルにMax関数で一番多かった給料の数値を抜き出します。

知りたいのは、Max関数で抜き出した数値がどの月の値かを知ることのできる数式、です。
イメージとしては、Max関数の右隣のセルにその数式を入れてその値がある月を表示する、という感じです。

数式でなくても他に方法があれば教えてください。
0453名無しさん@そうだ選挙にいこう2016/03/23(水) 21:37:08.08
>>451
なるほどありがとうございます
ちょっとググってみます
0454名無しさん@そうだ選挙にいこう2016/03/23(水) 21:49:41.15
>>452
MAXしてるのが社員毎の最大給与値なら INDEX+MATCH で可能だけど
全社員の最大給与値なら
月毎の最大給与値を作業列に作ってから 抜き出した数値がどの月かを調べる(その時もINDEX+MATCHね)

あと VBA でやるって手もある
0455名無しさん@そうだ選挙にいこう2016/03/23(水) 21:54:25.77
>>431
ひつこくてすまんな 民間なら尚更効率を重視して、先輩やら経営側から
「これ使え」ってなるんじゃねーの? 功名稼ぎにひとりでしこしこ組み上げてんのか?
もっと上のレベルでしこしこならまだしも、どうかと思うぞ

新人研修でお題渡されて「こんなん出来ましたけど(2ちゃんのパクりですが、なにか?)」
ってののほうが、まだ現実味があるけれど
0456名無しさん@そうだ選挙にいこう2016/03/23(水) 22:37:55.29
>>454
社員毎の最大給料です。
index+matchですか。
一度試してみます。
ありがとうございます。
0457名無しさん@そうだ選挙にいこう2016/03/23(水) 23:03:09.05
>>452 まったくイメージがわかない 具体的にどんな表なの 書いて
0458名無しさん@そうだ選挙にいこう2016/03/24(木) 08:57:47.81
csvファイルをひらかずに特定の列のみ抽出して
別のエクセルファイルの特定の場所に張り付けたいんですが
どういう方法がありますか?
0459名無しさん@そうだ選挙にいこう2016/03/24(木) 09:09:42.47
>>458
「Excelで開かずに」なら別のアプリで開けばいい
あらゆるアプリで「ファイルを開かずに」ならそれは不可能
0460名無しさん@そうだ選挙にいこう2016/03/24(木) 11:01:09.20
どういう状況でそういうことしたいのか想像がつかんな
0461名無しさん@そうだ選挙にいこう2016/03/24(木) 12:18:29.24
>>460
割とある気がするorz

威圧的で自分の思い通りにならないとすぐに切れる上司が開く可能性があるファイルだと特に

事前に使用すると伝えていて、一瞬で別に保存して閉じても自分が開く瞬間に誰かが開いていると激怒されるから

そういうトラブルを防ぎたいんだろう
0462名無しさん@そうだ選挙にいこう2016/03/24(木) 12:33:43.69
ファイルをコピーしてから使えばいいじゃん
0463名無しさん@そうだ選挙にいこう2016/03/24(木) 13:07:43.08
ですよねー
0464名無しさん@そうだ選挙にいこう2016/03/24(木) 17:19:25.67
AAA
BBB
CCC

DDD
EEE
FFF

GGG
HHH
III

と並んでしまっているデータを

AAA | BBB | CCC
DDD | EEE | FFF
GGG | HHH | III

と並べ替える方法はないでしょうか?
別のシートに =シート名!A1 | =シート名!A2 | =シート名!A3
と並べてみましたが、それを繰り返させる方法がわかりません
このやり方ももしかしたら頭から間違っているかもしれません

アドバイスお願いします!
0465名無しさん@そうだ選挙にいこう2016/03/24(木) 17:24:52.90
地道にひとつひとつ記述するべき

VBAで数式埋める方が面倒
0466名無しさん@そうだ選挙にいこう2016/03/24(木) 17:34:55.03
ありがとうございます
一つ一つ記述するということは、一つ一つコピペした方が早いかもしれませんね
ひとかたまりのデータが数百あり、元データの最終行が8400行くらいなので
気の遠くなる作業になりそうです、、、
0467名無しさん@そうだ選挙にいこう2016/03/24(木) 17:43:16.04
>>458
2016ならパワークエリーでできるよ
0468名無しさん@そうだ選挙にいこう2016/03/24(木) 17:52:39.53
2013です、、、だめですね、、、
 
0469名無しさん@そうだ選挙にいこう2016/03/24(木) 17:54:35.76
>>464-466
規則性のある単純な繰り返し作業なら、どー考えてもVBAが一番楽
もっときちんと条件出してくれたらこのスレの誰かがVBAのコード書くと思う
なんなら俺が書くかもしれない
0470名無しさん@そうだ選挙にいこう2016/03/24(木) 18:04:49.35
なんと!是非! 

A1
A2
A3
B4
B5
B6
B7
B8
がひとかたまりで、各かたまり間は3行空いています
これを、
A1 | A2 | A3 | B4 | B5 | B8
にして(B6とB7は不必要)行間抜きで並べたいです

条件として何を挙げたらいいのかわからないのですが、上記で事足りますか?
0471名無しさん@そうだ選挙にいこう2016/03/24(木) 18:12:08.10
&かコンカチでよくね?
0472名無しさん@そうだ選挙にいこう2016/03/24(木) 18:43:31.87
A1 | A2 | A3 | B4 | B5 | B8
にして(B6とB7は不必要)行間抜きで並べたいです

各数値の間の|(たて棒)ってどういう意味なの?

よくわからないけど、上の人も書いてるように&かイコールで一行作って、範囲選択してコピーしたら出来ないのかな?
数値の並びと行間に規則があるなら簡単な数式で出来そうだけど。
0473名無しさん@そうだ選挙にいこう2016/03/24(木) 18:52:36.02
>>472
たぶん縦棒はセルの区切りだと思う
つまりA1〜B8が同じ行に並んでるんじゃないか?
0474名無しさん@そうだ選挙にいこう2016/03/24(木) 19:09:15.88
表1)
A B C D
1 a
2 b
3 c
4 (行間)
5 d
6 e
7 f
8 (行間)
大文字アルファベットは列番号
数字は行番号
小文字が値
簡単にするために行数は減らしてる

みたいなのがあったとして、
例1)
A B C
1 abc
2 def
みたいにA列にabc〜ってならべたいのか
例2)
A B C
1 a b c
2 d e f
みたいにABC列ごとに値を入れたいのかによるけど、
例1の場合なら、表1のB1のセルに「=a&b&c」って入れて、B1からB4までを選択して右下の十字にカーソル合わせて下に引っ張ってコピー。
例2の場合なら、表1のB1に「=a」C1に「=b」D1に「=c」と入れて、B1からD4まで選択して下に引っ張ってコピー。
これだとダメなのかな?
要らない数値は除けばいいし。
0475名無しさん@そうだ選挙にいこう2016/03/24(木) 19:42:10.31
>>470です 
|はセルの区切りのつもりでした 説明下手で申し訳ない
>>473さんのおっしゃる通り、横に並べたいのです

ええと、まず>>474さんの書いてくださったことを理解しに行ってきます
0476名無しさん@そうだ選挙にいこう2016/03/24(木) 20:23:47.16
>>470です
やりたいことはこれです
http://i.imgur.com/DJbwYe6.png
0477名無しさん@そうだ選挙にいこう2016/03/24(木) 21:24:43.01
ホイールでのスクロール量を 行数ではなく
だいたいドット数にしたいんですができますか?

なるべくできるだけ見た感じ同じ分量だけスクロールさせたい
0478名無しさん@そうだ選挙にいこう2016/03/24(木) 21:24:52.41
>>476
Sub Macro1()
  Dim c(100, 5)
  Sheets("Sheet1").Select
  r = 0
  For i = 1 To 1100 Step 11
    c(r, 0) = Cells(i, 1)
    c(r, 1) = Cells(i + 1, 1)
    c(r, 2) = Cells(i + 2, 1)
    c(r, 3) = Cells(i + 3, 2)
    c(r, 4) = Cells(i + 4, 2)
    c(r, 5) = Cells(i + 7, 2)
    r = r + 1
  Next
  Sheets("Sheet2").Select
  Range("a1:f100") = c
End Sub
0479名無しさん@そうだ選挙にいこう2016/03/24(木) 21:25:20.63
>>477
無理
0480名無しさん@そうだ選挙にいこう2016/03/24(木) 21:29:41.36
>>478 キャー 
0481名無しさん@そうだ選挙にいこう2016/03/24(木) 21:32:21.94
すみません 焦って途中送信してしまいました
ちょこっと数式かける程度でVBA全く判読不可能なのですが
まずは解読するところから頑張りますので また質問させてください
ありがとうございます!!!
0482名無しさん@そうだ選挙にいこう2016/03/25(金) 00:37:33.24
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

セルの場所はどこでもいいのですが、A列に重量、B1に個数、C1に必要重量を入力
A1=100.0 A2=101.5 A3=97.8 A4=103.4…、B1=5、C1=1709(数値は適当です)
個数が5の場合1の袋には100.0gが5個、2の袋には101.5gが5個のように全て同じ重量の物が入ります。
中身を分けれる袋は1袋のみ

下記の計算は適当ですが、
袋内の1個を分けなくても必要重量になる場合は、
【100.0】【97.8】【103.4】101.5x2 
【100.0】【101.5】【103.4】97.8x3 等、組み合わせ例を全て表示

1個を分けないと必要重量にならない場合は、
【100.0】【97.8】【103.4】101.5x2(-0.8)
【100.0】【101.5】【103.4】97.8x3(-3.8)
【100.0】【101.5】【97.8】103.4x1(+12.0)等、
-5以内になる組み合わせは全て表示
どの組み合わせも±5.1以上にしかならない場合、(±○)○の数字が最小の組み合わせのみ表示(○が同じになる組み合わせは全て表示)

このようなことをするにはどのように計算し表示すればいいですか?
0483名無しさん@そうだ選挙にいこう2016/03/25(金) 00:46:31.30
【100.0】【97.8】
【100.0】【101.5】【97.8】(-3.4)
このような結果の場合もあります。
0484名無しさん@そうだ選挙にいこう2016/03/25(金) 00:54:15.91
組み合わせがひとつ見つかればいいならソルバーがつかえる
0485名無しさん@そうだ選挙にいこう2016/03/25(金) 01:50:32.84
>>482
質問中で使われている【】と()の意味がわからない
なんとなく【】は5個(つまりB1の値ぶん)すべてそろってるってことなのかなぁ、と思うんだけど
()のほうがさっぱり理解できない

()内の数字がどっから出てきてるのかもわからないし、
「袋内の1個」を「分ける」とか「分けない」とかって表現もちょっと意味を把握しかねる
04864822016/03/25(金) 02:44:41.38
>>485
うまく質問できず申し訳ない
例えば、
袋には同じ重さのリンゴを指定した個数入れる。【】の数字はりんご1個の重さ
袋の区別を【】で表しています

リンゴの入った袋が10袋あるとします
8袋と残りの袋どちらかのリンゴを2つを足せば必要重量になる。()なし

袋の1個を分けるというのは、
どのような組み合わせにしても必要重量にならない場合、8袋と2つで4gオーバーする。これのオーバー分が(&#8722;4)、6g足りない場合(+6)
リンゴを切って重さを調整する。調整分を()で表示

結果を式にするとこんな感じです。A3x2のx2は適当です

(【A1】+【A2】+【A4】…+【A10】)x B1 + A3x2 +()= C1
04874822016/03/25(金) 02:49:00.98
>>485
【】は個数が揃ってる袋
【】なしの数値は袋から取り出した物
()は微調整した重量です
0488名無しさん@そうだ選挙にいこう2016/03/25(金) 03:23:25.51
説明が下手だと考える気にもならんw

はい、次の方〜
0489名無しさん@そうだ選挙にいこう2016/03/25(金) 03:51:32.42
>>486-487
さっきは個数5個を例示してたでしょ?今回10個にした意図は何?
説明するときに例えの数字を変えるのは悪手だと思うよ


>>488
お前には聞いてない
ほかの回答者の邪魔だからわからないならしゃしゃりでてくるな
04904822016/03/25(金) 04:15:51.30
>>489
はじめと後とで例えた数字が別物でした。。。
例えの5と10は、
リンゴ5個が入った袋が10袋ということです
0491名無しさん@そうだ選挙にいこう2016/03/25(金) 04:50:16.40
つまり最初はA1からA4までの4種類で例示していたのに、
今度はA1からA10までの10種類で例示したってことだな
やっぱりわかり辛かったわけだけど、とりあえずそこはいいや

そんで、各種類ごとに個数(=5)分ずつ集計して必要重量を目指すけど
調整できるのは1種類だけだということだったよね?
ほかはかならず個数分あるってことが前提なら

A1からA10の10種類だったとして

C1=(Sum(A1:A10)-A1)*B1 + (A1 * x1) + y1
C1=(Sum(A1:A10)-A2)*B1 + (A2 * x2) + y2
…
C1=(Sum(A1:A10)-A9)*B1 + (A9 * x9) + y9
C1=(Sum(A1:A10)-A10)*B1 + (A10 * x10) + y10
(xn、ynは未知数をあらわす)
を満たす最小のyとそれに対応したxを求めたいわけでしょ?
0492名無しさん@そうだ選挙にいこう2016/03/25(金) 06:20:34.59
>>491
すみません、例で出した式もおかしかったです。。。
調整できるのは1種類ですが、もしC1の値が小さい場合、
A1とA7、A3の中の2個(xn)で4オーバーするならyn=-4
【A1】【A7】A3*2(-4) 
と表示【】()は区別する為につけてます。
の様にA1〜A10の10種類の中のどれを使いどれを調整するとC1になるのか
最小のyではなく、-5≦(y)≦0 の場合は全ての組み合わせを表示
【A2】【A8】A5*2(0)
【A1】【A3】A6*2(-2.5)
【A1】【A7】A3*2(-4)
y<-5もしくはy>5の場合は-と+なので言い方は変ですがyが最小の組み合わせを表示
y=-8とY=11だとy=-8を採用して表示
【A1】【A10】A4*3(-8)

C1と等しくする為にA1〜A10の何を使って何をどう調整したのかを表示したいです。

拙い説明でわかりましたら、よろしくお願いします。
0493名無しさん@そうだ選挙にいこう2016/03/25(金) 10:27:44.06
>>492
まずは「絶対値」という言葉を思い出そうな
義務教育で習ったんだから
0494名無しさん@そうだ選挙にいこう2016/03/25(金) 12:51:11.30
>>478 感動!!!!!!
ぜんっぜんマクロわからないのですが、コピペで全てできました!
似たようなファイルが他にもあるので、
少し勉強して応用します

ありがとうございます you saved my life mate!!!

excelってすごい!
0495名無しさん@そうだ選挙にいこう2016/03/25(金) 18:06:16.68
>>492
>>484氏が言ってるソルバーってのは
俺は使ったことがないんで良くわからないけど、
仮にVBAでやるとしても結構めんどくさそうな内容だね

10種類の要素があって、そのうち1種は0〜5個の値をとりうる
残りの9種はゼロ個か5個のどちらかの状態しか取りえない
という条件で目標値の前後5以内に収まる組み合わせ全て、
または5以内に収まらない場合には目標値にもっとも近い組み合わせをひとつ見つける
ってのが求められてる内容だけど
この条件で取りうる全ての組み合わせって30,000通りを超えるね
0496名無しさん@そうだ選挙にいこう2016/03/25(金) 21:12:51.95
マクロ書いてもいいんだけどやり方が違ってたら死ぬほどダルイのがネック
0497名無しさん@そうだ選挙にいこう2016/03/26(土) 00:34:51.22
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

時刻の計算で質問します。
23:50から0:21までの分数(この例だと31分)を出したいのですが、
Webから時間のデータをDLしているので、
セルの書式設定で[h]mmに変えても25:21に変換できません。
シリアル値も考えましたが、
計算式ばかり増えて行き詰まりました。
良い方法を教えてください。
0498名無しさん@そうだ選挙にいこう2016/03/26(土) 00:38:14.32
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

A列に数値、C列に数値、D列に文字列という値が入っています
B列に関数を使い、A列とC列の値が等しい場合合致したC行の隣のDの値を表示してください。
できるでしょうか?
0499名無しさん@そうだ選挙にいこう2016/03/26(土) 00:38:51.46
文字列で表された時刻を小数(シリアル値)に変換します  topへ
 タイムバリュー
=TIMEVALUE(時刻文字列)
  時刻のシリアル値:0〜0.99999999 の値で、0:00:00(午前0時)〜23:59:59 (午後11時59分59秒) までの時刻を返します。
0500名無しさん@そうだ選挙にいこう2016/03/26(土) 00:53:57.17
>>497
a1=23:50
b1=0:21
c1=if(a1>b1,b1+1-a1,b1-a1)
あとは書式設定でmとしたりminutes()使ったりお好きに
0501名無しさん@そうだ選挙にいこう2016/03/26(土) 00:55:55.49
>>498
b1=if(a1=c1,d1,"tigauyo")
0502名無しさん@そうだ選挙にいこう2016/03/26(土) 11:28:39.89
>>501
お返事ありがとうございます。
説明が下手で申し訳ありません。
下のB列のような関数にしたいのです。

A B C D
1 なし 12 あああ
2 おおお 8 いいい
3 なし 5 ううう
4 なし 77 えええ
5 ううう 2 おおお
0503名無しさん@そうだ選挙にいこう2016/03/26(土) 11:31:36.01
ずれた…
これでどうだ

A B C D
1 なし 12 あああ
2 おおお 8 いいい
3 なし 5 ううう
4 なし 77 えええ
5 ううう 2 おおお
0504名無しさん@そうだ選挙にいこう2016/03/26(土) 12:05:38.16
>>502-503
VLOOKUPとIFERRORを使えば?
0505名無しさん@そうだ選挙にいこう2016/03/26(土) 13:17:55.18
>>503
A1とC欄を照会するなら
B1=iferror(vlookup($A1,$c:$d,2,0),0)
でいいと思うよ。
a列とc列で複数一致する数字がなければ。
0506名無しさん@そうだ選挙にいこう2016/03/26(土) 13:32:26.83
>>504
>>505

ありがとうございます。
うまくいきました。
0507名無しさん@そうだ選挙にいこう2016/03/26(土) 17:15:46.15
ここの皆さんに救っていただいた>>494です
1からVBAの基礎を学びたいのですが、
Exce2013利用者にオススメのサイトはありますか?
という質問はここでしてもよいでしょうか?
0508名無しさん@そうだ選挙にいこう2016/03/26(土) 17:17:44.62
検索するとたくさん引っかかって良し悪しがわからないので質問してしまいました
でもこれは自分で解決すべき問題かも、、、
無視してください スレ汚しすみません
0509名無しさん@そうだ選挙にいこう2016/03/26(土) 19:38:30.37
>>507
きちんと本を買って覚えた方がいいよ。
サイトって結局情報細切れだから。
0510名無しさん@そうだ選挙にいこう2016/03/26(土) 19:48:29.99
>>507
vbaはめちゃくちゃ範囲が広く、ある程度範囲を絞らないと大変なことになる。
>>478は色々と凝縮されていて結構応用が聞くコードだから、まずはこれを一行一行しっかり理解すればいいと思う
分からなくなったらまたおいで
0511名無しさん@そうだ選挙にいこう2016/03/27(日) 10:55:24.84
>>509
書籍だとお勧めある?
以前買った本はマクロの記録に関する内容が過半を占めていて最後にあった説明を実際にやってみても
関数を並べる方が遥かに楽にできるっぽいことしかなかったもんだから

無論その内容自体はいちいち再計算されなくてすむ等の理由で
VBAにした方がいいんだろうなと思えはしたが
0512名無しさん@そうだ選挙にいこう2016/03/27(日) 11:22:27.88
書籍のお奨めっていっても
読み手のレベルがわからないと薦めようが無いと思う
おれ自身が一番役に立ったと感じた本は
VBAでの処理の実例集だったけど、
それって俺がすでに他の言語でプログラミング経験があって
VBAでつかえるオブジェクト、メソッド、プロパティーなどが分かれば
それで事足りたからであって
プログラミング一切したこと無い人に薦めるのは
ちょっとふさわしくないと思うんだよね
0513名無しさん@そうだ選挙にいこう2016/03/27(日) 22:04:31.32
>>511
VBAを始める前にそもそもExcelができることをある程度知っていないと効果的なVBAは作れないよ。
「○○入門」って本はほぼ役に立たないゴミだから買ってはだめ。

以下の3種類を持っておけばなんとかなる。

1.「全機能Bible うんたら」や「パーフェクトマスター うんたら」等の全機能解説本
全部を読む必要はない。目を通すのは目次と、目次を見て初めて知った機能のうち気になるページだけ。
後は必要になったときに必要なページを読む。

2.VBAの文法解説本
何らかのプログラミング言語の経験があるなら、この系統の本はいらない。オンラインヘルプで十分足りる。

3.「逆引き うんたら」のサンプル集を2冊ぐらい
IEを操作してとか考えているなら、それ専用本を1冊。
0514名無しさん@そうだ選挙にいこう2016/03/27(日) 22:38:15.76
学生ならとにかく事務のバイトにいってエクセルを触りまくれば良い
現実を知ることになるだろう
0515名無しさん@そうだ選挙にいこう2016/03/27(日) 22:46:22.36
「数式」が理解できない上司の命令で、数字の合計はカシオの電卓で計算してから手入力するんだよ ← これが現実
0516名無しさん@そうだ選挙にいこう2016/03/27(日) 22:51:57.82
>>515
責任を負うのが上司だし、中小零細だとそんなことに構ってられない役職である事もあるんだけどね
まぁ、なんにしろ現実は知っておいたほうがいい。そこがスタートだ
0517名無しさん@そうだ選挙にいこう2016/03/28(月) 05:40:25.87
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 もうすぐ中級
【4 VBAでの回答の可否】 可

フォーム上のコンボボックスの選択肢を設定するのに、
シートAのA1からA100の値から、重複を除いて設定したいです。
A1からA100の各値は、順に並んでいるわけでもなく、バラバラです。
重複を排除して取得し、ひとつづつ.AddItemで処理するにはどうすればいいのでしょうか?

お願いします。
0518名無しさん@そうだ選挙にいこう2016/03/28(月) 06:51:35.94
重複のないリストを作ってAddItem
2段階で
0519名無しさん@そうだ選挙にいこう2016/03/28(月) 06:57:00.52
>>517
A1からA100をソートしてから 登録処理する(直前のAddItemした値と同じだったら登録しない)
0520名無しさん@そうだ選挙にいこう2016/03/28(月) 07:28:26.15
>>518-519
ありがとうございます。
ご指導の通りやってみましたが、ソート自体がうまくいきません。

「テスト」シートのEとF列を、E列基準で並べ替えたいのですが、↓これの何がだめなんでしょうか?

ThisWorkbook.Worksheets("テスト").Range("E:F").Sort Key1:=
ThisWorkbook.Worksheets("テスト").Range("E:E"), order1:=xlAscending
0521名無しさん@そうだ選挙にいこう2016/03/28(月) 08:28:28.31
>>520
何も間違ってない

「うまくいかない」をもうちょっと具体的に
0522名無しさん@そうだ選挙にいこう2016/03/28(月) 08:35:21.54
A列の重複を削除するのに、何故E列をソートしてるんだ?
0523名無しさん@そうだ選挙にいこう2016/03/28(月) 08:46:54.08
ごめんなさい。
徹夜のせいで頭がぐちゃぐちゃになってました。

ちゃんとソートできました。
0524名無しさん@そうだ選挙にいこう2016/03/28(月) 11:43:35.72
abc列に行が10000以上のデータがあります。
3行目から10000行まで簡単にコピーできる方法あります?
0525名無しさん@そうだ選挙にいこう2016/03/28(月) 12:22:32.29
あります
0526名無しさん@そうだ選挙にいこう2016/03/28(月) 12:23:46.17
>>524
A3にカーソル合わせてshiftおしっぱctrl+↓、→、→、ctrl+C

>>525
無能は黙っててね
0527名無しさん@そうだ選挙にいこう2016/03/28(月) 12:52:06.10
名前ボックスに「a3:c10000」と入力、Enter、Ctrl+C
0528名無しさん@そうだ選挙にいこう2016/03/28(月) 21:20:54.94
>>513
なるほど ありがとう

見事にマクロの入門書買ってたわ

文法解説はあったっぽいからそれのために買ったと思っておこう

紹介された系統の書籍を本屋で探してみる
本番環境2007だから機能系は微妙かもだが
0529名無しさん@そうだ選挙にいこう2016/03/29(火) 07:56:34.81
見よう見まねでフォームを作ってるんですが、
いくつかのラベルをまとめて移動(ドラッグ)してるときにフッと消えてしまいました。
「すべてのコントロールの名前をmsgboxで出す」というコードを探してきて実行したところ、
なくなったわけではなくどこかに存在してることは確実です。

でも、他のコントロールの下など、どこを探しても見つかりません。

なにか見つける方法ないでしょうか?
0530名無しさん@そうだ選挙にいこう2016/03/29(火) 08:14:19.72
>>529
フォーム内に座標を移してみるとか
0531名無しさん@そうだ選挙にいこう2016/03/29(火) 11:03:21.66
>>529
フォームの左下かどこかに「プロパティ」というのがあるとおもう
そのプロパティのすぐ下の「userform」か「commandbutton」みたいなものがあると思うので、好きなオブジェクトに変更して、
更に下のleftとtopを0にすれば左上に移動できる

一回も使ったことがないけど、一括でやるならVBEが使えるかもしれない。知らんけど
0532名無しさん@そうだ選挙にいこう2016/03/29(火) 12:45:29.68
A列に文字列を100行くらい並べているんですが
A列からランダムに二つセルを抽出して その文字列をつなげたものをB列に並べていきたいです。

A1 ab
A2 cd
A3 ef

とあるときに
B1 cdab
B2 efab
B3 abcd

といった具合です。
よろしくお願いします
0533名無しさん@そうだ選挙にいこう2016/03/29(火) 13:20:13.18
>>532
20行あるとして
B1=INDIRECT("r"&INT(RAND()*(21-1)+1)&"c1",0)
C1=INDIRECT("r"&INT(RAND()*(21-1)+1)&"c1",0)
D1=B1&C1

100ぎょうなら21を101にしてね
0534名無しさん@そうだ選挙にいこう2016/03/29(火) 13:27:34.96
B1に↓入れて後は下にオートフィル
=OFFSET(B$1,INT(RAND()*COUNTA(A:A)),-1) & OFFSET(B$1,INT(RAND()*COUNTA(A:A)),-1)
0535名無しさん@そうだ選挙にいこう2016/03/29(火) 13:59:39.54
うまくいきました!ありがとうございます!
0536名無しさん@そうだ選挙にいこう2016/03/29(火) 16:32:36.53
初めてエクセルなるものを使ったのですが、予定表(横)のボックスの中に文字を入力すると隣のボックスに進出してしまいます
左上に日付があり、その行から改行して文字を打ち込みたいのですがどのように行うのでしょうか
0537名無しさん@そうだ選挙にいこう2016/03/29(火) 16:34:50.15
>>536
ボックス→セル
進出→カーソルが移動

alt+enterでセル内改行できるけど、これでいいかな
0538名無しさん@そうだ選挙にいこう2016/03/29(火) 16:38:57.02
Enter後の方向の設定じゃないかな。オプションで設定する奴。
0539名無しさん@そうだ選挙にいこう2016/03/29(火) 16:41:15.74
どうしたいかを写メかなんかで見せて欲しい
0540名無しさん@そうだ選挙にいこう2016/03/29(火) 17:12:03.08
>>537
これですねありがとうございます
0541名無しさん@そうだ選挙にいこう2016/03/29(火) 20:55:24.85
フォーム上にあるリストボックスのすべての行の2列目の値を
順に取得したいのですが、どう書けばいいのでしょうか?

dim a() As String
For cnt = 0 To ListBox1.ListCount
a(cnt) = ListBox1.List(cnt,1).Value
Next cnt

↑
いい線いってると思うんですが。。
0542名無しさん@そうだ選挙にいこう2016/03/29(火) 21:28:12.37
Windows7
Excel 2010

C〜E列を非表示にするときは
Columns("C:E").EntireColumn.Hidden = True
で出来ますが、C〜E列を数値の3〜5列目として非表示にしたいとき
Columns("3:5").EntireColumn.Hidden = True
と書いたらアプリケーションの定義またはオブジェクトの定義エラーとなり、
Columns(3:5).EntireColumn.Hidden = True
と書いたらコンパイルエラーとなってしまいます。

列を数字で指定したいとき、「3〜5列目を非表示」という記述はできますか?
0543名無しさん@そうだ選挙にいこう2016/03/29(火) 21:33:24.63
>>541
もうちょっとぐらい頑張れ
fornextでもいいけど要素数が分からん場合はforeach。最初は使いづらいけど必ず役に立つから絶対に覚えてくれ

Private Sub UserForm_Click()
'toroku
ListBox1.AddItem "1"
ListBox1.AddItem "2"
ListBox2.AddItem "3"
ListBox2.AddItem "4"
'honban
For Each n In UserForm1.Controls
If TypeName(n) = "ListBox" Then
MsgBox n.List(1)
End If
Next
End Sub
0544名無しさん@そうだ選挙にいこう2016/03/29(火) 21:35:26.13
>>541
あと動的配列に追加する場合はredim Preserveとか使う
http://officetanaka.net/excel/vba/variable/08.htm

vbaにはpushとかなくてめんどくさい
0545名無しさん@そうだ選挙にいこう2016/03/29(火) 21:37:35.85
>>542
vba 列 数値指定
で検索して気に入ったやつを使ってくれ

個人的にはこれ
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1242387037

columnを数値で指定できないのはめんどくさいよなー
0546名無しさん@そうだ選挙にいこう2016/03/30(水) 07:26:51.26
>>541
スレ違いとまでは言わんが、こっちの方がいい
Excel VBA 質問スレ Part40
http://echo.2ch.net/test/read.cgi/tech/1455817784/

>>543
> fornextでもいいけど要素数が分からん場合はforeach。
おもいっきり要素数わかってるだろ
コードもさっぱり参考にならんし
0547名無しさん@そうだ選挙にいこう2016/03/30(水) 10:16:29.82
a2に11:01
a3に11:02
a4に11:03
と時間が1分ごとに続きます。

b列には数字が入っています。

c1に11:02と入力したら
a列の時刻と一致した時間のb列の値、この例だとc3にb3の値が出るようにしたいです。

よろしくお願いいたします。
0548名無しさん@そうだ選挙にいこう2016/03/30(水) 10:27:15.39
lookupで出来るんじゃね
PCないからちょっと試せない
0549名無しさん@そうだ選挙にいこう2016/03/30(水) 10:33:17.19
>>547
=INDEX(B:B,MATCH(C1,A:A,0))
エラー回避する場合はiferror()など

>>546
参考にならんか、じゃあお前が参考になるコード書けばいいと思う
0550名無しさん@そうだ選挙にいこう2016/03/30(水) 15:11:03.85
Excel2013で基本操作を勉強してる段階なのですが、データタブの「グループ化」や
「小計」などでアウトラインを作成すると、アウトラインを作成する以前の「元に戻す」の
メモリーが全て消えてしまうのはどうしてなんでしょうか?

また他にもこんな風に「元に戻す」が消えてしまう操作はあるんでしょうか?
0551名無しさん@そうだ選挙にいこう2016/03/30(水) 15:13:24.34
>>550
>メモリーが全て消えてしまうのはどうしてなんでしょうか?
仕様
>また他にもこんな風に「元に戻す」が消えてしまう操作はあるんでしょうか?
vbaや、大量のセルを操作した場合に消えることがある

こんなこと覚えてもあんまり意味ないぞ
0552名無しさん@そうだ選挙にいこう2016/03/30(水) 15:18:05.66
>>551
「元に戻す」の仕組みみたいなものを自分が何か勘違いしているのかとも思ったので
ただの仕様と分かって安心しました。
ありがとうございました。
0553名無しさん@そうだ選挙にいこう2016/03/30(水) 19:41:04.51
>>549
お前の頓珍漢なコードより元のコード方がマシって話
そんなことも理解できてないのかよ w
0554名無しさん@そうだ選挙にいこう2016/03/30(水) 20:25:07.17
>>547
時刻の比較は要注意です。A列とC1セルの時刻をどのように入力するのかで、
「一致するはずなのに一致しない」事例が発生します。
A列の方は1分毎の時刻なので0:00からオートフィルであらかじめ設定したもの、
C1セルの方はキーボートから時刻を直接入力すると仮定した場合、
01:13、01:38、・・・23:50と、けっこうな頻度で現れます。
これは時刻を表す小数点数の(オートフィルのときに発生する)微妙な誤差のためです。
詳しい情報が必要であればレス願います。
0555名無しさん@そうだ選挙にいこう2016/03/30(水) 21:02:24.34
>>554
まさに今ここですw
同じ11:02と入力されているのに
値が出るのと出ないのが発生して困ってました。
シリアル値見ても同じ数字だし、
何が違うのか見当つかずにいました。
良い方法ありましたらよろしくお願いいたします。
0556名無しさん@そうだ選挙にいこう2016/03/30(水) 21:13:45.84
業務で困ってます
エクセル2010なんですが、とあるワード(例:りんご)をトリガーにして、
隣のセルに連番で数値を入れる関数を作ったのですが、
保存時にこの関数を実数にする方法ってありますか?
count関数を使っているのですが、一度保存した後に、途中の行に「りんご」が割り込まれた場合、
一度割り振ったはずの連番がズレていくので直してほしいと言われました
割り込みは業務都合上結構な頻度で発生する可能性が出てきてしまうので、
どうしてもセルの式で対応する必要があります

どなたか知恵をお貸しください
05575422016/03/30(水) 21:24:12.54
>>545
ありがとうございます。
Range(Columns(3), Columns(5)).〜 が感覚的に分かり易いのでこれを使います。
0558名無しさん@そうだ選挙にいこう2016/03/30(水) 21:30:30.16
>>556
いまいち説明の内容が理解できない
(たとえば「保存時にこの関数を実数にする」ってどういう意味?
数式(Formula)を値(Value)にするってことかな?)ので、
データは本物じゃなくていいから実物と同様のサンプルとかうpしてみせて
0559名無しさん@そうだ選挙にいこう2016/03/30(水) 21:35:17.93
>>556
保存したあとは連番が増えないならその列をすべて指定してコピペの
形式を選択して値の張り付けをしてから保存すれば?

割り込みされた言葉にも続けて連番を振るならこの方法じゃ無理だけど
0560名無しさん@そうだ選挙にいこう2016/03/30(水) 21:35:39.67
1分刻みで連番てわかってるなら、検索しなくても数式で何行目か出せるじゃん
0561名無しさん@そうだ選挙にいこう2016/03/30(水) 21:42:27.62
>>553
突っ込む人は回答で答えて
煽るだけなら無能でもできるから
0562名無しさん@そうだ選挙にいこう2016/03/30(水) 21:43:50.09
>>556
vbaで処理したほうが良さそうな案件。
vbaの可否先に教えてほしい
0563名無しさん@そうだ選挙にいこう2016/03/30(水) 21:46:30.11
>>561
別に無能でもいいんじゃね?
野球とかサッカー出来ないヤツも日本代表ボロカスに批判したりするじゃん
0564名無しさん@そうだ選挙にいこう2016/03/30(水) 21:58:56.28
>>561
> おもいっきり要素数わかってるだろ
の意味もわかってないアホ乙
0565名無しさん@そうだ選挙にいこう2016/03/30(水) 22:01:29.41
556です
今会社にいないので記憶を頼りに再現してみました
http://minus-k.com/nejitsu/loader/up51720.zip
うpろだ上記しか知らなかったのでここで…
今A3が「みかん」になってますけど、既に10行目まで「りんご」が入っていて連番で数値が割り振られているので
割り振られたあとに「みかん」を「りんご」に変更してしまうと、
既に割り振られていた4行目移行の数値が1つずつズレてしまうんですよね

この「みかん」を「りんご」に変更したときに、B3の値に10が自動で入ってくれるのが一番ベストなのですが、
ちょっと難しそうなので、せめて「りんご」に変更したときにB3以外のB列の値が変更されなければ取りあえずは許してもらえるので、
ファイル保存時に数式を実数に変換できる機能でもあれば便利なのになぁと思って質問してしまいました

VBA処理も可と考えております
0566名無しさん@そうだ選挙にいこう2016/03/30(水) 22:08:07.75
>>565
一応確認だけど、
1,2,10,3,4,5,6...
という番号の振り方でいいの?

>>563
そうだね、どうしようもない人はいっぱいいるよね。仕方ないか・・・
0567名無しさん@そうだ選挙にいこう2016/03/30(水) 22:16:02.63
>566
今用意したファイルだと、最終番号が9なので、そのタイミングで「みかん」が「りんご」になった場合は
1,2,10,3,4,5,6,7,8,9でいいのですが、最終番号が20まで割り振られていたときに「りんご」になった場合は
1,2,21,3,4,5,6,7,8....20になってくれるのが一番助かります
ただそれってすごく大変そうな気がしておりますので、せめて
1,2,(空白),3,4,5,6,7,8...20になれば大丈夫と考えております
代案でも構わないのでどうにか教えていただけるとありがたいです
05685582016/03/30(水) 22:45:55.06
>>565
やっぱり理解してなかったみたいだけど、
「実数」っていうのは数学的にいうと
複素数のうちの虚部がゼロの数のことをさす用語であって
あなたが言ってるような使い方は不適切
エクセル使用者の一般的用法としてはそういうのは値(あたい)と言います

閑話休題

>>567
後から追記したものにも順番を反映させるとなると
VBA無しでの実現はほぼ不可能だと思いますよ

VBAでやるなら
Worksheet.Changeイベントっていうのを
トリガーにして実行されるようなコードを組めば
途中に連番入れるような処理もできるっちゃあ出来ます
「A列の入力内容を確認して合致していたら同じ行のB列も確認、
そこが空ならB列に既に入力された最大値+1を書き込む」みたいな処理ですね
ただし、既に「みかん」のところに「りんご」と入れたら連番を追記するだけなら
これで良いとして、
逆に「りんご」の部分を「みかん」(というか「りんご」以外の値)に変えたときには
どうするのかって問題もあります
その場合、連番減らしたりするんですか?
そうなるとこれだけじゃすまなくなりますよ

そういうことはやらないって言う前提ならまぁそれでも良いですけど
こういう質問する人って
そういうイレギュラーについて端から考えてないケースが割りと多いんで
一応聞いておきました
0569名無しさん@そうだ選挙にいこう2016/03/30(水) 22:50:06.09
>>556
関数を作ったってことはVBAなんだよね?
じゃあVBAでやればいいんじゃないの?
0570名無しさん@そうだ選挙にいこう2016/03/30(水) 22:54:57.36
>>567
なんとなく支店の閉店開店っぽい処理のような気がするな。まぁなんでもいいけどな

とりあえず関数だと無理があるんでvbaにした
A列を"りんご"と変更すると最大値+1をB列に入れる
要設定ってとこが二箇所あるんでそこは設定してくれ

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err
'イベントを切る。切らないと無限ループに
Application.EnableEvents = False
'要設定。変更する列を数値で
c = 1
'要設定。判定する文字列
s = "りんご"

If Target.Column = c And Target.Value = s Then
'最終行
maxrow = Cells(Rows.Count, 1).End(xlUp).Row
'最大値用
max_num = 0

For i = 1 To maxrow
If Cells(i, 1).Value = s And Cells(i, 2).Value >= max_num Then
max_num = Cells(i, 2).Value
End If
Next
Cells(Target.Row, 2).Value = max_num + 1
End If

Err:
Application.EnableEvents = True
End Sub
0571名無しさん@そうだ選挙にいこう2016/03/30(水) 22:59:26.56
>>567
もし>>570を使うなら、B列に関数は設定しないほうがいい

それと作ってみたが使い勝手が悪かったもの。一応投稿しておく
保存時に範囲内の数式の結果を値にする。多分>>567の方が実務上使いやすいだろう
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'シートと最大値の設定。
s = "Sheet1"
r_start = 3
r_end = 5
c_start = 2
c_end = 2
Range(Cells(r_start, c_start), Cells(r_end, c_end)).Value = Range(Cells(r_start, c_start), Cells(r_end, c_end)).Value
End Sub
05725542016/03/31(木) 00:35:00.47
>>555
時刻が一致するのに希望通りにならない場合、シリアル値が異なります。
0:00から1分刻みでオートフィルした場合の 1:13 は0.06805555555555560
直接時刻を入力した場合の 1:13 は0.06805555555555550です。
(表示形式を数値とし、小数点以下の表示桁数を17桁とする)
セル位置と時刻の対応が確定している(開始時刻が確定、抜けてる時刻は絶対にない)場合
に限り、>>560さんの書いてるとおり、C1に入力した時刻から時と分を取り出して
何行目にあるのかを計算するのが手っ取り早いかと思います。
A2が0:00から始まるのであれば、行位置は HOUR(C1)*60+MINUTE(C1)+2 で、
A2が11:01から始まるのであれば、行位置は補正して (HOUR(C1)-11)*60+MINUTE(C1)+1 でいいかと。
05735542016/03/31(木) 10:31:31.19
>>555 もうひとつの解決策は、A列にオートフィルではなく直接時刻を入力することです。
ただし、手入力ではなくマクロを利用して。
以下は554を書くために0:00〜23:59の時刻を自動生成したマクロを修正して開始時刻(だけ)を指定できるようにしたものです。
これだと>>549さんの計算式でいけると思います。(試してませんが)
Option Explicit
Dim hh As Integer, mm As Integer, r As Long, flg As Boolean
Sub test()
 r = 2: flg = False
 For hh = 0 To 23
  For mm = 0 To 59
   If (hh = 11) And (mm = 1) Then flg = True '開始時刻でflgセット
   If flg Then
    Cells(r, 2).Value = TimeValue(hh & ":" & mm)
    r = r + 1
   End If
  Next mm
 Next hh
End Sub 'マクロ終わり
TimeValue(hh & ":" & mm) で、時刻を直接入力したのと同じことになります。
ただし、A列の時刻をオートフィルで入れたものと見た目が変わらないので、
セルのロックとシートの保護を組み合わせるなどしてシリアル値を絶対変えないようにする必要あり。
0574名無しさん@そうだ選挙にいこう2016/03/31(木) 10:38:02.95
そんな面倒なことしなくてもテキストで比較すればいいだけなんじゃ…
0575名無しさん@そうだ選挙にいこう2016/03/31(木) 12:31:07.24
そうだね
05765542016/03/31(木) 13:26:27.91
>>574 アドバイスthx
=LOOKUP(TEXT(C1,"hh:mm"),TEXT(A2:A100,"hh:mm"),B2:B100)
こういう形でいけました。 [Shift]+[Ctrl]+[Enter]しなくてもいけるのね。
0577名無しさん@そうだ選挙にいこう2016/03/31(木) 17:57:12.84
A B C D E     F G
0 15 0 5      18 15
0 5 -10 -5 -10
-5 0 -10 -10 -10
0 -10 5 0
10 0 10 10 6 0
10 5 15 10
15 0 20 5 20 0
10 0 20 10 20 0
15 5 15 5 27

こんな感じでデータがあります。
E列に数値が出たら、次のE列の数値が出るまでの
最大数値をF列に、最小数値G列に抽出したいです。
上の例だとE1とE5までの最大値(B1)と最小値(C2,C3)
次にE5からE9までの最大値(C7,C8)と最小値(B5,B7,B8)
です。
0578名無しさん@そうだ選挙にいこう2016/03/31(木) 18:31:32.65
>>577
言ってることが色々と良く分からないんだが、

>E列に数値が出たら、次のE列の数値が出るまでの

これはまずどういう意味?
見たところE1からE9まで全て数値は入ってるんで
「次のE列」とか言われても
何のことやらさっぱり理解できない

そしてその演算結果で F1に18という値が入るようだけど
そんな数値A1からE9の範囲内のどこにも無いんだけど
一体どこから出てきたものなの?
同様に最小値のG1のほうも
どう考えても最小値は15じゃないわけだけど、何でそうなってるの?
0579名無しさん@そうだ選挙にいこう2016/03/31(木) 19:57:40.11
>>577 テストデータはこれでいいのでしょうか?
http://i.imgur.com/dua3DI6.png
そのうえで、どのセルに計算式を設定すればいいのですか?
578さんと同様、「E列に数値が出たら」をはじめ、Excelにはなじまない言葉が多いので
具体的にわかりやすく説明願います。
0580名無しさん@そうだ選挙にいこう2016/03/31(木) 20:39:51.89
F1〜G9に数値入れてみて欲しい
なんか意味がわからないゾ
F1の18とG1の15はどこから出てきたんだ?
0581名無しさん@そうだ選挙にいこう2016/03/31(木) 21:02:51.15
>>568,570,571
ありがとうございます。
さっそく試してみたいと思います。
0582名無しさん@そうだ選挙にいこう2016/04/01(金) 00:26:38.53
教えてください。

フォームに設置したテキストボックスに入力されたデータが
日付になっているかどうかを判定する方法ってありますか?

また、逆に、テキストボックスに日付以外の入力をさせない方法(カレンダーを設置以外)って
あるんでしょうか?
0583名無しさん@そうだ選挙にいこう2016/04/01(金) 01:05:28.26
isdate()
0584名無しさん@そうだ選挙にいこう2016/04/01(金) 05:42:54.33
>>582
テキストボックス限定なの?
俺はよくスピンボタンとラベルの組み合わせで処理するけど、
要するにキーボードから手入力させずに、
スピンボタンで数値を増減させることで入力させてる

まぁ、ラベルの代わりに入力を禁止(LockedプロパティをTrueに)した
テキストボックスでもいいし、リストボックスやコンボボックスでも良いけど

もちろん、日付の範囲のみで値を変動させる必要があるんで、
スピンボタンとラベルは3つ用意して、それぞれで年・月・日を別々に扱う

月は1〜12、日は1〜31、の数値しか取りえないんだから
スピンボタンのMAXとMINをそれに合わせとけばそこから逸脱することは無い
年はどこまでを入力範囲にするかにも因るけど、とりあえずMINを2000、MAXを2050ぐらいにしてる
これはまぁ必要な範囲に応じて変えればいいだけの話

あとはコード中でそれら3つの変動を監視して、たとえば月が1から2に変化したときに
日のMAXを31から28や29(どちらになるかは年から判断する)に変えたり、
無効な日付を生成しないように、そういうこまごましたところも作りこんでる
0585名無しさん@そうだ選挙にいこう2016/04/01(金) 09:16:32.98
>>584
スピンボタンでも調整できるけど手入力もさせろ
0586名無しさん@そうだ選挙にいこう2016/04/01(金) 09:47:09.73
>>585
いや、やりたきゃテキストボックスのLockedをFalseにすりゃいいだけでしょ
その結果不正な値を入れられたら、それをはじくような処理も書けばいい訳で。
俺はそういうのが面倒だから手入力禁止にしてるけど。
0587名無しさん@そうだ選挙にいこう2016/04/01(金) 11:44:25.13
カレンダーコントロールって昔あったのにいつの間にかなくなってて不便
0588名無しさん@そうだ選挙にいこう2016/04/01(金) 13:24:54.53
a1で株価をリアルタイムに取得して1分ごとにa2a3と記録がずれてゆくのは
VBAでしょうか?
0589名無しさん@そうだ選挙にいこう2016/04/01(金) 14:21:06.33
はい
vbaより既存のツール使いこなしたほうがいいよ
どうせ作るものは既存ツールの劣化版になる
0590名無しさん@そうだ選挙にいこう2016/04/01(金) 16:14:11.46
最大列数=16,384列だから、1分に1列だと11日でいっぱいになる
0591名無しさん@そうだ選挙にいこう2016/04/01(金) 16:30:55.85
シート変えるでしょ
0592名無しさん@そうだ選挙にいこう2016/04/01(金) 21:23:57.19
つーか、普通は列移動じゃなくて行移動で記録していくんじゃないかな
それならかなりいけるでしょ
0593名無しさん@そうだ選挙にいこう2016/04/01(金) 22:02:00.76
おまえらwebクエリってしらんの
0594名無しさん@そうだ選挙にいこう2016/04/01(金) 23:14:45.26
数値を取り込むだけの作業にwebクエリは重すぎる
0595名無しさん@そうだ選挙にいこう2016/04/01(金) 23:35:32.27
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

1,3,4,5,6
1,2,4,5
1,2,5

以上ののセルがあります。
これらを比較して半分以上使用されている数値を返しなさい。
1,2,4,5
できるのだろうか?
0596名無しさん@そうだ選挙にいこう2016/04/01(金) 23:43:26.71
親切な方、教えてください!
できないと帰宅できません。

エクセル2010のシートで、今後入力を続けるうちに、縦にも横にも伸びていく表があります。
これの印刷設定をする方法がわかりません。

・1行目は常に印刷したくない
・A列からC列と、2行目から5行目は、何ページ目だろうと常に印刷したい。

 ↑
どこでどう設定すればいいのでしょうか?
0597名無しさん@そうだ選挙にいこう2016/04/01(金) 23:47:38.80
webクエリって数値を取り込むだけの機能なんだけど
0598名無しさん@そうだ選挙にいこう2016/04/01(金) 23:47:47.47
>>596
1 印刷するときだけ1行目を非表示設定にすることを前提に
2 リボンのページレイアウト→印刷タイトル→シートのタブ
  タイトル行の欄に 2:5
  タイトル列の欄に A:C でいいのでは?
0599名無しさん@そうだ選挙にいこう2016/04/01(金) 23:56:59.88
>>595
言ってる意味がわからん。ナんに対して半分?
0600名無しさん@そうだ選挙にいこう2016/04/02(土) 00:01:05.92
>>599 自分も理解に苦しんだ。使われているセルは12個。半分以上使われている数値は存在しない。
596さんへの回答を書いてるうちに「各行について」ってことではなかろうか?とひらめいた。
例題の3行のうち、1、2、4、5は半分以上(2行以上)に存在する。
たぶん、実際のデータでは数十、数百あるので3行に縮めたのでわかりにくくなったのでは?
そういうことではありませんか?>>595
0601名無しさん@そうだ選挙にいこう2016/04/02(土) 00:18:27.67
>>600
ありがとうエスパーさん

>>595
D1=IF(COUNTIF($A$1:$BB$3,COLUMN())>3/2,COLUMN(),"")
横にオートフィル
範囲はテキトーなのでテキトーに改変してくれ
0602名無しさん@そうだ選挙にいこう2016/04/02(土) 01:04:36.76
>>600
まさにそのとおりです。
説明不足で申し訳ありません。
半分と書いたのは最大で100行程度のものがあるからです。
0603名無しさん@そうだ選挙にいこう2016/04/02(土) 04:48:26.98
Dim a As String
a = "あいうえおかきくけこ"

この文字列の中に、指定した文字列が含まれてるかどうかを調べるVBAコードを
作りたいのですが、どうすればいいでしょうか?


chk(けくこ) → FALSE
chk(えおか) → TRUE

こんな感じです。
0604名無しさん@そうだ選挙にいこう2016/04/02(土) 07:58:25.20
>>603
その仕様通りの関数を作るには、たぶん a がグローバル変数じゃないと無理だと思うけど

Function CHK(s1 As String) As Boolean
  CHK = Instr(a , s1) > 0
End Function
0605名無しさん@そうだ選挙にいこう2016/04/02(土) 16:34:01.72
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
バーコードを使用したくこちらのページにある
https://www.microsoft.com/ja-jp/download/details.aspx?id=8913で
Microsoft バーコードコントロール9.0をインストールしたのですが
コントロールの選択でMicrosoft バーコードコントロール9.0が表示されません
やはりAccessをダウンロードしないと使用できないのでしょうか?
0606名無しさん@そうだ選挙にいこう2016/04/02(土) 16:44:28.52
>>605
Microsoft バーコード コントロール 9.0 は、Microsoft Office Access のフォームやレポートに挿入できるバーコード シンボルを表示する ActiveX コントロールです。
って書いてありますよ。さらに、システム要件にはAccessだけしか載っていません。
0607名無しさん@そうだ選挙にいこう2016/04/02(土) 16:47:34.77
>>605
システム要件を読め
0608名無しさん@そうだ選挙にいこう2016/04/02(土) 17:04:39.64
>>605
というかリンク先のファイルは、リファレンス(ヘルプファイル)のみじゃないの?
ActiveX コントロールは含まれていないように見えるけど
0609名無しさん@そうだ選挙にいこう2016/04/02(土) 17:36:30.29
システム要件をよく読んでいなくすみませんでした
色々なサイトではコントロールの選択でバーコードコントロールを選択しと
いきなり書いてあることが多かったので勝手に行けるものかと思ってしまってました
0610名無しさん@そうだ選挙にいこう2016/04/02(土) 22:19:49.04
a b c d
5   ☆
9   9
4 4
3
2 3 ☆

a列に数字が入っています。
c列に条件達成で☆のサインが出るようになっています。
☆サインが出てから3つ目のb列にa列の値を抽出するようにしたいです。
上の例だとc1に☆サインが出て、b3にa3の値(4)が出るようにしたいです。

それと☆サインが出たら次の☆のサインが出るまでの間の最大値
上の例だとa2の値(9)をd2に抽出したいです。

よろしくお願いします。
0611名無しさん@そうだ選挙にいこう2016/04/02(土) 22:24:39.24
a b c d
5   ☆
9     9
4 4
3
2   ☆

ずれちゃったので訂正です。
9は最大値でd3に抽出という意味です。
0612名無しさん@そうだ選挙にいこう2016/04/02(土) 23:22:09.93
>>610
その仕様のとおりにVBAでコードを書けばいいだけですよ
0613名無しさん@そうだ選挙にいこう2016/04/02(土) 23:25:52.25
>>612
無理言ってすみません。
よろしくお願いします。
0614名無しさん@そうだ選挙にいこう2016/04/03(日) 04:05:14.37
人A 3/1 夜 6
人A 3/1 昼 2
人C 3/1 夜 10
人A 3/3 夜 4
↑
こんな感じで、30人の、昼寝・夜寝・移動電車内寝それぞれの睡眠時間を機械的に記録したシートがあります。
常に増え続けていく表です。
これを、任意のタイミングで、人ごと、寝種ごとで合計時間をとって、別シートに表示させたいです。
しかも、ボタンひとつクリックするだけで自動で別シートに結果が出るようにしたいのですが、VBAで、この集計を
してシートに結果を並べるということは、可能なんでしょうか?
人A 昼 15   ←こういう感じの集計が欲しいのですが。
人A 夜 29
人B 車 5     
人C 夜 10
今まではアクセスのクロス集計クエリを表示させていたのですが、アクセス環境がなく、エクセルのみで
実現させたいです。   
0615名無しさん@そうだ選挙にいこう2016/04/03(日) 07:29:41.99
>>614
VBAでできるけどピボットでやればいいような
0616名無しさん@そうだ選挙にいこう2016/04/03(日) 10:49:36.31
>>610は、ひょっとして>>577?
〜が出てから とか 最大値、最小値 など似てるところが多い。

「☆が出る」とは、☆が表示されるセルに計算式?それともマクロでセルに☆を設定?
「☆サインが出たら次の☆のサインが出るまでの間の」は、
「☆が出た」を処理のきっかけとするのではなく、☆の表示の原因となるシート上の
他のセルへの操作(値入力など)をきっかけとしてマクロが動くと考えるべき。
テスト用の架空データでいいから当該シートをupするのが解決への近道と思う。
0617名無しさん@そうだ選挙にいこう2016/04/03(日) 10:56:11.78
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セル参照の一部を自動で切りたい(参照していた値を固定したい)のですが、どうすれば良いでしょうか?
下記のA3の式について、B1が1以上になった時、A3の式をセル参照から=A1+20としたいのです。

  A  B
1 10  0
2 20
3 =A1+A2

A2の値は仮に20としていますが、この値は頻繁に変わります。
A3の合計について
�@B1が1以下であれば、A1とA2をそのまま足す(A2がどんなに変化しても)
�AB1が1以上になった時、その時のA2の値と、A1を足した合計で固定する
�BA2の値は、B1が1以上になった後も変化を続けるが、A3の式はその影響を受けない

宜しくお願いします。
0618名無しさん@そうだ選挙にいこう2016/04/03(日) 11:09:57.85
エクセルで区切り文字をスペースにして区切りたいんですが
一部のスペースは区切らないことって可能ですか
0619名無しさん@そうだ選挙にいこう2016/04/03(日) 11:19:44.24
>>617 計算式に手を加えることになるから、手作業かVBAのどちらかでしょう
0620名無しさん@そうだ選挙にいこう2016/04/03(日) 12:06:23.56
>>618
無理
0621名無しさん@そうだ選挙にいこう2016/04/03(日) 13:54:41.33
>>620
可能ではある
ただ、VBA必須
0622名無しさん@そうだ選挙にいこう2016/04/03(日) 14:07:00.53
""でくくったらどうかな 試してないけど
0623名無しさん@そうだ選挙にいこう2016/04/03(日) 14:17:19.73
>>610
B3=if(a1="hosi",a3,"")

作業列でいいんじゃない
e列、上に☆が1あれば表示、2こあれば非表示
あとはmax()

>>614
可能
俺なら

まずリストを作る。
A列を並べ替えて重複を削除、
人A夜
人A昼
・・・というリストを作成

作業列をつくって以下の様な形を作成
人A 3/1 夜 6 人A夜
人A 3/1 昼 2 人A昼

あとはindexmacthで引っ張ってきて値にして完成
0624名無しさん@そうだ選挙にいこう2016/04/03(日) 14:21:20.23
>>617
=A1+if(b1>=1,20,A2)
また、20が頻繁に変わるならC1を山椒するようにすえればよい
=A1+if(b1>=1,c1,A2)

>>618
一部ってのがよくわからん。
何をやってるかわからないけど、量が少ないなら一旦区切ってから結合したほうが早いと思う
0625名無しさん@そうだ選挙にいこう2016/04/03(日) 20:21:09.87
2010を使っています。

VBAで、新規に作ったシートに、テキストファイルからコピペして6桁の数字を
貼り付けたところ、日付だと解釈されて、3268年12月19日とかになってしまいます。

これを回避するにはどうすればいいのでしょうか?
VBAで、「これは数字なんだぞ」とセルに言い聞かせながら貼り付ける方法ってありますか?
0626名無しさん@そうだ選挙にいこう2016/04/03(日) 20:37:28.57
>>625 VBAで書き込むセルの書式が既に日付になってたのではありませんか?
0627名無しさん@そうだ選挙にいこう2016/04/03(日) 20:45:09.97
>>625
値で貼り付けをマクロの記録
もしくは単純に書式設定もマクロで変えてしまえば?
06286252016/04/03(日) 21:07:38.12
ありがとうございました。
やってみます。
0629名無しさん@そうだ選挙にいこう2016/04/03(日) 22:14:00.54
A列に正数と負数がランダムに並んでいるのですが、
正負の切り替えを数えて数にすることは可能ですか?

6
-50
-2
-5
5

と並んでいたら上から見てプラスとマイナスの切り替えが2回なので2と出したいです
0630名無しさん@そうだ選挙にいこう2016/04/03(日) 22:26:37.43
>>629
VBAでループ回して正負を判断してカウントするだけ簡単
0631名無しさん@そうだ選挙にいこう2016/04/03(日) 22:32:23.75
>>629
B1=(A1>=0)*(A2<0)+(A1<0)*(A2>=0)
下にオートフィルで
c1=sum(b:b)
0は+に含めてる

これ微妙に面倒だな
0632名無しさん@そうだ選挙にいこう2016/04/03(日) 22:34:59.82
>>630
>>631
ありがとうございます
助かりました
0633名無しさん@そうだ選挙にいこう2016/04/03(日) 22:36:43.21
>>629
こゆう数式でもできるとおもう

数値がある範囲が A1:A5なら
=SUMPRODUCT((A1:A4*A2:A5<0)*1)
0634名無しさん@そうだ選挙にいこう2016/04/03(日) 22:51:01.13
>>633
これは式をスッキリさせられそうですね
ありがとうございます
0635名無しさん@そうだ選挙にいこう2016/04/03(日) 22:54:55.00
>>633
すげぇw
よくこんなの思いつくば
0636名無しさん@そうだ選挙にいこう2016/04/03(日) 23:38:35.06
>>633
なるほど
0637名無しさん@そうだ選挙にいこう2016/04/04(月) 00:07:06.56
>>633
君天才らしいな
0638名無しさん@そうだ選挙にいこう2016/04/04(月) 00:35:36.64
「/-」という文字の後を削除したいのですがどうするといいでしょうか?
Excelは2010を使っています。
0639名無しさん@そうだ選挙にいこう2016/04/04(月) 01:33:11.95
>>638
=LEFT(A1,FIND("/-",A1)+1)
0640名無しさん@そうだ選挙にいこう2016/04/04(月) 07:58:09.52
Excelって正規表現使えないっけ?
0641名無しさん@そうだ選挙にいこう2016/04/04(月) 09:21:18.73
今んとこアドインとかVBAとか参照設定とかの困難を乗り越えないと使えない

2016では新しい関数をどんどん追加する方針に変わったみたいだから、正規表現の使えるFINDEXPとか追加してくれ
0642名無しさん@そうだ選挙にいこう2016/04/04(月) 17:43:04.98
Excel初心者ですが質問させてくださいm(_ _)m
ドロップダウンリストによって選択されたA1の記号が△だった場合、A2の数値をA3に加算する関数を教えて下さい。
0643名無しさん@そうだ選挙にいこう2016/04/04(月) 17:47:16.89
>>642
a4=if(a1="△",a2+a3,"△以外")
0644名無しさん@そうだ選挙にいこう2016/04/04(月) 18:45:26.13
条件付き書式について

A B C
x あ 11
y い 22
x う 30

Aの値にxという記号が入っている場合はその行(AからC)に色を付ける(セルを塗りつぶす)

これはどうやればいいのでしょうか?
0645名無しさん@そうだ選挙にいこう2016/04/04(月) 18:51:18.82
>>644
a:c選択
ルールの監理
新規ルール
=$A1="x"
0646名無しさん@そうだ選挙にいこう2016/04/04(月) 20:09:20.89
>>643
有難うございましたm(_ _)m
0647名無しさん@そうだ選挙にいこう2016/04/04(月) 21:29:11.14
>>639
お返事ありがとうございます。
できました。
0648名無しさん@そうだ選挙にいこう2016/04/05(火) 08:28:50.55
>>645
教えていただいた方法で、いったんはうまくいかなかったものの、なぜか作り直したらできました。
ありがとうございました。
0649名無しさん@そうだ選挙にいこう2016/04/05(火) 12:41:04.29
os:window10
EXEL:2010

画像のようなシフト表を作っています。
数字が勤務時間で可能日数の所に日数を表示させています。
1行だけ(9-14が入っている行)なら COUNT(E14:CS14)/2 で可能日数の所に表示出来たのですが、2行目・3行目を作って言った時に上手くつくれませ。
同日に2回のシフトの時は1日カウントさせたいです。宜しくお願いします。

http://i.imgur.com/hjKOrXI.jpg
0650名無しさん@そうだ選挙にいこう2016/04/05(火) 13:25:02.03
>>649
1日 2日 3日
9-12 9-12 9-12
9-12

なら3と表示したいってこと?
縦に合計取って右下で合計出すのが一番楽だと思う
1のとこの計算式は
=if(count(e14:e15)>0,1,0)
みたいな感じで

1日 2日 3日
9-12 9-12 9-12
9-12
1   1   1

もし違うなら全体をアップしてくれたほうが早く解決すると思う
0651名無しさん@そうだ選挙にいこう2016/04/05(火) 20:23:31.84
あるセルの上にあるオブジェクトの名前で判断して番号を振りたいのですが、vba使わずオブジェクトの名前を取得できる関数はありますか??
0652名無しさん@そうだ選挙にいこう2016/04/05(火) 22:18:00.70
無理な気がするなー
0653名無しさん@そうだ選挙にいこう2016/04/05(火) 22:35:34.57
>>651
関数の有無ぐらいならヘルプ読めよと思う
0654名無しさん@そうだ選挙にいこう2016/04/05(火) 22:35:40.84
>>652
ありがとうございます
0655名無しさん@そうだ選挙にいこう2016/04/05(火) 22:36:46.23
>>649
VBAで簡単にできると思う
ブックをアップしてくれたらやるよ?
06566492016/04/06(水) 08:47:42.47
返信が遅れましたごめんなさい。

>>650
返信ありがとうございます。
書いてもらった状態でも3日出勤とカウントして労働時間をだしたいんです。

>>655
返信ありがとうございます。
VBAは全然わからないので、
どうにか助けて頂けるなら本当にありがたいです。
どこに上げればいいでしょうか。
0657名無しさん@そうだ選挙にいこう2016/04/06(水) 10:13:15.40
dotupで検索すればアップローダが出てくる
もちろん、秘密にセにゃならん情報は全部消してくれよ
0658名無しさん@そうだ選挙にいこう2016/04/06(水) 13:15:34.71
>>656
もしかして、「2行目3行目を集計する必要自体がない」ってことはないの?
すくなくとも、
「同日・同一人に対して複数行にわたって勤務シフトが存在している」
という場合でも、「勤務シフトの記録は必ず1行目から行う」
というルールさえあれば、2・3行目を集計に加える必要はなくなるよね?
06596492016/04/06(水) 22:33:12.89
返信が遅れましたごめんなさい。

>>657
dotupって所見てみます!
>>658
毎月の労働時間・日数上限が決まっているので全ての行の集計と日数必要なんです・・・・・
06606582016/04/06(水) 23:17:16.08
>>659
「すべての行の集計」は「労働時間の算出」のためには必要だけど、
>>649で最初に聞いてた「日数の算出」には1行目以外関係ないよね?
ってことをいってるんだが、俺なんか間違ってる?
0661名無しさん@そうだ選挙にいこう2016/04/07(木) 00:30:45.32
>>656
VBAがまったくわからないのに、どこの誰かわからない奴がブックに埋め込んだVBA動かして運用するの?
すごいな…
0662名無しさん@そうだ選挙にいこう2016/04/07(木) 02:56:41.67
2010のVBAで困っています。教えてください。

Dim ReadBook As Workbook, fn As String, ReadSheet As Worksheet
fn = 他の関数からパスとファイル名を取得
'開く
Set ReadBook = Workbooks.Open(fn)
    ↑
これを実行すると、相手のファイルに読み取りパスワードがかけられていてユーザーがそのパスワードの
入力に失敗した場合、エラーが出てしまいます。
パスワード入力をミスした場合「ダメです」とメッセージを出してそのままexit subにしてしまうには、どう
書けばいいのでしょうか?
このプロシージャには、まだたくさん命令が入っているので、on error gotoではなく、この箇所専門の
「エラー取得→プロシージャ終り」を書きたいのです。
0663名無しさん@そうだ選挙にいこう2016/04/07(木) 03:29:26.90
>>662
こんな感じ?

Sub macro()
On Error GoTo ErrorHandler
  Dim ReadBook As Workbook, fn As String, ReadSheet As Worksheet
  fn = "C:\test.xlsx"

On Error Resume Next      'ここだけ実行時エラーを無視して続行
  '開く
  Set ReadBook = Workbooks.Open(fn)
  If Err.Number <> 0 Then
    MsgBox Err.Description: Exit Sub
  End If
On Error GoTo ErrorHandler   '通常のエラー処理ルーチンに戻す

  Exit Sub
ErrorHandler:
  '通常のエラー処理
End Sub
0664名無しさん@そうだ選挙にいこう2016/04/07(木) 04:10:42.65
>>663
本当にどうもありがとうございました!!
0665名無しさん@そうだ選挙にいこう2016/04/07(木) 07:34:04.37
> >>首長(くびチョウ)[9]……市長(シチョウ)、首相(シュショウ)、主張(シュチョウ)などと識別。

これを知らない人がくびちょうをくみちょう(組長)と空耳してるのが結構いる
なに組なんだろ
0666名無しさん@そうだ選挙にいこう2016/04/07(木) 07:46:26.95
>>664
もう解決しちゃってるようだけど、
ワークブックをセットするところだけを別のプロシージャにしてしまうっていう手もある。

On Errorにもスコープ(適用範囲)があって、
いったん設定したエラー処理は呼び出した先でも適用されるけど、
呼び出した先で設定したOn Error は元のプロシージャに戻るときには破棄されるから
場合によってはこっちのほうが使いやすいかもよ


Sub macro()
On Error GoTo ErrorHandler
  Dim ReadBook As Workbook, fn As String, ReadSheet As Worksheet
  fn = "C:\test.xlsx"

  '開く
  Set ReadBook = OpenWorkbook(fn)
  If Err.Number <> 0 Then
    MsgBox Err.Description: Exit Sub
  End If

  Exit Sub
ErrorHandler:
  '通常のエラー処理
End Sub

Function OpenWorkbook(fn As String) As Workbook
On Error Resume Next      'このFunction内では実行時エラーを無視して続行
  Set OpenWorkbook = Workbooks.Open(fn)
'このFunctionを抜けると、On Error Resume Next はキャンセルされ、
’元のエラー処理 (この場合、On Error GoTo ErrorHandler )が再び適用される
End Function
0667名無しさん@そうだ選挙にいこう2016/04/07(木) 08:07:36.98
エクセル2010で名簿を管理しています。
現在は同じ行に本人の名前、生年月日、連絡先などの他、家族の名前や生年月日も入っています。
別シートに家族も含めた全員の名前と生年月日を書き出したいのですが、どうすれば良いでしょうか。

  名前  生年月日  住所    電話番号  家族1 生年月日  家族2 生年月日
〇山A男  S50.1.1  ××××  11-1111   B子  S55.1.1    C郎  H10.1.1
△川1太  S40.1.1  □□□□  22-2222   2子  S45.1.1    3美  H1.1.1
これを

 名前   生年月日
〇山A男  S50.1.1
〇山B子  S55.1.1  
〇山C郎  H10.1.1
△川1太  S40.1.1 
△川2子  S45.1.1
△川3美  H1.1.1
としたいのです。よろしくお願いします。
0668名無しさん@そうだ選挙にいこう2016/04/07(木) 08:39:35.44
>>667
VBAでそのとおりのコードを書けばできる
簡単だよー
0669名無しさん@そうだ選挙にいこう2016/04/07(木) 08:50:55.76
>>667
vlookup()でいいんじゃない?vlookupがわからないなら検索して

>>668
無能さん自己紹介チーっす
0670名無しさん@そうだ選挙にいこう2016/04/07(木) 11:26:42.75
>>667
上はレポート
下はデータ

なんでどいつもこいつもレポートからデータを起こそうとするかね?
データがあって、それをレポートにするんだ
作り直せ
0671名無しさん@そうだ選挙にいこう2016/04/07(木) 12:57:59.38
よろしくお願いします。

A子  パン  3/30
B子  ご飯  3/30
C子  麺類  3/29
D子  麺類  3/28
A子  ご飯  3/31
D子  麺類  3/28
…
Z子  ご飯  3/29

こういう表があるとして、○子-.食品の組み合わせとして重複するものを、古い日付の順に削除したいです。
つまり、A子-ご飯の組み合わせは一行だけにしたいのですが、VBAでは、どういうアルゴリズムで処理すべ
きなのでしょうか?
人順、食品順、日付降順に並べ替えをしてから、上から順に見ていって、前の行と人も食品も同じならその
行を削除する、という方法でいいのでしょうか?
0672名無しさん@そうだ選挙にいこう2016/04/07(木) 13:11:19.87
>>671
この表がA列〜C列にあるとして、作業列に=A1&B1と入れてC列でソートしてから重複の削除をすればVBAは必要ないけど、
VBAでやりたいなら同じように連結済みのデータを配列に入れて重複チェックするのが一番シンプルだと思う

どこがわからない?
0673名無しさん@そうだ選挙にいこう2016/04/07(木) 14:03:21.14
重複削除機能知ってるのに作業列作るセンスがわからん
0674名無しさん@そうだ選挙にいこう2016/04/07(木) 14:43:52.80
>>671
重複削除だけならEXCEL機能をVBAでやるだけ

1)日付を降順に ソート(重複削除だけなら 人、食品でソートしなくても良い)
2)人、食品 で重複削除(RemoveDuplicatesメソッド)
でいいと思うぞ

RemoveDuplicatesメソッドが使えない環境なら >>671 だけど
0675名無しさん@そうだ選挙にいこう2016/04/07(木) 16:35:14.61
>>672>>674
ありがとうございました。
助かりました。やってみます。
0676名無しさん@そうだ選挙にいこう2016/04/07(木) 19:23:12.27
このスレのURL、下五桁が2のゾロ目だ
0677名無しさん@そうだ選挙にいこう2016/04/07(木) 20:57:56.63
>>669
俺は無能なのは間違いないけど、どう考えてもVBAの案件だと思うが…
0678名無しさん@そうだ選挙にいこう2016/04/07(木) 21:10:21.82
>>677
コードを書けとはいわんが、スレ誘導ぐらいあってもいいと思いました
0679名無しさん@そうだ選挙にいこう2016/04/08(金) 05:55:55.60
670
>上はレポート
>下はデータ

天然?w
0680名無しさん@そうだ選挙にいこう2016/04/08(金) 07:05:16.77
>>667
そもそもどこまでが苗字かわかんないだろ
0681名無しさん@そうだ選挙にいこう2016/04/08(金) 07:23:10.44
>>680
それを判断する機能までご所望なんだろ
御神楽太郎みたいな名前があった場合とか俺には機械的に判断させること無理だが
06826672016/04/08(金) 07:56:48.55
皆さんありがとうございます。
vlookup関数を調べてみて、名前から生年月日を検索して表示できる事は理解できたのですが、
名前の入力自体は自分で行わなければならないということでしょうか。

今までエクセルは出来上がった雛型に文字を入力する程度のことしかやっておらず
関数すらほとんど使ったことがない状態なのでVBAを教えていただいても理解できるかどうか・・・

初心者の手におえない状況であれば一から作り直すことも覚悟しています。
その場合、世帯主の名前と住所連絡先、全員の名前と生年月日、全項目の3つの表を一度の入力で作れるようにしたいです。
そちらの方が簡単ですか?
0683名無しさん@そうだ選挙にいこう2016/04/08(金) 08:05:18.10
>>682
家族ID 名前   生年月日 苗字 住所 電話
1  〇山A男  S50.1.1  〇山
1  〇山B子  S55.1.1  〇山
1  〇山C郎  H10.1.1 〇山
2  △川1太  S40.1.1 △川
2  △川2子  S45.1.1 △川
2  △川3美  H1.1.1  △川

データはこういう形式がいいとだろう。ここからならなんでも作れると思う
ほんとは正規化したほうがいいけど、わからんだろうから言わない
0684名無しさん@そうだ選挙にいこう2016/04/08(金) 11:56:15.90
=IF(ROW()<12+G$10,"",IF(ROW()=12+G$12,AVERAGE(F14,OFFSET(F13,1-G$10,0)),G13+2/(G$10+1)*(F14-F13
)))

見出し部分が12行
G10に入力できるようになっています。

13行から10000行以上株価が時間ごとに取得されてゆきます。
上の式だと13行から10000行に計算されていきますが、
これを逆にしたいのです。
(10000行から13行へ)

式をどう変えれば良いか教えてください。
0685名無しさん@そうだ選挙にいこう2016/04/08(金) 11:58:44.31
すみませんExcelとは直接関係ないとは思いつつも質問します!

WORKDAY関数を、祝日も除くように設定して使っているんですが
このような、いわゆる営業日的にした時に
一ヵ月内で23日分出てくることってありますでしょうか?

今年の6月は営業日で22日あります
でも6月は30日までしかありません
31日まである月を考えたらあと1日は増えるかなとも思ったのですが
今年から6月以外にはどこかに祝日があります
でも祝日が土曜日と重なった場合には営業日的には無関係です
(日曜と重なると月曜日が振り替え休日になる・・・と思います)

カレンダーは毎年少しずつずれていくと思いますが
営業日が23日になる月って出てきますでしょうか?
50年後とか100年後みたいな話なら無視してもいいかもしれませんが・・・
0686名無しさん@そうだ選挙にいこう2016/04/08(金) 12:21:32.47
>>685
8月って31日まであって祝日存在しないけど
大概の会社はお盆休みはあるがその辺のローカル定休日がわからないと答えようがない
0687名無しさん@そうだ選挙にいこう2016/04/08(金) 12:33:18.74
ナンパ成功率100%ミニセグウェイ
https://www.youtube.com/watch?v=BLj2H95-ITA0
0688名無しさん@そうだ選挙にいこう2016/04/08(金) 12:49:21.13
>>682
データが何件あるか知らんけど、 >一から作り直す ぐらいなら
そのシートをコピーして名前と生年月日の間に列挿入「名」の列としておいて
家族ごとの行の間に家族人数分の行挿入  (例でいえば○山と△川の間に二行)
その一行目に家族1と生年月日のセルを直接ドラッグ、二行目に家族2と生年月日・・ と続ける

名前と生年月日が並んでるだけにその方が入力ミスにも繋がらなくていいし、
その作業で苦しむことで「どうにか楽したい」という発想からマクロやVBAだの関数だの覚えよう
って気に成るってもの
「姓名」の列が必要なら筆頭者の姓を家族分フィルしてから一列追加して「=姓&名」とすればいいし

いちおう階段は一段ずつ登ることを基本にしておかないと、安直に近道やら抜け道行くことがデフォ
とか思ってると、いつか踏み外して転げ落ちる 自分が苦しむことになるだけ

元データによりけりでやむを得ない構造なのかも知らんが、これは「名簿を管理しています」てよりは
「名簿に管理されてます」ってレベル  はやく管理する側に立てるようがんがれ
0689名無しさん@そうだ選挙にいこう2016/04/08(金) 13:17:26.96
>>686
いえうちの会社は常に暦通りなので
メイデーもなければいわゆる三が日すらもありません
当然お盆休みもありません
(その付近に社員がまとめて有給を取るのは一応自由ですが)

あと8月は今年から8/11が「山の日」という祝日になりますよ
0690名無しさん@そうだ選挙にいこう2016/04/08(金) 18:03:19.19
>>689
だとすると、再来年の8月が該当
8月11日が土曜日だ
0691名無しさん@そうだ選挙にいこう2016/04/08(金) 18:52:33.03
それ以前に来年の12月も、日王誕生日が土曜日で該当だな
0692名無しさん@そうだ選挙にいこう2016/04/08(金) 19:20:28.98
チョン乙

在日? 朝鮮本国の人?
大体 日王なんてのがいると信じてるのは チョン以外にいないとおもうな
0693名無しさん@そうだ選挙にいこう2016/04/09(土) 03:28:23.78
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列に数値(小数点以下1桁) B1に2〜12のどれか C1に目標値(小数点以下1桁) D1に基準値

A列の数値それぞれにB1か0をかけた(A列の数値でどれか1つだけ0〜B1をかけれる)
合計が(C1+D1)に等しくなるか、(C1+D1)+5以内に収まる組み合わせを全て、
収まらない場合(C1+D1)±5に一番近い組み合わせを1つ、導き出し使わないA列の数値を表示させたいです。

例:
A1〜A10に数値がありB1=5、C1、D1
A3とA7以外はB1をかけA3は0、A7*3の合計で(C1+D1)と等しくなる
A2とA8以外はB1をかけA2は0、A8*2の合計で(C1+D1)+1で等しくなる
A1とA3とA10以外はB1をかけA1,A3は0、A10*1の合計で(C1+D1)+3で等しくなる場合

0 A3*B1 A7*2
1 A2*B1 A8*3
3 A1*B1 A3*B1 A10*4

上のように+5以内に収まらず(C1+D1)-8が一番近い場合

-8 A1*B1 A5*1  のように1つだけ表示

前にも質問したのですが、今一度お願いします。
0694名無しさん@そうだ選挙にいこう2016/04/09(土) 07:55:33.06
excel関数について教えてください。

SUBTOTALが使われているのを以前していた仕事で見たことが何度かありますが、
そもそもSUBTOTAL関数は有用で使用頻度が高いのでしょうか?

また、対応する集計方法は覚えているものなのですか?
0695名無しさん@そうだ選挙にいこう2016/04/09(土) 08:17:36.33
>>694
時と場合と人による
そんなアンケートとってなんの意味があるの???
0696名無しさん@そうだ選挙にいこう2016/04/09(土) 08:40:11.68
>>693
途中に出てくる*3とか*2とかはどっから出てきた数?
質問文中に説明のない要素が出てくると、
聞いてるほうは意味が分からなくて答えられないよ

つーか、前の質問って>>482だよね?
あんときも中途半端な説明でしかもあんた途中で消えちゃったじゃん
聞くだけ聞いといてなんも言わずに消えるのって
回答者に対して失礼だと思うよ
仮に意に添わぬ答えしか返ってこなかったとしても、
黙って消えるんじゃなくて一言ぐらい断って
一旦質問を閉めとくのが質問者の礼儀ってもんじゃないの?
0697名無しさん@そうだ選挙にいこう2016/04/09(土) 09:10:35.58
>>696
すみません。前の質問の後書き込みが出来なくなり来れませんでした

A列、C1,D1の数値を入れて例を出すと計算が大変なので数値を入れずに
(A列の数値でどれか1つだけ0〜B1をかけれる)、
この条件を入れた例にしたかったので仮に*3や*2を使いました。
B1=5のとき(C1+D1)と比較する合計にA7*3を使った場合、
5-3になり結果表示に合計に使わないA7*2
06986972016/04/09(土) 09:14:28.03
途中で送信してしまいました。

というような感じで*2*3*4を使いました
0699名無しさん@そうだ選挙にいこう2016/04/09(土) 09:47:11.10
>>694
目的によっては便利というだけ
9とか3は多用するけど、使ったことない数字もあるしな
0700名無しさん@そうだ選挙にいこう2016/04/09(土) 09:50:41.77
>>693
まったく質問の意味がわかりません
0701名無しさん@そうだ選挙にいこう2016/04/09(土) 09:58:30.97
祝日が土曜と重なるだけじゃダメで1日が月〜水の範囲にないと平日が23日間にならない
この範囲で土曜と重なれるのは4、5、6、11、12、13、18、19、20、25、26、27日だけ
つまり23日の天皇誕生日は該当しない

祝日法が今のままと仮定して、この先2032年までの間に平日が23日になるのはたったこれだけ
2018/8
2021/3
2029/8
2032/3
0702名無しさん@そうだ選挙にいこう2016/04/09(土) 10:00:10.31
>>701
たったそれだけなんですね
ありがとうございます!!
0703名無しさん@そうだ選挙にいこう2016/04/09(土) 10:00:46.53
>>693
まじで全然わからん。
少しでも回答できてる人達を尊敬するわ。
0704名無しさん@そうだ選挙にいこう2016/04/09(土) 10:06:44.79
>>693
作業列使って単純にしてみたら?
例えば、E1にC$1+D$1を代入、F列にA1*B$1を代入、G列にA1*0を代入
E1とF列とG列だけでシンプルな式にできない?
質問がよくわからないから外してると思うけど…
07056942016/04/09(土) 10:11:27.05
転職先でexcelバリバリに使うと心配だから質問させてもらいました。
使うときが来たら調べるようにします。

でも集計やデータ分析の事務職で使えないと困る関数というものが分かればいいと思っています。
ピボットの他、ifとかvlookupよりマイナーな関数で。
0706名無しさん@そうだ選挙にいこう2016/04/09(土) 10:15:55.57
>>705
仕事の内容は職場ごとに全然違う
使用する関数なんてそれこそ千差万別だから、必要になってから調べれば十分というか
あらかじめ何が必要か予測して覚えるのは不可能
0707名無しさん@そうだ選挙にいこう2016/04/09(土) 10:58:06.25
IF絡みでCOUNTIF辺りは覚えておくと便利かも
いくつあるかという本来用途でも使うけどワイルドカートで含まれるかどうかの判定にも多用するし
0708名無しさん@そうだ選挙にいこう2016/04/09(土) 11:05:10.37
>>705
関数のリファレンスマニュアル読んで必要と思うものを暗記したらいいよ
ヒマなら何度も繰り返し読んでるだけでなんとなく覚えてくる
0709名無しさん@そうだ選挙にいこう2016/04/09(土) 11:12:28.11
>>708
あのマニュアル読むだけじゃ使い道がわからないけど実際には多用しまくる関数がいかに多いことかw

SUMPRODUCTとか、掛け算した結果を足すとかなんだこれとか思ってたが
最近は使わない日がないほど多用している
職場のExcelが2007で文字列数字の計算に便利なのが大きいが
0710名無しさん@そうだ選挙にいこう2016/04/09(土) 11:22:58.18
SUMPROは重いよ
0711名無しさん@そうだ選挙にいこう2016/04/09(土) 11:28:34.67
分析ならTRIMMEANとかSUMIFとかのIF系とIFS系あたり覚えとくと楽できるんじゃないかな
0712名無しさん@そうだ選挙にいこう2016/04/09(土) 11:42:14.59
>>693
見本となるブックをアップして
0713名無しさん@そうだ選挙にいこう2016/04/09(土) 11:46:48.31
>>694
まず使わない。対応する~は覚えてない。そういやこのスレの回答でも見たこと無いな
使う人はちょっと変だと思う。
集計って機能で自動的に挿入されるけど、そもそも集計も使わないしなぁ

>>705
indirect、offset、cell辺りは知っておくだけで特殊なケースに対応できるからそれぐらい
あとはiferrorとかエラー周り
0714名無しさん@そうだ選挙にいこう2016/04/09(土) 12:27:59.80
>>713
SUBTOTALの用途がある人とない人の差だろうね
俺なんかは、システム部門担当者が自分流以外のシステムにするなら
数百万円単位で金寄越せと言ってくるせいで使わざるを得ないが実態かな

事業部ごとの数字が必要なのに全部をひとまとめにしたデータしか
アウトプットできないようにされてるからフィルター切り替えが一番楽なんだよね
0715名無しさん@そうだ選挙にいこう2016/04/09(土) 12:39:53.31
>>714
なるほどな
変とか言ってすまなんだ
0716名無しさん@そうだ選挙にいこう2016/04/09(土) 13:55:55.43
某大手でドデカいミスして関連企業に出向したことがあるけど、
中小の事務職が扱うExcelって凄いよw
合計を出すのに=c3+c4+c5+c6+c7とか、F2を押下したら見事に
カラフルになってたことなんてザラだった

VBAを使って集計やら業務時間の短縮を図ったら人員を二人減らせて、
それを評価されて僅か1年で本店に戻れたが、二人の仕事を
奪ってしまった罪は重かった・・・
0717名無しさん@そうだ選挙にいこう2016/04/09(土) 14:08:00.25
Excel2016の軸の書式設定のダイアログで質問です
前までは各項目にショートカットキーが割り当てられてたのがなくなってますが、
マウスではなくキーで選ぶ方法ありますか?
最小値/最大値をキーだけで変更したいのです
0718名無しさん@そうだ選挙にいこう2016/04/09(土) 14:26:13.47
SUBTOTALがないと 小計を除いた合計出すのがめんどくさいじゃん
07196932016/04/09(土) 14:54:45.12
自分でもどう質問していいのかわかりません。
見本のブックもなく今は時間はかかりますが計算機でやっています。

数ケースが入荷(ケースには中身1つの重量が表示されている)
ケースには同じ個数の物(商品毎に個数が変わる)が入っていてます。
中物は箱ごとに重さが違う。(同重量の物もあり)
Aには10.2キロが5個、Bには9.4キロが5個、Cには9.7キロが5個....のように。
総重量で注文が入り出荷。
入荷した1ケースのみ、中身を取り出し分けて梱包できる。(5個の場合、2個と3個、1個と4個)
)
在庫になるケースを選び出したい。
(693で書いた基準値は稀に重量に誤差がでるので調整です。)
注文重量+5キロまではOK
複数候補を出したいのは取り出しやすいケースを在庫にしたいため。
±5キロを超える場合は別作業があるので一番注文重量に近くなるようにしたい。

>>704 作業列を使ってやってみます
0720名無しさん@そうだ選挙にいこう2016/04/09(土) 15:15:13.94
具体例を出して電卓でどう計算してるのか示したほうが
いいとおもう
07216932016/04/09(土) 16:35:55.82
>>720
例:
5.0kg,6.0kg,5.7kg,5.1kg,5.0kgと表示された5ケースが入荷
中身は5個
ケース表示と実測での誤差なし
注文重量が89kg

電卓では
まず5.0+6.0+5.7+5.1+5.0=26.8
89÷5(個数)=17.8
26.8-17.8=9.0
9.0に近い6.0kgは在庫
26.8-6=20.8 20.8x5=104
104−89=15
まだ15多いので5.0kgが3個在庫
(5.0+5.7+5.1)x5+(5.0x2)=89 になるか確認し
6.0kgx5と5.0kgx3が在庫になる。と導き出してます。
このように計算しています。

電卓では時間がかかるので1つの組み合わせのみ探しています。
入荷が30ケース、在庫が14ケースとかになるとかなりの時間がかかるので、
エクセルで複数の組み合わせを導き出せれば、計算、ケースの仕分け時間を短縮できると思い質問しました。
0722名無しさん@そうだ選挙にいこう2016/04/09(土) 16:46:55.58
>>719
たぶん、このスレに質問する以前の状態かと
このスレで質問できる状態になったらまた質問すればいいと思います
0723名無しさん@そうだ選挙にいこう2016/04/09(土) 17:04:06.57
>>719

>>719にしても>>693にしても日本語がごちゃごちゃして読む気しないし
読んでも意味が分からんのです・・・
「ケース」と「箱」は同じものを指しているのか?など。

文章での説明がきついなら図解とかでうまく説明できれば
すぐレスつくのでは?
0724名無しさん@そうだ選挙にいこう2016/04/09(土) 17:06:26.72
こういうのは実際に業務でやれば一発で分かるんだけどな
0725名無しさん@そうだ選挙にいこう2016/04/09(土) 17:07:27.32
1分毎に4000(セル)以上のデータをサイトや別のツールなどから抽出し
1分毎にA1〜A4000 → B1〜B4000 → ・・・・ → ZZ1 〜 ZZ4000
と676列(676分)まで「抽出 → 書き込み」を繰り返す

これって可能ですか?
可能としてどれほどのスペックを要求されるでしょう?
使用してるのは2013です。

もし別のツールから抽出する場合、そのツールのプログラム解析は必須ですか?
0726名無しさん@そうだ選挙にいこう2016/04/09(土) 17:08:57.86
>>725
書き込みって何?保存のこと?
0727名無しさん@そうだ選挙にいこう2016/04/09(土) 17:13:11.96
>>725
書き込み内容次第だが、あまりに文字数が多いとかなりのスペックでもフリーズする
またサイトからアク禁を食らう可能性もある
あとスクレイピングのプログラムはそんなに難しくない。めんどくさいだけで。
0728名無しさん@そうだ選挙にいこう2016/04/09(土) 17:17:55.03
>>719
見本のブックがないのに>>693のセル指定があるんだけど、これは独自に作ってみましたってこと?
0729名無しさん@そうだ選挙にいこう2016/04/09(土) 17:26:10.12
>>726
1分毎に更新されるサイトやツールのデータを
sheet1のA1〜A4000に表示させて

sheet2の
00:01 A1〜A4000
00:02 B1〜B4000
ってな感じで書きこんでいくっていう感じです。

>>727
どうもありがとうございます!
5〜12桁の数字です。どうでしょうか。
スクレイピングというんですね。
サイトやツール側が自動更新の場合はどうでしょうか?
0730名無しさん@そうだ選挙にいこう2016/04/09(土) 18:12:19.40
>>719
見本のブックがないって、誰がそのExcelファイルを持ってるの?
上司が持ってて社外に出せない?
それともあなたが妄想で作ったの?
まだExcelにもなってないのでは?
0731名無しさん@そうだ選挙にいこう2016/04/09(土) 18:15:51.04
>>729
サイトや別のツールってのは何?具体的に教えて
サイト名やURLやツール名など
0732名無しさん@そうだ選挙にいこう2016/04/09(土) 18:30:12.02
>>725,729 こんな↓事例があるので、ご注意を。 ヘタすると逮捕なんてことも。
図書館Webサイトへのクローラを実行して逮捕された男性、不起訴に
http://security.srad.jp/story/10/06/21/118216/
スレ違い失礼
0733名無しさん@そうだ選挙にいこう2016/04/09(土) 18:32:15.72
>>729
メモリ16gbぐらいあればあとは何でも良さそう
あと改行とか無いならセルじゃなくてcsvにでも保存するほうがいいだろう
vba使えば簡単に作れる
0734名無しさん@そうだ選挙にいこう2016/04/09(土) 19:26:03.52
>>721
くわしく説明してくれたんだけども、やはりわからない
1行ずつ解説文を入れてくれないだろうか

�@5.0+6.0+5.7+5.1+5.0=26.8
 なんで合計するの 5kgのケースには5kgの商品が5個入ってるってこと?

�A89÷5(個数)=17.8
 なんで注文重量を5個で割るの

�B26.8-17.8=9.0
 なんで合計から�Aを引くの

�C9.0に近い6.0kgは在庫
 ?

�D26.8-6=20.8

�E20.8x5=104

�F104−89=15

�Gまだ15多いので5.0kgが3個在庫

�H(5.0+5.7+5.1)x5+(5.0x2)=89 になるか確認し

�I6.0kgx5と5.0kgx3が在庫になる


結局 バラのケースは1つだけにして、合計が89にいちばん近い組み合わせを探せばいいわけだよね
�@から�Gはその計算になんか関係あるのかなあ
07354822016/04/09(土) 19:28:00.13
>>728,730
見本のブックがないのは、
いまは電卓で計算してるからです。
セルの指定は質問するのに必要かと思い書きました。

スレ汚し申し訳なかったです
07366932016/04/09(土) 19:48:13.94
>>734

�@
5kgのケースには商品が5個入ってるってことです。
合計するのは表示されている重量の合計を知るためです。
�A
注文重量を割るのは、表示されているのが商品1つの重さなので、
とりあえず個数を無視して�@合計と比較するためです。
�B
合計から�Aを引くのは在庫になる重量を知るためです。(個数は無視)
�C
�Bで出た9kgに個数の5をかけると45kgでそれにもっとも近いケースが6.0kgの箱になるからです。

現在、電卓と紙を使って計算しているため個数を無視したり�D〜�Iのような計算もしています。
エクセルでどのようなことが出来るかもわからない現状です。

>>結局 バラのケースは1つだけにして、合計が89にいちばん近い組み合わせを探せばいいわけだよね
そうです
07376932016/04/09(土) 19:52:02.71
>>734

>>結局 バラのケースは1つだけにして、合計が89にいちばん近い組み合わせを探せばいいわけだよね
注文重量+5.0kgになる組み合わせは可能なら全部知りたいです。
注文重量±5以内に収まらない組み合わせしかない場合は、一番近い組み合わせ1つを知りたいです。
07386932016/04/09(土) 20:05:16.46
>>734
�Cに関しては、6.0kgが近いから在庫というのは違いますね。。
今まで電卓でやっていたので他の重量を見て感覚で6.0kgと出してしまいました
0739名無しさん@そうだ選挙にいこう2016/04/09(土) 20:07:43.09
全然わからん。
日本語の問題でしょこれ。
0740名無しさん@そうだ選挙にいこう2016/04/09(土) 20:11:58.80
>>739
わからんかったら分かるまで聞くか、エスパー能力を開花させるんだ
ちと真剣に考える
0741名無しさん@そうだ選挙にいこう2016/04/09(土) 20:15:13.32
>>740
だって>>734への解答が>>736->>738になるんでしょ。
解決不可能だよこれ。
たけしの挑戦状だよ。
0742名無しさん@そうだ選挙にいこう2016/04/09(土) 20:17:52.08
ちょっと楽しそうだったから美容院での暇つぶしに考えてみたけどギブアップだわ
自社の情報システム部門に言って要件をまとめてもらったほうが早いよ
0743名無しさん@そうだ選挙にいこう2016/04/09(土) 20:24:16.94
これを思い出したw

モスバーガーのきれいな食い方教えれ
http://chaos2ch.com/archives/1311275.html
0744名無しさん@そうだ選挙にいこう2016/04/09(土) 20:25:05.38
>>693 って「板取り問題」みたいなものなのかな?
だったら、Excelの計算式でどうこうできるものではないような。
マクロで総当たりして、結果が許容できる範囲にある組み合わせを出力するしかなさそう。
0745名無しさん@そうだ選挙にいこう2016/04/09(土) 20:28:23.87
>>741
正直、たまに来るこの系統の超難問は楽しいと思う
他は一瞬で終わりすぎるしvba使えばどうとでもなる
楽しめないなら無理に回答せんでええで
0746名無しさん@そうだ選挙にいこう2016/04/09(土) 20:30:35.16
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 いいえ

MINIFSという関数が追加になったと聞いたのですが利用することができません
プレインストール版だと利用できないんでしょうか?
0747名無しさん@そうだ選挙にいこう2016/04/09(土) 20:54:34.37
>>746
その件でMSに問い合わせた事あるけど(Answer Deskでリモート接続して 確認してもらった)

 ・リリースにタイムラグがある
 ・いつになるかは Answer Desk では分らないwww
 ・時期は不明だけど 使えるようにはなるんですよね? → yes

との回答はもらったのよね(3月初旬の事)
これ以上突っ込んでも 進展なさそうだったので ここで切り上げたけど

その後(ビルド6741)で じょうごグラフと黒テーマは使えるようになった事を考えれば
その内使えるようになるんじゃないかな?

ちなみに俺ん所は Office Personal Premium です
0748名無しさん@そうだ選挙にいこう2016/04/09(土) 21:08:55.68
>>747
そのうち使えるようになるという事ですか
0を除いた一番小さな値を求めるのに便利そうと説明見て思っただけに残念です
今もsmall使った配列数式で求めてはいますが
07497472016/04/09(土) 21:39:26.43
>>748
ちなみに MSのアカウントあるなら Office Online という手もあるぞ(これはその関数使える)
0750名無しさん@そうだ選挙にいこう2016/04/09(土) 22:05:41.79
>>719
>数ケースが入荷(ケースには中身1つの重量が表示されている)
>総重量で注文が入り出荷。
>入荷した1ケースのみ、中身を取り出し分けて梱包できる。(5個の場合、2個と3個、1個と4個)
>在庫になるケースを選び出したい。

倉庫なんだろうけど、入荷、出荷、在庫がどこからどこまでか分からん
入出庫と在庫の話?もしそうなら出庫が多い場合はどうするの?
0751名無しさん@そうだ選挙にいこう2016/04/09(土) 22:10:59.68
>>736
とりあえずVBAで総当りしてフィルタする方法でつくってみた。
1-5はケースの番号を仮にふった

89kgに完全一致するのは6パターン

試算# 試算重量 差 1 2 3 4 5 バラ1 バラ2 バラ3 バラ4 バラ5
177 89.0 0.0 0 0 5 5 5 2
197 89.0 0.0 0 0 5 5 5 2
351 89.0 0.0 0 5 5 5 0 1
371 89.0 0.0 0 5 5 5 0 1
552 89.0 0.0 5 0 5 5 0 2
572 89.0 0.0 5 0 5 5 0 2


プラスマイナス5kgに収まるのは105パターン

これでよければワークシートをうpするけど、単純にfor-nextを入れ子にしてるのでケースを30くらいに増やすのはちょっとたいへん 
上手なひとがつくりかえてくれればいいけど
0752名無しさん@そうだ選挙にいこう2016/04/09(土) 22:15:03.64
http://www.dotup.org/uploda/www.dotup.org814430.gif
0753名無しさん@そうだ選挙にいこう2016/04/09(土) 22:24:07.47
要するに・・・
5.0kg*5
6.0kg*5
5.7kg*5
5.1kg*5
5.0kg*5
と5ケースある内、一ケースだけバラしてok
合計89kgにするだけのことなのか?
vbaで楽勝じゃないか

693や721見て混乱してたわ
0754名無しさん@そうだ選挙にいこう2016/04/09(土) 22:27:14.38
ややスレチですいません。
>>693の問題はなんて言うんでしょうか?
板取問題に入る?
07556932016/04/09(土) 22:47:46.41
ありがとうございます。

>>750
倉庫ではないのですが、似たような物です。
注文重量を満たす入荷が毎回ある訳ではないので、
満たない入荷の場合は、全て出荷し、次の入荷で調整をします。

>>751,752
すごいパターン数になるんですね。。
可能ならば、5.0kgが2つあるのでケース番号を付けずに○○kgと表示して、
6パターンを3パターンとして表示したいです。
プラスマイナス5に収まるパターンではなくプラス5に収まるパターン。
どのようなパターンでもプラス5に収まらない場合のみプラスマイナス5に一番近い物選び出したいです。

>>753
>>と5ケースある内、一ケースだけバラしてok
合計89kgにするだけのことなのか?
今回の例では、その通りです。
721は現在電卓で計算している流れを書きました。。
0756名無しさん@そうだ選挙にいこう2016/04/09(土) 22:55:44.77
板取と在庫問題の複合とか絶望的にめんどくさい問題だな

>>755
想像を絶するウンコみたいな仕事してるんだな・・・
でもそれに気づけた君はエライ
>>751にアップロードしてもらって其れ使ってみたらいいと思う
0757名無しさん@そうだ選挙にいこう2016/04/09(土) 23:03:26.43
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

1.エクスプローラー上で右クリックからテキストファイルを新規作成する
2.作成したファイルをhoge.csvにリネームする
3.hoge.csvをダブルクリックしてエクセルで開き、編集して上書き保存する
上記手順を実行するとタブ区切りで保存されます
以前はカンマ区切りで保存された気がするので気になっています
みなさんが上書き保存をした場合、どうなるか教えていただけませんか
0758名無しさん@そうだ選挙にいこう2016/04/09(土) 23:07:01.99
>>752 バラのケースがダブってる場合があったので それを除外すると完全一致は3パターンでしたね。

いろいろ要望はあると思いますが、フィルタでどうにでもなると思うのでワーシートうpしときます。適当に改造してください。
http://www.dotup.org/uploda/www.dotup.org814528.zip.html
0759名無しさん@そうだ選挙にいこう2016/04/09(土) 23:07:10.51
自動ネスティングだな
0760名無しさん@そうだ選挙にいこう2016/04/09(土) 23:07:54.15
>>757
タブ区切りになるね。2003ぐらいならカンマだった気もする

あとテキストファイルが
1,2
だとタブ区切りと解釈されて
A1="1,2"
になり、
1,2,3
だとカンマ区切りと解釈されて
a1=2
b1=2
c1=3
になる
まぁなんでもいいけどな
0761名無しさん@そうだ選挙にいこう2016/04/09(土) 23:10:59.61
>>758
親切すぎて笑った
乙
07626932016/04/09(土) 23:11:41.63
>>758
ありごとうございます。
VBA勉強しながらやってみます。
0763名無しさん@そうだ選挙にいこう2016/04/09(土) 23:15:43.57
>>693
一応一週間ぐらいこのスレ見ておいたほうがいいかも
>>758を改造した物をアップしてくれる人が現れるかもしれん
0764名無しさん@そうだ選挙にいこう2016/04/09(土) 23:22:12.72
VBAで、引数として渡した日付の属する週の金曜日の日付を返してくれるような
public functionが欲しいのですがどう書くのがいいでしょうか?

引数をweekday()に投げてみて、その返事の値が6ならその日
5以下なら、6との差だけプラスした日
7ならその前日

↑
この発想は素人くさいですか?
07657572016/04/09(土) 23:23:25.02
>>760
タブになりましたか、ありがとうございます
メモ帳で少し書いてからエクセルで編集・保存するとカンマ区切りになりました
恐らく以前はそうぢていたのだと思います
0766名無しさん@そうだ選挙にいこう2016/04/09(土) 23:31:51.36
>>764
その程度ならあんまり気にせずに一番早い方法で記述するといいよ
調べるほうが時間かかる
変に凝る(7進数で計算したあまりや、floor()やceiling()を使う等)とバグが起きた時に保守がめんどくさくなるので、ベタ書きの方がいい場合も多い

あと返事じゃなくて戻り値。単語はちゃんと覚えた方がいい
0767名無しさん@そうだ選挙にいこう2016/04/09(土) 23:33:07.81
693は解決したんだw
>>693を再度読み直したが、>>753や>>758には辿り着けない・・・
0768名無しさん@そうだ選挙にいこう2016/04/09(土) 23:45:22.25
>>767
>>753だけど、こういうのは文字を読むんじゃなくて、
実際にどういう業務が行われているか?
質問者はどういう人物か?
を先に想像すると結構うまくいく

俺の想像では・・・
質問者は多分PCが少しできる若い人(入社2-3年目ぐらい)で、商品の入出庫業務についている。
・ということは、>>693の数式はあまりアテにならない
・最も重要な情報は現実を表している>>719
・>>721は昔から受け継がれてきた由緒正しいアホな計算方法。これから無くなる仕事なのでそんなに見なくていい
ということが分かる

日本語や質問が下手なんじゃなく、業務が煩雑すぎて混乱しているだけだろう
改善しようと頑張っているのが伝わってきたので、手伝ってあげたくなったよ
0769名無しさん@そうだ選挙にいこう2016/04/09(土) 23:49:24.50
>>768
質問者(693)はどういう人物だと思った?
0770名無しさん@そうだ選挙にいこう2016/04/09(土) 23:52:22.40
つーか、482と693の質問も例も、こういうことがやりたいってことが回答者の結果と違うんだけどいいのか?
0771名無しさん@そうだ選挙にいこう2016/04/09(土) 23:55:00.34
>>769
業務を改善しようとしているんだろう、高く評価する。
それ以外の部分は聖人でも悪人でも男でも女でもどうでもいいってか関係ないわ
0772名無しさん@そうだ選挙にいこう2016/04/10(日) 00:06:34.29
>>764
その程度のfunctionならどんな書き方でもいいかと思う
バグが混入する要素もないし、極限までスピードを求めるとか他の要件もないみたいだし
0773名無しさん@そうだ選挙にいこう2016/04/10(日) 00:22:15.54
>>758
の
P11=IF([@1]*[@バラ1]+[@2]*[@バラ2]+[@3]*[@バラ3]+[@4]*[@バラ4]+[@5]*[@バラ5]>0,"×","○")
の[@1]って何でしょうか?
0774名無しさん@そうだ選挙にいこう2016/04/10(日) 01:00:01.24
テーブルの項目名 構造化参照ってやつ
0775名無しさん@そうだ選挙にいこう2016/04/10(日) 01:07:27.72
>>774
そんな機能があったんですね、ありがとうございます
0776名無しさん@そうだ選挙にいこう2016/04/10(日) 01:29:33.65
>>766>>772
ありがとうございました
0777名無しさん@そうだ選挙にいこう2016/04/11(月) 08:58:45.34
A・B・C・D・E・F
1・3・7・△・5・
5・2・4・△・5・4
2・9・1・▼・7・9
4・1・4・▼・7・

上のようなA列からE列まで数値が入った表があります。

D列のサインが△ならC列からE列の数値より低い(5も含む)数値を
F列に表示。例だと(F2の4)
D列のサインが▼ならB列からE列の数値より高い数値(7も含む)を
F列に表示。例だと(F3の9)

こんな感じで作りたいのです。
Excel2013を使っています。
よろしくお願いします。
0778名無しさん@そうだ選挙にいこう2016/04/11(月) 09:25:55.46
>>777
F1=IF(D1="△",MAX(C1:E1)+1,IF(D1="▼",MAX(1,B1:E1)+1,"さいんなし"))
0779名無しさん@そうだ選挙にいこう2016/04/11(月) 09:53:45.08
2010のVBAの質問です。お願いします。
 ↓
fn = Thisworkbook.Path & "abc.xls"
Worksheets("ABC").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=fn , FileFormat:=xlExcel9795
ActiveWorkbook.Close
Application.DisplayAlerts = True
 ↑
このコードでエラーがでます。
「'SaveAs' メソッドは失敗しました.'_Workbook'オブジェクト」
というメッセージです。

何がダメなんでしょうか?
07807792016/04/11(月) 09:56:05.50
>>779最上行は、
fn = Thisworkbook.Path & "\abc.xls"になってます。

これをfn = Thisworkbook.Path & "\abc.xlsx"にして、
FileFormat:=xlExcel9795というところを消せば、エラーも出ずうまくいくのですが、
やはりxlsで保存したいのです。
0781名無しさん@そうだ選挙にいこう2016/04/11(月) 10:24:06.67
>>779
xlExcel8
ではどうだろう
07826852016/04/11(月) 12:39:58.13
>>690-691
すみません遅くなりましたがご回答ありがとうございます!
>>686さんもお付き合いして頂いてありがとう
枠を23日分確保して作表をしておきます

余る分にはIFなりなんなりで"-"とかできますけど
足りなかったらどうしようもないですから・・・
0783名無しさん@そうだ選挙にいこう2016/04/11(月) 14:57:41.87
>>781
xlExcel8に変えただけでできました。
ありがうございました。

でも、どうしてできたんでしょう?
0784名無しさん@そうだ選挙にいこう2016/04/11(月) 15:33:46.10
さあ、どうしてでしょうね
不思議なことばかり起きます
0785名無しさん@そうだ選挙にいこう2016/04/11(月) 16:10:56.39
>>778
ちょっと説明不足でしたようで。

D列のサインが△ならC列からE列の数値より低い数値をF列に表示。

d列のサインが▼ならB列からE列の数値より高い数値をF列に表示です。

分かりにくくてすみません。

今は新卒でも容赦なく仕事来るものなのですね。
0786名無しさん@そうだ選挙にいこう2016/04/11(月) 16:24:09.15
>>783
知らん
単純に9795形式での保存に対応しなくなってるか、バグか、何かのアップデートと競合起こしてるんだろう
こういう時は一度マクロの記録を取ると良い

>>785
ごめん、間違えてた
F1=IF(D1="△",Min(C1:E1)-1,IF(D1="▼",MAX(1,B1:E1)+1,"さいんなし"))
あと、言葉を間違えている
サイン→セルの値or値or文字列
nより低い→nは入らない。nを含める場合はn以下といえば通じる
あと新卒でもなんでも仕事させるのは普通だろう
0787名無しさん@そうだ選挙にいこう2016/04/11(月) 16:26:34.90
>>785
あれ、そうじゃなくて最小値と最大値を出すのか?
F1=IF(D1="△",Min(C1:E1),IF(D1="▼",MAX(1,B1:E1),"さいんなし"))
ちゃんとした単語を使わないと、そのうちどえらいミス犯すよ

>>777は
D列の値が"△"ならC列からE列の最小値を
F列に表示。例だと(F2の4)
D列の値が"▼"ならB列からE列の最大値を
F列に表示。例だと(F3の9)
と言わないと
0788名無しさん@そうだ選挙にいこう2016/04/11(月) 18:32:47.00
>>783
使用しているExcelのバージョンにより使える定数が変わってるっぽい

Excel2003以前 → xlExcel9795
Excel2007以降 → xlExcel8

参考:
http://excel-ubara.com/excelvba4/EXCEL235.html
0789名無しさん@そうだ選挙にいこう2016/04/11(月) 19:23:02.36
>>717なんだけど、グラフの軸の最大/最小値にショートカットキー割り当てとかできませんか...
グラフがたくさんあるのでいちいちグラフの軸をポチって書式ダイアログをポチってだと大変なんです
0790名無しさん@そうだ選挙にいこう2016/04/11(月) 19:25:02.43
>>789
vbaのショートカットキーとか
0791名無しさん@そうだ選挙にいこう2016/04/11(月) 21:08:24.11
最近データが増えてエクセルが重いのですが、
なにか日頃からやっておいた方が良い事ありますか?
いらないデータは削除してますが、重すぎる。
0792名無しさん@そうだ選挙にいこう2016/04/11(月) 21:15:37.34
>>791
日頃から〜は、ない
ブックを見直すのが一番いい。使用セルの数が増えても、作業列を使ったほうが軽くなる場合も多い
あとは内部的にゴミデータがたまる仕様なので、一度新規ブックにコピーすると軽くなる場合がある。
0793名無しさん@そうだ選挙にいこう2016/04/11(月) 22:06:15.51
セルの移動に困っておりまして、質問をさせて頂きます。

<自分の実現させたい事>
�@A1に特定のパターンの数値を入力すると、自動でB1とD1に予めA1のパターン別に設定されていた数値が入力される。

�AA1に入力されると、入力するセルが自動で移動する。
※B1とD1には、�@で数値が入力されているため、A1→C1→D1→E1…という順番に移動する。

�B行の最後H1の入力されたら、自動でA2に移動して、�@〜�Bの動きを繰り返す。


という事をしたいのですが、どうすれば可能でしょうか?
もし分かるのであれば、教えてください。
宜しくお願いします。
0794名無しさん@そうだ選挙にいこう2016/04/11(月) 22:13:23.60
>>793
1.パターンがわからんとなんとも
a1が5以下で0、6以上なら10というパターんなら
b1=if(a1<=5,0,10)
のような漢字

2.無い。ついでに言うとシート構成が悪い
入力欄はまとめておいて、出力部でそれを参照する
f:h列に入力をまとめるとすると
a1=f1
b1=if(a1<=5,0,10)
c1=g1
のような寒緋

3.2.の状態ならf:h列を選択してtabを押すだけ
0795名無しさん@そうだ選挙にいこう2016/04/11(月) 22:30:16.71
>>793
A列,D列,E列,F列,G列,H列だけセルのロックをはずし、他のセルはロックをかけた状態でシートの保護をかけると
[TAB]で A1→D1→E1→F1→G1→H1→A2→D2・・・と移動します。
[TAB]キーだと(シート保護したうえで)ロックしたセルは飛び越えます。
[Enter]で右方向に移動するようにしても、ロックしたセルを飛び越えません。
B列とC列にはユーザー関数でVBAを使って
>特定のパターンの数値を入力すると、自動でB1とD1に予めA1のパターン別に設定されていた数値が入力
できるようにしておくといいです。
0796名無しさん@そうだ選挙にいこう2016/04/11(月) 22:49:28.65
>>794-795
レス、有難うございます。
セルロックとシート保護機能は知りませんでした。早速やってみます。
有難うございました。
0797名無しさん@そうだ選挙にいこう2016/04/12(火) 06:19:04.99
>>792
新規ブックにコピーするだけでだいぶ変わりますか?
0798名無しさん@そうだ選挙にいこう2016/04/12(火) 06:42:32.75
少し変わる
ちょっと変わる
0799名無しさん@そうだ選挙にいこう2016/04/12(火) 08:11:55.32
>>797
試せよ…
0800名無しさん@そうだ選挙にいこう2016/04/12(火) 08:14:23.36
新規ファイルにコピーすると計算式が元ファイルにリンク付けられてエラーになりやすいのがネックかな
先に=を#とかに変えておいて=に戻すとかすれ回避自体はできるけど面倒くさいし
文字列で記号を多用されている表だとそもそも変換しても問題がない文字を探すのが大変
0801名無しさん@そうだ選挙にいこう2016/04/12(火) 08:34:06.94
>>790
選択してるグラフの軸の書式設定を開いて最大値にフォーカスあてる、みたいなことがVBAで可能ですか?
0802名無しさん@そうだ選挙にいこう2016/04/12(火) 10:47:26.23
>>801
可能です
0803名無しさん@そうだ選挙にいこう2016/04/12(火) 10:50:22.60
>>802
VBAのみの例を頼む
0804名無しさん@そうだ選挙にいこう2016/04/12(火) 10:53:52.90
>>801
しらん
ショートカットキーを押すと「ダイアログボックスを出し、数値を入れてenterを押すと選択しているグラフの軸の最大/最小値に設定」
みたいなものを考えていたわ
0805名無しさん@そうだ選挙にいこう2016/04/12(火) 18:58:07.57
う〜ん
文字列がほぼ一緒なら「true」と返したいんだが
VBAを使わずになんとかならんものだろうか?
文字の欠損とか余剰も含めるともうさっぱりだ
0806名無しさん@そうだ選挙にいこう2016/04/12(火) 19:52:07.42
>>805
ほぼ一緒の定義次第
定義がないならVBAでも無理じゃね?
0807名無しさん@そうだ選挙にいこう2016/04/12(火) 19:56:55.25
>>805
12345と23456
n文字目の判定、n文字目がもう片方に存在するか、などをboolean型で横にどんどん並べて平均を取り、
0.8以上ならtrueと返す数式群を自分で作ればいいと思うけど
俺なら絶対やりたくない
0808名無しさん@そうだ選挙にいこう2016/04/12(火) 23:10:37.46
2つ、質問させて下さい。宜しくお願い致します。

《壱》
 �@A1に入力した時、その時間(hh:mm)がB1に表示される。
 �AH1に入力した時、その時間(hh:mm)がG1に表示される。
 ※ファイルを開きなおしても、時間は変化しない。

 という事をしたいです。
 自分でも調べてみて、VBAを使って�@は出来たんですが、�Aが分かりませんでした…
 教えて頂きたいです。

《弐》
 �@A1に入力した文字に応じて、B1に数値の範囲(1.02〜1.12)が表示される。
 �AC1に測定値を入力するとD1に、B1の範囲内であればにOK、範囲外であればNGと表示される。
 
 という事をしたいです。
 �@は=VLOOKUPを使って出来るようになったんですが、�Aが分かりませんでした…
 教えて頂きたいです。

すみません、宜しくお願いします。
0809名無しさん@そうだ選挙にいこう2016/04/12(火) 23:21:31.23
>>808
《壱》�@
変な記号を使わないでくれ。文字化けしたりする上に読みにくいし入力も面倒で誰の得にもならん
上は1ができるなら2もできるんじゃないか?コード貼ってくれ
下は範囲がわからん。B1の以上以下なのか文字列が内包されているのか
テキトーにカンで答えるとだいたいこんな感じか
d1=if(c1<b1,"ok","ng")
0810名無しさん@そうだ選挙にいこう2016/04/12(火) 23:35:34.53
変な記号を使ってしまい、申し訳ありませんでした。勉強になります。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Row > 1 Then
Target.Offset(0, 2) = Now
Target.NumberFormatLocal = "[$-F400]hh:mm"
End If
End If
End Sub

上の�@は、これで出来ました。
確認をお願いします。


下の範囲ですが、以上でも以下でもNGとします。
=VLOOLUPから拾ってきて入力される数値を、範囲として認識させるにはどうしたら良いでしょうか。
0811名無しさん@そうだ選挙にいこう2016/04/12(火) 23:58:28.40
>>810
上
Private Sub Worksheet_Change(ByVal Target As Range) 'Targetってのは編集したセルのこと。その時のイベント
If Target.Column = 1 Then 'A列の時
If Target.Row > 1 Then '行数が1より大きい(2行目以降
Target.Offset(0, 2) = Now 'targetの下0行、右2列移動
Target.NumberFormatLocal = "[$-F400]hh:mm"
End If
End If
End Sub

つまり
If Target.Column = 1 Then 'A列の時
If Target.Row > 1 Then '行数が1より大きい(2行目以降
を
If Target.Column = 8 Then 'H列の時
If Target.Row >= 1 Then '行数が1以上
に書き換える
今エクセル使ってないからテキトー。動かなかったらちゃんと読んで頑張れ

ちなみにこの例だと>>808のA1の時〜は動かないはずだけど、別にいいわ

下
そのまんまやるならfindで切り分ける
d1=+IF(AND(C1>=LEFT(B1,FIND("〜",B1)-1)*1,C1<=RIGHT(B1,LEN(B1)-FIND("〜",B1))*1),"ok","ng")

findで切り分けるのは割りと面倒なので、作業列を使うのが楽で確実
d1=+IF(AND(C1>=F1,C1<=G1),"ok","ng")
f1=LEFT(B1,FIND("〜",B1)-1)*1
g1=RIGHT(B1,LEN(B1)-FIND("〜",B1))*1
0812名無しさん@そうだ選挙にいこう2016/04/13(水) 00:11:07.08
>>810
Target.Offset(0, 2) = Now
Target.NumberFormatLocal = "[$-F400]hh:mm"
↓
Target.Offset(0, 2) = Now
Target.Offset(0, 2).NumberFormatLocal = "[$-F400]hh:mm"
だとおもうぞ

Targetを一度OFFSETしたからといって Targetそのものの位置は変わらないよ
0813名無しさん@そうだ選挙にいこう2016/04/13(水) 01:17:10.97
>>806
文字列の長さはまちまちだけど6割以上ならtrueにしたい

>>807
比較内容はおおよそ正しいか全然違うしかないので、
比較文字列の連続する文字列3文字を抜き出してその文字列が含まれていればtrueでいい

一応こういうの↓を考えたんだけど「*比較文字*」の部分をどう書けばいいのかわからない(MIDで正規表現にできるのだろうか?)
=IF(COUNTIF(A1,"*比較文字*"),"○","×")
後は抽出する場所をランダムにしてそれを3つ準備して2つ以上trueなら判定もtrueというようにできないだろうか?
0814名無しさん@そうだ選挙にいこう2016/04/13(水) 01:35:42.26
>>813
countifは使い方が違う。それはa1:b2セルの内、何個比較文字セルが含まれているか
まぁ使えんでもないが、普通はfindを使う
a1=1234
b1=2345
c1=NOT(ISERROR(FIND(MID(B1,2,3),A1)))
これでB1の2文字目から3文字を比較になる
MID(B1,2,3)
の2と3な

あと、trueと言ってるのに
こうするのはややこしくなるだけだからやめたほうがいい→if(〜〜,"○","×")
条件式だけで分かる。
まぁ別にいいけどな
0815名無しさん@そうだ選挙にいこう2016/04/13(水) 07:41:44.28
>>813
抽出場所をランダムにするだけなら
C1=COUNTIF(A1,"*"&MID(B1,RANDBETWEEN(1,LEN(B1)-2)、3)&"*")>0
とか思い付いた
これを十回足し算して6以上になるならTRUEとかどうだろう?
0816名無しさん@そうだ選挙にいこう2016/04/13(水) 09:52:06.67
おはYOございます。
ちょっと相談させてください。

Excelにて以下のようなデータがある。

    グループA  条件1  条件2
     果物    ○
     野菜         ○
     果物         ○
     野菜
     野菜         ○

この時、グループごとの「○」の数をカウントしたいんですが
どうやるのが一番いいでしょうか?

適当なセルに=countif(範囲,"○")とやると○の数は数えられても
グループごとの数値を出すことが出来ずに悩んでいます
0817名無しさん@そうだ選挙にいこう2016/04/13(水) 10:11:33.13
>>816
sumproduct()。使い方は検索しておくれ
配列数式って機能もあるけど使いにくい。気が向いたらぐぐって
0818名無しさん@そうだ選挙にいこう2016/04/13(水) 10:23:22.47
>>817
ありがとうございます。sumproduct調べてみました、助かりました。
○のままだと使えないっぽいので、これを0,1に直せばいい感じなのかな
0819名無しさん@そうだ選挙にいこう2016/04/13(水) 10:29:34.61
こう?
=SUMPRODUCT((A1:A100="果物")*(NOT(ISERROR(FIND("○",B1:B100&C1:C100)))))
正直、あんまり自信無い
0820名無しさん@そうだ選挙にいこう2016/04/13(水) 11:05:08.16
>>819
色々やってみたら
=SUMPRODUCT(A1:A100="果物")*(B1:C100="○")
これでとりあえず必要なデータは出てきたっぽい?です!
ありがとう!
0821名無しさん@そうだ選挙にいこう2016/04/13(水) 11:26:01.61
条件2の右に単価列を作成して単価合計出そうと思ったら#VALUE!が出てきた・・・なんでだろう

=SUMPRODUCT(A1:A100="果物")*(B1:C100="○")*(D1:D100)

なんかおかしいですか?
0822名無しさん@そうだ選挙にいこう2016/04/13(水) 11:33:44.38
作業列使ったほうがいいいんじゃね
0823名無しさん@そうだ選挙にいこう2016/04/13(水) 11:40:41.33
>>821
うん 最後の ) が一つ足りなくね?
08248232016/04/13(水) 11:43:24.54
ごめん よく見たら sunproductの 最初の(も足りないな
=SUMPRODUCT((A1:A100="果物")*(B1:C100="○")*(D1:D100))
でどう?
0825名無しさん@そうだ選挙にいこう2016/04/13(水) 11:43:45.53
最後どころか最初にも足りてなかった感・・・

=SUMPRODUCT((A1:A100="果物")*(B1:C100="○")*(D1:D100))

これでやって検証データでは上手くいきました!
しかし実際のデータでやると相変わらず#VALUE!なので
もう少し調べてみたらグループAとか条件1とかを別のシートから引っ張ってきているようで
そのあたりがどうやら怪しいのでそっちを調べてみたいと思います。

>>822さんの仰る通り、データを小分けにしてとりやすい形に直してみる方向でも検討してみます
0826名無しさん@そうだ選挙にいこう2016/04/13(水) 15:41:28.91
>>814
>>815

いろいろ有り難う
工夫しながら使ってみる
0827名無しさん@そうだ選挙にいこう2016/04/13(水) 18:34:11.48
EXCEL2010を使っています。

ユーザーには見せたくないし値を変えさせたくないが、フォーム(VBA)からは値を変更
させたい列(セル)があります。

そこで思いついたのは、該当の列の幅を0にしてしまい、列の幅の変更を不可にして
シートを保護してしまう、というものです。
しかしそれをすると、「読み取り専用だからダメ」というエラーが出て、VBAからセルの値の
編集不可になってしまいます。

何か良い方法はないでしょうか?
0828名無しさん@そうだ選挙にいこう2016/04/13(水) 19:02:47.76
ActiveSheet.Protect UserInterfaceOnly:=True
0829名無しさん@そうだ選挙にいこう2016/04/13(水) 22:39:19.81
AAA 10
AAA 14
AAA 12
AAA 15
BBB 13
BBB 12

このような表がある場合これを

AAA 10
BBB 12

このようにしたいのですが良い方法はないでしょうか?
0830名無しさん@そうだ選挙にいこう2016/04/13(水) 22:42:33.69
>>829
並び替えてからフィルタで重複を除けばすぐだけど
0831マルチですまん!2016/04/13(水) 22:44:58.17
数式で他のブックの値を参照すると式がやたら長くなるんですが、この式隠すこととかできませんか?
0832名無しさん@そうだ選挙にいこう2016/04/13(水) 22:49:17.22
>>830
できました。
ありがとうございます。

ああ、全部終わったーーー
0833名無しさん@そうだ選挙にいこう2016/04/13(水) 22:50:03.17
>>831
indirect()
0834名無しさん@そうだ選挙にいこう2016/04/13(水) 23:07:14.65
Excel2013のVBAで教えてください
ユーザーフォームのボタンを押すとアクティブなワークブックの名前を表示するように記述しておき
複数のワークブックを立ち上げてひとつを選択→ボタンを押す→ボタンを押す
とやると最初は正しいワークブック名を返すのですが2回目は自分自身の名を返すようです
2007まではどちらもアクティブなワークブックの名前を返してました
従来どおりの反応するようにしたいのですがどうすればできますか
0835名無しさん@そうだ選挙にいこう2016/04/13(水) 23:14:35.30
>>834
code plz.
0836名無しさん@そうだ選挙にいこう2016/04/13(水) 23:32:16.72
コードと言っても
Msgbox ActiveWorkBook.Name
だけなんですが
この現象ってMDI→SDI変更の弊害だと思ってましたがどうやって回避してるのか知りたいです
0837名無しさん@そうだ選挙にいこう2016/04/13(水) 23:39:00.57
Mac版のExcel2011と、Windows版の2010や2013とのVBAの非互換性というか、
Mac版では通用しないVBAコード一覧みたいなものってありますか?
0838名無しさん@そうだ選挙にいこう2016/04/13(水) 23:40:39.86
>>833
返信どうもです
数式の外部参照の部分だけ隠すとかは無理でしょうか?
0839名無しさん@そうだ選挙にいこう2016/04/13(水) 23:53:09.15
>>838
名前の定義とか
http://www.fujisekkei.sak
ura.ne.jp/ooo/?p=671

もしくは長いなら一度どこかのセルを作業セルとして使ってみては
A1=別ブックA1+別ブックA1+別ブックA1・・・
↓
B1=別ブックA1
A1=B1+B1+B1
0840名無しさん@そうだ選挙にいこう2016/04/13(水) 23:53:27.56
>>839でURLを改行してるのはなぜかNGに引っかかったからで、あまり気にせんでくれ
0841名無しさん@そうだ選挙にいこう2016/04/13(水) 23:59:54.08
>>836
再現できなかった。
0842名無しさん@そうだ選挙にいこう2016/04/14(木) 00:03:48.90
>>839
返信どうもです
今日はもう寝ないとまずいので明日やってみようと思います
0843名無しさん@そうだ選挙にいこう2016/04/14(木) 00:08:33.04
>>841
現象でませんか
ワークブックには触らずに
ユーザーフォームのボタン以外のところを
触ったりしてると途中で応答が変わりませんか
08448082016/04/14(木) 00:09:26.89
返信遅れてすみません。
回答してくださった方、有難うございます。

教えて頂いて、ある程度のところまでは出来たのですが、まだ分からないところがあり
すみません、もう少し教えて欲しいです。


1
 �@A1に入力した時、その時間(hh:mm)がB1に表示される。
 �AH1に入力した時、その時間(hh:mm)がG1に表示される。
のところで、�@も�Aもそれぞれ出来るようにはなったんですが、
上記ふたつのVBAを1つのシートに同時に存在させるにはどう繋げたら良いのでしょうか?
つまり、2種類のVBAを入れる方法が知りたいです。

2
 上記のVBAを入れて、時間が表示される部分をロックしたままシートを保護すると、
 エラーが出てしまいます。VBAを適用させつつ、ロックして入力禁止にする事は不可能でしょうか?
 
0845名無しさん@そうだ選挙にいこう2016/04/14(木) 01:49:12.43
>>844
どこをどう直したかしらんけど
Worksheet_Changeの中身を単純に連結すればいいたけじゃね?

Private Sub Worksheet_Change(ByVal Target As Range)
'A列の処理
If Target.Column = 1 Then
・
 ・
 ・
End If

'H列の処理
If Target.Column = 8 Then
・
 ・
 ・
End If
End Sub
0846名無しさん@そうだ選挙にいこう2016/04/14(木) 05:37:29.97
>>840
URLに「sakura」が含まれるとNGになる
10年以上前にコピペ荒しが貼りまくってNGにされた
微妙に不便だし、そろそろ解除してもいいと思うんだよなあ
0847名無しさん@そうだ選挙にいこう2016/04/14(木) 08:25:44.24
A列で株価をリアルタイムに取得しています。
ある条件を満たすとB列にサインが出るようになっています。
そのサインが出た時の時間を分秒単位でC列に出したいです。
よろしくお願いいたします。
0848名無しさん@そうだ選挙にいこう2016/04/14(木) 08:44:42.07
サインをどうやって出しているのか
サインを出す時に一緒に時刻も出せば
もしくは取得の時に、サインが出る条件か判断して時刻を出せば
0849名無しさん@そうだ選挙にいこう2016/04/14(木) 08:44:45.38
>>847
VBAでchangeイベント
0850名無しさん@そうだ選挙にいこう2016/04/14(木) 09:44:39.47
>>848
そのサインが出た時の時間を出す関数がわかりません。
お願いいたします。
0851名無しさん@そうだ選挙にいこう2016/04/14(木) 09:58:17.94
どうやってサインを出しているのか分からないなら、
取得と一緒にやって
0852名無しさん@そうだ選挙にいこう2016/04/14(木) 10:18:48.21
>>847,850
「サインが表示されるセル」には計算式が入っているのでしょうか?
計算式があるとして、関係するセルが多数あるのであれば、
>>849さんが書いてる VBAでchangeイベント を使います。
具体的には、作業用セルを判定用に確保しておいて、初期値を何か設定しておきます。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
もし「判定用セルが初期値」and「サインが表示されるセルの値がサイン」ならば
C*セルにシステム時刻を設定 + 判定用セルの値を変更
※シート上の変更のあったセルの位置情報はまったく用いません。シート上に変更がある都度
判定用セルの値とサインが表示されるセルの値をチェックしているだけです。
End Sub
もし「サインが表示されるセル」が多数あるなら判定用のセルも多数必要になり、
すべての判定用セルとサインが表示されるセルのペアの数だけ毎回チェックすることになります。。
0853名無しさん@そうだ選挙にいこう2016/04/14(木) 12:54:06.65
>>813
レーベンシュタイン距離でググれ
0854名無しさん@そうだ選挙にいこう2016/04/14(木) 13:24:18.37
>>850
Range("C1") = Date$ & Time$
0855名無しさん@そうだ選挙にいこう2016/04/14(木) 16:51:12.74
同一シート内で、セル範囲ごとに書式設定をロックすることってvbaなしで可能ですか?
0856名無しさん@そうだ選挙にいこう2016/04/14(木) 17:27:18.30
A1のセルに「http://echo.2ch.net/test/read.cgi/bsoft/1455722222/」があったとして
これの「/」の数を数えるにはどうしたら良いでしょうか?
0857名無しさん@そうだ選挙にいこう2016/04/14(木) 17:49:02.88
>>856
=LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))
0858名無しさん@そうだ選挙にいこう2016/04/14(木) 17:51:32.05
>>857
できました。
お手数をおかけしました。
0859名無しさん@そうだ選挙にいこう2016/04/14(木) 21:55:25.47
=+IF(AND(C1>=LEFT(B1,FIND("〜",B1)-1)*1,C1<=RIGHT(B1,LEN(B1)-FIND("〜",B1))*1),"ok","ng")

という関数を以前教えていただいて、使ってますが
C1に数値が入力されるまでは、エラーが表示されずに、空白のままにしたいのですが、
どうすれば良いでしょうか?
0860名無しさん@そうだ選挙にいこう2016/04/14(木) 22:05:03.70
IFERRORでくるむ
0861名無しさん@そうだ選挙にいこう2016/04/14(木) 22:14:16.83
=+IF ?
0862名無しさん@そうだ選挙にいこう2016/04/14(木) 22:25:03.08
式を+からはじめるのはLotus1-2-3の名残り
08638592016/04/14(木) 23:05:24.12
すみません情報が足りませんでした。
当方、excel2000なので、IFERRORが使えない状況です。
ISERRORでくるんだところ、B1,C1ともに空白であれば、空白なんですが、
B1に入力されると、自動で"NG"がついてしまいます。
C1が入力されるまでは、空白でいて欲しいのですが、どうでしょうか?
0864名無しさん@そうだ選挙にいこう2016/04/14(木) 23:37:27.80
IF(C1=″″,″″,
を頭に付けりゃいいんじゃね?
0865名無しさん@そうだ選挙にいこう2016/04/14(木) 23:37:46.60
>>863
出来ない事はないが 君の今のレベルだと
作業列 使った方が 楽だし確実だと思うよ
0866名無しさん@そうだ選挙にいこう2016/04/14(木) 23:46:31.62
>>865
作業列がレベル低いみたいな言い方だな。
嫌なやつ
0867名無しさん@そうだ選挙にいこう2016/04/15(金) 05:59:35.25
>>866
本人というよりバージョン的な話だろ
作業列を使わないと処理不可になってる
0868名無しさん@そうだ選挙にいこう2016/04/15(金) 12:40:23.37
作業列つかわないほうがレベル低い
0869名無しさん@そうだ選挙にいこう2016/04/15(金) 12:50:26.67
作業列使うとレベル低いと言われることが多いのは確か
相手に合わせて使うかどうか決めるしかないな
0870名無しさん@そうだ選挙にいこう2016/04/15(金) 13:03:40.89
何でもかんでも質問して、本当に申し訳なく思いますが、作業列というと、具体的にどういう事なのでしょうか?
0871名無しさん@そうだ選挙にいこう2016/04/15(金) 13:50:48.93
>>870
君が >>808さんであるなら >>811さんが書かれてると思うが
0872名無しさん@そうだ選挙にいこう2016/04/15(金) 14:54:48.90
式中で関数の変数束縛とかできれば作業列とか要らなくなるのにね
0873名無しさん@そうだ選挙にいこう2016/04/15(金) 15:07:45.00
"関数の変数束縛"この意味が分らんけど
ユーザ定義関数(要VBA)で結構複雑な条件もできたりする事もある
0874名無しさん@そうだ選挙にいこう2016/04/15(金) 16:45:21.03
ビジネスレポートで売り上げが伸びないのは人気のせいだと書いたら怒られた
0875名無しさん@そうだ選挙にいこう2016/04/15(金) 16:55:24.67
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

あるファイルを読み込んで、指定したシートの余分な行を判定して、複数行削除するということをやろうとしています。
処理自体は出来たのですが、

(1) 読み込むファイルのシートが改行ページプレビュー表示で、読み込み後に標準表示に変換(ActiveWindow.View = xlNormalView)した場合

と

(2) 読み込むファイルのシートを最初から標準表示にしておいた場合

とでは、処理速度が5倍くらい違います。※(2)の方が速い
この原因と対策が分かる方、よろしくお願いいたします。
0876名無しさん@そうだ選挙にいこう2016/04/15(金) 18:14:49.04
>>873
式の変数束縛の方が正しかったかも
変数使えると嬉しいね程度の意味合いよ

=IF(foo=A1, foo&foo, foo) where foo:=RIGHT(B1, 2)

みたいな。良い例ではないけど
0877名無しさん@そうだ選挙にいこう2016/04/15(金) 20:03:34.02
>>875
改行ページプレビューから標準に戻したときに
Sheet1.DisplayPageBreaks = True になっているからじゃなかろうか?
(※標準表示時にも表示される黒い点線の改ページ表示)

おそらく改ページの再計算が1回の行削除メソッド(.Delete)ごとに行われているんでは?
ActiveWindow.View = xlNormalView の後に
Sheet1.DisplayPageBreaks = False を追加で入れてみるとか
08788752016/04/15(金) 20:29:40.82
>>877
おっしゃる通りでした
期待通りの結果になりました!
迅速な回答ありがとうございました(^-^)/
0879名無しさん@そうだ選挙にいこう2016/04/15(金) 21:07:54.49
>>839
名前は数式のC1:C3とかまで消えるので無理っぽいです
下の方法がよくわからないんですけど、具体的にどうやればいいのでしょうか?
下の方法でいろいろやってるのですが上手くいきません・・・
0880名無しさん@そうだ選挙にいこう2016/04/15(金) 21:50:22.11
>>876
セル内変数とでも呼ぶのかな
変数使えたらほぼ全てのことができるようになるんだけどね

>>879
別ブック・ワークシート名は非表示で、セル範囲は残したいってこと?
ならindirect()しかない

book2でbook1のa1セルを取得したい時
book1
A1=任意のデータ

book2
B1="[Book1.xlsx]Sheet1!"
c1=INDIRECT(B2&"r"&1&"c"&1,0)

これでbook2のc1に任意のデータが表示される
0881名無しさん@そうだ選挙にいこう2016/04/15(金) 21:52:14.35
>>861
その数式書いた本人だけど、=より+で数式始めたほうが書きやすいからそうしてるだけ
+if( 〜
と入力すると
=+if( 〜
に変換される
0882名無しさん@そうだ選挙にいこう2016/04/15(金) 22:07:58.46
>>880
あ、説明へたくそですいません。そういう事ですw
式が短くなれば修正しやすくなるので短くしたい感じです
indirectは参照先のブックを開いてないといけないらしいのでないかなぁ
0883名無しさん@そうだ選挙にいこう2016/04/16(土) 00:39:29.72
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

(A10:A**)**は増える場合アリで

A10〜下に会員番号(連番)を入れて会員数が何人増えたかって合計をセルに出したいです。

ただ(A10:A30〜A40)とか日によって可変するので会員番号の大きい方から
小さい方を引いて+1で出してます。
またその日の状況によってはA10からスタートしない場合もあり
(MAX-MIN)+1で確実にでるかな?と心配になります。

というのもA列には会員番号以外の数字も入る場合がアルかもしれないので。
SAMで出来るとか聞いたんですがSAMって合計するだけですよね?
行の数だけわかればいいんですが。
ちなみに会員番号は1からせいぜい1000〜1500です。
一ヶ月ごとにゼロからカウントしなおしてます。
0884名無しさん@そうだ選挙にいこう2016/04/16(土) 00:46:05.00
>>883
そのシートって会員番号以外には情報ないの?
例えば

A B
001 2016/4/16
002 2016/4/17

みちあに日付や自己億が入ってたりシないの
0885名無しさん@そうだ選挙にいこう2016/04/16(土) 01:15:09.89
>>884
ありがとうございます。

日にちごとで日報を作成してるんですが

基本A列の10から会員番号が入り、Bには性別、C以降は氏名など個人情報。
ただ入会が多い日はA9以前のいらない特記事項などの行8行を削ったりして
A3とかからスタートしたりします。
昨日430番まで行ったら今日は431からカウント、大体30人ぐらい日に加入あり
用紙がA3のヨコサイズなので40人とかになるとAには入らなくなり
横のJ2とかから入れることになります。
ただJの下の方には他の数字が入る事も考えられます。
0886名無しさん@そうだ選挙にいこう2016/04/16(土) 01:29:23.20
>>885
難しい

関係ない数値
1002
1003

会員番号
1000
1001

などは判別つかない
作業列で抽出したほうがいいかも
0887名無しさん@そうだ選挙にいこう2016/04/16(土) 01:42:58.10
>>885
特記事項が数字以外に限定されるなら
=COUNT(A:A)+COUNT(J:J)
みたいな計算式を考えもするが
会員番号にアルファベット混じりがあったらこの方法は無理だね
0888名無しさん@そうだ選挙にいこう2016/04/16(土) 07:57:34.18
>>883
SUMでわかるって話は、配列数式の話じゃないかな?
会員番号の上2桁が数字で特記事項上2桁に数字が来ないという前提だと
=SUM(ISNUMBER(LEFT(A:A,2)*1)*1)
CTRLキー+SHIFTキー+ENTERキーで確定みたいな計算式で
A列の会員番号セル数を計算可能
0889名無しさん@そうだ選挙にいこう2016/04/16(土) 10:13:58.45
vbaでしつもんなのですが、
例えばA1に1を入力
2行目のB列からN列まで数式の結果で、空白か文字列の入っているせるがあります。
1行目のB列からN列まで、2行目に値が表示されている上に連番をふりたいのですが、可能でしょうか?
A1は1だけでなく整数を入力します。

現在は、数式で行っているのですが、vbaでの処理に移行させたいと考えています。
数式は作業列にcounta関数で値の有無を判断し、
1行目にindexとmuchを組み合わせて処理しています。
0890名無しさん@そうだ選挙にいこう2016/04/16(土) 11:16:53.27
>>880
俺にレスしてた人は同じ人ですかね?
長々とお付き合いくださりありがとうございましたmm
0891名無しさん@そうだ選挙にいこう2016/04/16(土) 14:26:56.51
>>889
可能です
が・・質問内容が 具体性に欠けてるので勝手に解釈してます

'1行目のB列からN列まで、2行目に値が表示されている上に連番
Sub test()
 Dim col As Long
 Dim num As Long
 num = 1 '連番の開始番号
 For col = 2 To 14
  If Cells(2, col) = "" Then
    Cells(1, col) = ""
    Else
    Cells(1, col) = num
    num = num + 1
  End If
 Next
End Sub

多分 やりたい事とは少し違うと思うけど その辺は ご自分で修正するなりしてね
0892名無しさん@そうだ選挙にいこう2016/04/16(土) 16:42:57.47
今めちゃくちゃ困ってる

データ1:
太郎:昭島市朝日町3-5-13
花子:昭島市東町2-8
アキラ:稲城市押立1-3-5

データ2
昭島市朝日町:A学区
昭島市東町:B学区
稲城市:A学区

こういうデータがあるんですが、各学区にいるのが何人なのか出したいんです
誰がどの学区かわかればもっと嬉しいです
excelでできますかね?
0893名無しさん@そうだ選挙にいこう2016/04/16(土) 16:47:07.46
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 必要なら検索します
【4 VBAでの回答の可否】 可
0894名無しさん@そうだ選挙にいこう2016/04/16(土) 17:45:42.50
>>892
データ1,2共 どのようにデータが入ってる?
A列  B列
太郎 昭島市朝日町3-5-13

それとも1セルに名前と住所が入ってるの
A列
太郎:昭島市朝日町3-5-13

前者の方がデータ処理がやりやすいが
後者なら一旦分離しないといけない
0895名無しさん@そうだ選挙にいこう2016/04/16(土) 17:50:05.72
>>894
セルは分かれてるので後者です
0896名無しさん@そうだ選挙にいこう2016/04/16(土) 17:50:42.80
>>894
間違えた
セル分かれてるので前者です
0897名無しさん@そうだ選挙にいこう2016/04/16(土) 18:12:55.89
SUBSTITUTEでキーワードの有無を調べて比較すればかんたん
0898名無しさん@そうだ選挙にいこう2016/04/16(土) 18:17:51.07
>>897
それだと手作業で住所を打ち込まないといけないのではないですか?

データ2のセルから取った文字列でデータ1を検索したいのですが
その書式がわからないのです
0899名無しさん@そうだ選挙にいこう2016/04/16(土) 18:21:47.48
>>892,895
>>誰がどの学区かわかればもっと嬉しいです
ちょっとこれがVBAなしで思いつかないので
これを無視します(ごめんなさい)

データ1/データ2 別シート(それぞれ A列,B列にデータが入ってる)としますね

1)データ2へ 市町村毎の人数算出
 
 C1 =COUNTIF(データ1!B:B,A1&"*")
 下へオートフィル

2)データ3(別シート)へ学区毎の人数算出
  A列   B列
1 A学区  =SUMIF(データ2!B:B,A1,データ2!C:C)
2 B学区  =SUMIF(データ2!B:B,A2,データ2!C:C)

B1を下にオートフィルすればいいです
0900名無しさん@そうだ選挙にいこう2016/04/16(土) 18:45:49.86
>>899
おおおおおおお!ありがとうございます!上手くいったようです!
VBAは初心者ですが普段SQLの勉強してたりするのでVBAでもありがたいですよ!
でもこれだけでも助かります!ありがとうございます
0901名無しさん@そうだ選挙にいこう2016/04/16(土) 22:03:45.28
>>891
ありがとうございます!
0902名無しさん@そうだ選挙にいこう2016/04/16(土) 23:20:53.48
意識高い系の院卒がExcelが嫌で嫌で退職したってよ。
0903名無しさん@そうだ選挙にいこう2016/04/16(土) 23:34:27.31
Excelは生産性をげる悪魔のツール
0904名無しさん@そうだ選挙にいこう2016/04/17(日) 00:20:00.65
げる
0905名無しさん@そうだ選挙にいこう2016/04/17(日) 00:55:14.55
お願いします。
今まで、あるシートの最終行(行数)を取得するのに
lastRow = ReadSheet.Cells(55550, 1).End(xlUp).row
というのを使っていたのですが、
思った通りいかないときがあり、見てみたら
たまたまそのシートが真っ白でした。
つまり1行もないのですが、
それでも、このlastRowの値は1でした。
これ、正常ですか?

この.End(xlUp).rowというのでは、シートのデータが1行のときと0行のときの
違いを判別できないのでしょうか?
0906名無しさん@そうだ選挙にいこう2016/04/17(日) 00:59:12.03
>>905
できない
xlUpの結果が1だった場合は1列目のセルの内容までチェックするしかない
0907名無しさん@そうだ選挙にいこう2016/04/17(日) 01:01:29.01
>>905
正常です
また END(xlUp) は基本的に手動の Ctrl+↑ の動作と同じセルを参照します
0908名無しさん@そうだ選挙にいこう2016/04/17(日) 01:06:47.76
>>906
ありがとうございました。 もうひとつ教えてください。

あなたのお答えを拝見し、 lastRow = ReadSheet.Cells(55550, 1).End(xlUp).row
よりも前に、外から全体を包むように、

If Not IsNull(ReadSheet.Cells(1, 1)) Then

というのを書いたのですが、なんと、あきらかにA1の値はNULLなのに中にぶっこんでいきやがりました。
何なんでしょうか?

とりあえず If Len(ReadSheet.Cells(1, 1)) > 0 Then でしのぎました。
0909名無しさん@そうだ選挙にいこう2016/04/17(日) 01:30:47.46
>>908
仕様です
http://officetanaka.net/excel/vba/function/IsNull.htm
Null値は、バリアント型変数が初期化されていない状態を表すEmpty値や、長さ0の文字列を表すNull文字列とは異なります。

まぁ、isnull()なんて使ってない人が大半だと思います

エクセルvbaは正直、他言語に比べてかなり独自仕様が多いです
ブラウザでいうjsに似ていますね
言語ではなく、あくまでスクリプトとして付き合っていくのが良いと思います

また、len()>0の判定はエクセルvbaでは色々と正しい判定方法だと思います
あと、自動的に解釈されるとはいえcells(i,k).valueとしたほうがミスは少ないと思います

頑張ってください
0910名無しさん@そうだ選挙にいこう2016/04/17(日) 01:36:39.38
Null文字列っておかしくない?
長さ0の文字列は空文字列
0911名無しさん@そうだ選挙にいこう2016/04/17(日) 01:44:07.70
IsEmpty(Cells(1, 1).value)
0912名無しさん@そうだ選挙にいこう2016/04/17(日) 01:45:49.15
>>910
文字列型の変数がnothing

>>911
それがいいよね
?Isnull(Cells(1, 1).value)
->False
isnull()は単純に使わないほうがいいと思う
is nothingとも違う、非常に使いにくい関数
0913名無しさん@そうだ選挙にいこう2016/04/17(日) 01:53:22.29
>>910
null文字列はStrPtr関数の戻り値が0になる。
空文字列はStrPtr関数の戻り値が0でない。
0914名無しさん@そうだ選挙にいこう2016/04/17(日) 02:03:21.32
>>909
ありがとうございます。
.valueをつける癖を身につけます。
0915名無しさん@そうだ選挙にいこう2016/04/17(日) 02:03:45.67
エクセルは既にワークシートやセルが既にあるんだからその判定はlen()でいいだろう
マイナー関数を使いこなす労力は学習コストが高すぎる
0916名無しさん@そうだ選挙にいこう2016/04/17(日) 02:03:47.04
いやだって>>909が「長さ0の文字列を表すNull文字列」って書いてるんで
それに突っ込んだだけの俺に言われても
0917名無しさん@そうだ選挙にいこう2016/04/17(日) 02:06:28.81
>>916
そこに突っ込みながらそれを考慮した回答をすれば何も問題なかった
0918名無しさん@そうだ選挙にいこう2016/04/17(日) 14:55:49.22
▼2
▼1
△4
△3
△2
△1
上記のようなものを作りたいです。
セルA列にサインが出ます。
セルB列はそのサインを数えるようにしたいです。
サインが変わったらまた1から数えるようにしたいのですが、


B1=IF(MATCH(A1,A2,0),(A2+1),"")
の数式をいれオートフィルしたら

▼#N/A 
▼#N/A
△4
△3
△2
△1

になります。
マッチ関数が間違っているのでしょうか?
教えてください。
0919名無しさん@そうだ選挙にいこう2016/04/17(日) 14:57:54.69
>>918
サインって何?セルの値のこと?
0920名無しさん@そうだ選挙にいこう2016/04/17(日) 15:18:03.81
>>918
=IF(A1=A2,B2+1,1)
0921名無しさん@そうだ選挙にいこう2016/04/17(日) 15:33:37.89
>>918
マルチいくない

>>1 9マルチは嫌う人が多いのでなるべく避けましょう。マルチをすると、逆に回答は得られにくくなると思ってください。
0922名無しさん@そうだ選挙にいこう2016/04/17(日) 16:48:10.59
>>920
できました!
教えていただきありがとうございました。
0923名無しさん@そうだ選挙にいこう2016/04/17(日) 19:20:43.57
=NOW()
↓
2016/4/17 19:16

が書かれたセルに対して

過去の記録時間
2016/4/15 5:57

が書かれたセルの
差分を3つめのセルに表示させるにはどのように関数を書けばいいのでしょうか?


2016/4/17 19:16  - 2016/4/15 5:57  =差分計算・・
0924名無しさん@そうだ選挙にいこう2016/04/17(日) 20:25:49.63
>>923
普通に引き算して秒なら書式設定を[s]、分なら[m]など
a1=now()
b1=2016/4/15 5:57
c1=b1-a1
0925名無しさん@そうだ選挙にいこう2016/04/17(日) 20:34:33.71
シリアル値がなんなのかわかってれば出ない質問
0926名無しさん@そうだ選挙にいこう2016/04/17(日) 20:41:00.00
あーそれな
シリアル値でぐぐって勉強したほうがいい
0927名無しさん@そうだ選挙にいこう2016/04/17(日) 20:41:43.91
引き算して1900/1/1〜
ってのはわかりにくい
書式勝手に変わるのやめてほしい
0928名無しさん@そうだ選挙にいこう2016/04/18(月) 04:12:21.93
ぐぐっても該当する事象がなかったのでふたつ質問させてください。

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010(「保存形式excel97〜2003テンプレート」のエクセルファイルを用いている)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

・エクセルファイルα(あるいくつかの製品品番列とそれに付随する情報A列、品番は半角英数を直接入力されている)
・エクセルファイルβ(エクセルファイルαと共通する品番を含むいくつかの品番列とそれに付随する情報B列、品番は半角と全角が混在している)
上記ふたつを、VLOOKUP関数を用いてエクセルファイルα'(半角で入力された品番列とそれに付随する情報A列とB列)にしようとしています。
そこで、まずファイルβの品番をASC関数を用いて半角に統一しました。(列挿入→関数セル作成→できた半角品番の値を選択してコピペ)
次にVLOOKUP関数を用いようとしているのですが、ここで質問です。
検索値→ファイルαの品番列
範囲→ファイルβの情報A列
文字列→ファイルβの品番は1列目に入力してあるので1
検索方法→0
とすると#N/Aを返されるのですが、

Q1.VLOOKUP関数の入力のしかた自体に間違いはないですか?

ヘルプを参照すると範囲内左端の最小値より低い値が検索値にあるとダメのようですが、範囲に指定した列の左端は全角カナだったので理解が及んでいません。
もうひとつ、ファイルβでASC関数で変換後値を貼り付けたセルの左上に緑の三角形が出たのでぐぐったらエラーの疑いありマークらしいのですが、

Q2.値を貼り付けた品番セルを選択したあと数式バーを適当にクリックして入力モードにし、その後適当なセルを選択すると品番セルの値が変換前の2byte文字混在状態に戻ってしまいます。これの対策を教えてください。

VLOOKUP関数で参照するセルに数式(関数)が入力されているとエラーを返すようなので、関数の内容が正しければこれが#N/Aの原因かと思っているのですが、上記の操作をしなければ見た目には数式バーと値は同じ半角英数が見えており、ASC関数の痕跡は見えません。
セルの書式設定は標準でしたが、値にしてみたりしても改善しませんでした。
ご教示をどうかお願いいたします。
0929名無しさん@そうだ選挙にいこう2016/04/18(月) 08:32:37.28
vlookupで1列だけ指定しても意味ないんじゃないの
0930名無しさん@そうだ選挙にいこう2016/04/18(月) 09:08:20.12
>>929
その列に元データが存在するかどうかを調べる時によく利用している。
0931名無しさん@そうだ選挙にいこう2016/04/18(月) 11:36:28.33
関数の中の、セルの自動変化について困っており、質問させて下さい。

=IF(ISERROR(VLOOKUP(B9,data!D2:F1175,2,FALSE)),"",(VLOOKUP(B9,data!D2:F1175,2,FALSE)))

という関数を


=IF(ISERROR(VLOOKUP(B9,data!D2:F1175,2,FALSE)),"",(VLOOKUP(B9,data!D2:F1175,2,FALSE)))
=IF(ISERROR(VLOOKUP(B10,data!D2:F1175,2,FALSE)),"",(VLOOKUP(B10,data!D2:F1175,2,FALSE)))
=IF(ISERROR(VLOOKUP(B11,data!D2:F1175,2,FALSE)),"",(VLOOKUP(B11,data!D2:F1175,2,FALSE)))
・
・
・


というように、Bの部分だけ変えて行きたいのですが、エクセル上で引っ張ると
D,Fの部分も順次変化していってしまいます。
何か良い方法は無いでしょうか?宜しくお願いします。
0932名無しさん@そうだ選挙にいこう2016/04/18(月) 11:38:25.88
絶対参照にするといいよ
0933名無しさん@そうだ選挙にいこう2016/04/18(月) 11:43:10.79
>>931
変えたくない部分に$を付ける
B9→$B$9
B9→$B9
B9→B$9
0934名無しさん@そうだ選挙にいこう2016/04/18(月) 12:14:54.19
返信有難うございます。。
絶対参照をググり、F4キーを押す事で、$が付いて、固定できました。
有難うございました!
初歩的な質問、すみませんでした。
09358632016/04/18(月) 12:50:34.96
先日作業列について質問したものですが、目的上、
やはり作業列は使わずに、>>863の事を実現したいです。

実現させたい事をもう一度まとめますと
�@B1に数値の範囲が入力されている。(例:5〜7)
�AC1に数値が入力される
�BD1に、C1の数値がB1の範囲内であれば○、範囲外であれば×と入力される
 ※B1とC1に数値が入力されるまで、D1は空欄になっている。

です。�BのD1に入る関数を教えて頂きたいです。

環境はExcel2000で、今は
=+IF(AND(C1>=LEFT(B1,FIND("〜",B1)-1)*1,C1<=RIGHT(B1,LEN(B1)-FIND("〜",B1))*1),"○","×")
という関数が入っていますが、これですと
・B1、C1共に空欄→D1に"#VALUE!"
・C1が空欄→D1に"×"
となってしまいます。

何度も同じような質問をしてすみません。
宜しくお願いします。
0936名無しさん@そうだ選挙にいこう2016/04/18(月) 13:22:56.89
=IF(OR(B2="",C2=""),"どっちか未入力","○か×")
こんな感じから詰めてきたいって事かな。
0937名無しさん@そうだ選挙にいこう2016/04/18(月) 13:42:44.93
>>935
少しでもいいから自分なりに頑張ったほうがいい
難易度は大したことないけど、はっきり言ってかなり面倒なので丸投げされてもやる気が起こらん
0938名無しさん@そうだ選挙にいこう2016/04/18(月) 15:44:01.08
>>935
元々の質問から追っかけるのめんどいから してないので
確認させて
1)作業列はイヤ
2)B1とC1 どちらか一方が空欄なら D1は空欄 (両方そろって入った時のみ 計算させる)
3)数式の計算でエラーがでた場合 空欄にしたい (IFERROR関数は使えない)
でいいのかな?

作ってみたけど
IFERROR関数使えればまだいいけど 使えないと 作業列使った方が 楽な感じになったぞ
それでも欲しい??????? 
0939名無しさん@そうだ選挙にいこう2016/04/18(月) 15:55:12.77
>>938
その確認事項で間違い無しです。
欲しいです。丸投げしてしまい、本当に情けないですが、教えて欲しいです。
宜しくお願いします。
0940名無しさん@そうだ選挙にいこう2016/04/18(月) 16:09:32.09
>>939
=IF(ISERROR(IF(OR(B1="",C1=""),"",IF(AND(C1>=LEFT(B1,FIND("〜",B1)-1)*1,C1<=RIGHT(B1,LEN(B1)-FIND("〜",B1))*1),"○","×"))),""
,IF(OR(B1="",C1=""),"",IF(AND(C1>=LEFT(B1,FIND("〜",B1)-1)*1,C1<=RIGHT(B1,LEN(B1)-FIND("〜",B1))*1),"○","×")))

これ 後で修正等したい時どうする??? 作った俺でさえ 修正等メンテするの 嫌だぞ
なので これは こうすれは出来るよって参考数式と思って下さい
後で ああしたい こうしたいと 言われても ※スルー※ するよ

※書き込み時 "長すぎる行があります"って2CHサーバーに言われたので 数式を途中で改行してます
0941名無しさん@そうだ選挙にいこう2016/04/18(月) 17:56:56.04
>>940
優しいな
回答してからの苦言だから説得力あるよ

オレは作業列ダメって質問はスルーしてる
0942名無しさん@そうだ選挙にいこう2016/04/18(月) 20:53:42.30
そもそもバージョンが2000だっていうんだから長い数式は認識しないだろうに
作業列を使わないと無理だね
0943名無しさん@そうだ選挙にいこう2016/04/18(月) 21:15:09.49
>>942
940です

そなんだ 知らなかった
ま俺の元々の趣旨は "長い複雑な数式つくって どうするの? メンテ出来るの?"だから
どっちでも いいけど
0944名無しさん@そうだ選挙にいこう2016/04/18(月) 21:17:47.43
>>940
昔こういうのよく書いてたわ。ややこしくてややこしくて仕方なかったけど、何故か楽しかった記憶がある。
今思えば仕事するふりをしていたんだろうな
0945名無しさん@そうだ選挙にいこう2016/04/18(月) 21:55:43.44
楽しめてるうちはいいんだけど その内ウザったくなって
「誰だこんな数式作ったヤツは!!!!!!!」って発狂しそうになると
0946名無しさん@そうだ選挙にいこう2016/04/18(月) 22:00:03.15
>>944
一年ぐらい前につくってコピペして使っていた数式を今日改めて見て吹いた俺
無駄にOFFSET使いまくって見にくいことこの上なかったw

無意味に複雑にすると自分のレベルが上がったように当時思えたんだろうな

無論、無意味に複雑な式を単純な式に切り替えた
0947名無しさん@そうだ選挙にいこう2016/04/19(火) 00:42:06.86
すんません、セルにプルダウンの選択が設定されてるセルに
tabで移動してそのままキーボードで(マウスに頼らず)選択して確定までする方法
ありますか?
0948名無しさん@そうだ選挙にいこう2016/04/19(火) 00:45:19.49
>>947
alt+↓ でプルダウン
↓ 連打で選択
あとはenter
0949名無しさん@そうだ選挙にいこう2016/04/19(火) 00:45:35.69
shift+↓だったかもしれn
0950名無しさん@そうだ選挙にいこう2016/04/19(火) 03:59:25.30
vbaの配列について質問なのですが、例えば
1,3,6,10,15,16,18行目
A〜E列
のようなバラバラな範囲を配列にする事は可能でしょうか?
0951名無しさん@そうだ選挙にいこう2016/04/19(火) 04:49:24.01
どうゆう用途を想定してる?
用途によってはジャグ配列なら可能かもしれないし無理かもしれない
0952名無しさん@そうだ選挙にいこう2016/04/19(火) 06:35:09.22
>>950
可能ですよ
0953名無しさん@そうだ選挙にいこう2016/04/19(火) 11:37:51.83
>>951
例えばですが、
シート1の1,3,6,10〜行、a~e列の値を
シート2の23,29,35,48~行、b~f列に行列を入れ替えて転記するというような事をしたいです。
行数や列数は例より多いのですが、シート1の行列数とシート2の行列数は同じです。
0954名無しさん@そうだ選挙にいこう2016/04/19(火) 12:17:05.12
Sub a()
b = Array(1, 3, 5)
c = Array(2, 4, 6)
For i = 0 To UBound(b)
'処理
MsgBox (b(i) & c(i))
Next
End Sub

こんなんでいいんじゃない
0955名無しさん@そうだ選挙にいこう2016/04/19(火) 13:30:41.13
>>953
その説明例だと行列を入れ替えになってなくね?
範囲がバラバラだとしても
4行x5列 → 4行x5列 になってるよね?

普通 行列を入れ替えは(行と列が反対になるんだから)
4行x5列 → 5行x4列 になるっしっよ?
0956名無しさん@そうだ選挙にいこう2016/04/19(火) 15:02:13.87
>>955
例が悪かったです。すみません。
実際は、行列ともに50個なので行列入れ替えしても行列数が変わりません。転記元と転記先で使用する行列番号が違うのと、転記したい範囲がバラバラなので、解決方法がわからず質問させていただきました。
>>954
Array関数を使うんですね。ありがとうございます。
やってみます。
0957名無しさん@そうだ選挙にいこう2016/04/21(木) 00:15:57.15
>>940
有難うございました。
無事、実現したいことが出来ました。
自分でも勉強して、自分の力で解決できる力を身につけます。
有難うございました。
0958名無しさん@そうだ選挙にいこう2016/04/21(木) 00:57:05.76
>>957
940です
あれ使うんだ 結構 ドM だねwww いいけど
勉強するなら 作業列の有効性を勉強しなよ マジで
0959名無しさん@そうだ選挙にいこう2016/04/21(木) 01:03:37.99
横レスだけど、俺も作業列使ったほうがいいと思う
俺の使うシートじゃないからなんでもいいけどな
0960名無しさん@そうだ選挙にいこう2016/04/21(木) 05:43:46.96
作業列禁止の環境なんだろ俺の職場もVBAはセキュリティ規定に引っ掛かるから禁止されている


割りと作業列があるとみっともないから使うなと言ってくる人は多いのも確か

作業列使うなと言うわりにメンテナンスを週一ぐらいでする羽目になっていた当時のことは思い出したくないw
0961名無しさん@そうだ選挙にいこう2016/04/21(木) 05:49:36.58
作業列をセキュリティ上の理由で禁止している会社は知ってるw
どうセキュリティに影響するのか理解できんが
0962名無しさん@そうだ選挙にいこう2016/04/21(木) 06:21:16.37
>>961
多分、サポート切れたXP使ってるので特に気をつけてるんだよw
救いようがないリテラシー
0963名無しさん@そうだ選挙にいこう2016/04/21(木) 06:30:09.84
それ以前に質問者が使ってるエクセル2000のほうが
とっくの昔にサポート切れてる

これをやめて2013とか2016とか
(あるいは使えるなら2007とか2010でもよいけど)にすれば
IfErrorが使えるから作業列がどうとか議論する必要さえなくなる
0964名無しさん@そうだ選挙にいこう2016/04/21(木) 07:29:57.86
エクセル2000は、メディアCDをコピーし
会社中のPCにインストールしたんじゃ?
0965名無しさん@そうだ選挙にいこう2016/04/21(木) 07:34:31.84
>>963
IFERROR使えても作業列を使った方がいい複雑さだと思うぞw

場合によるとExcel2000レベルの関数しか使えないExcel風アプリに使うのかなとは思う
作業列作りたくても作れないタイプのアプリがあるし
それならサポート切れ云々は無関係だし
0966名無しさん@そうだ選挙にいこう2016/04/21(木) 07:41:35.52
>>964
今時Excel2000ってそれ以外の理由ないだろw
無料のLibreOffice Calcの方が初心者には使いやすいのに
IFERROR関数は無いけど
0967名無しさん@そうだ選挙にいこう2016/04/21(木) 13:20:16.54
じゃあ作業列はありと言うことで一致となりました。
0968名無しさん@そうだ選挙にいこう2016/04/21(木) 13:23:53.05
LibreOfficeはvbaがかなり違うのがネック
a = cells(1,1).value
を調べるのに30分ぐらいかかったわ

2007とかなら3000円ぐらいで売ってるからそれ買えばいいのに
0969名無しさん@そうだ選挙にいこう2016/04/21(木) 13:59:55.94
昔Excel2000で作ったVBAも、うぶんつLibreOffice Calcで結構動くよ
Calc独自のVBA使うとExcelじゃ動かないだろうが
0970名無しさん@そうだ選挙にいこう2016/04/21(木) 14:22:03.92
互換性あったのか・・・
1から書いてたわ
0971名無しさん@そうだ選挙にいこう2016/04/21(木) 22:07:54.01
すいません教えてください

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

言葉で説明できないんでキャプったんですが見れますでしょうか?
ttp://www.dotup.org/uploda/www.dotup.org829424.jpg
B4からD14までのアンケートの表を作成してB18からE28のように表を作りたいんですけど効率のいい
方法はありませんか?
自分はとりあえず並び替えしてセルを結合して数を目で数えて作ったのですが
分かりにくいかもしれませんがよろしくお願いします。
09729712016/04/21(木) 22:10:27.35
自分が望むことは

NOがまとめられている
名前はまとめて一つに表示
理由はそれぞれ表示
票数も自動で計算

です。お忙しいところ恐縮ですがよろしくお願いします。
0973名無しさん@そうだ選挙にいこう2016/04/21(木) 22:14:25.19
>>971
まぁ色々あるけど一番手っ取り早いのがvba
考えなくていいのが好きならE5=C5&D5でcountif()で集計、重複セずにフィルタ

>>972
まとめるってのはセルの結合?これはvbaじゃないと無理
ある程度まとめて、なら上記で書いた通りにすればこんな感じになるはず
1 きつね きれい 1
1 きつね ほそい 1
1 きつね ...

あと別に忙しくもないし恐縮せんでもいいから堂々としていいぞ
0974名無しさん@そうだ選挙にいこう2016/04/21(木) 22:48:23.34
票数が同じ場合の順位のつけかたは上が優先って事だね?
意外とムズイな
0975名無しさん@そうだ選挙にいこう2016/04/21(木) 22:58:39.67
VBA使わないとやはり無理ですかね?
票数が同じなら順位にはこだわりません
上から順に票数の多い順になっていればいいので
VBA使えなかったら目視で切り取って新しいブックに張り付けるしかないですかね?
0976名無しさん@そうだ選挙にいこう2016/04/21(木) 23:04:40.35
作業列が必要だな
0977名無しさん@そうだ選挙にいこう2016/04/21(木) 23:07:59.82
ん、だからE5=C5&D5でcountif()で集計、重複セずにフィルタ
0978名無しさん@そうだ選挙にいこう2016/04/21(木) 23:16:31.95
E5にcountifを入れるのでしょうがよくわからないので数式を打っていただけませんか?
C5&D5の意味が理解できません
初心者ですいません本当に
0979名無しさん@そうだ選挙にいこう2016/04/21(木) 23:23:45.18
あぁだめだったわごめん
やっぱりvbaが手っ取り早い
0980名無しさん@そうだ選挙にいこう2016/04/22(金) 03:51:29.02
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

(A1:D4)
田中 10  鈴木 15
佐藤 20  田中 25
鈴木 30  高橋 60
木村 40  
↓
(A1:D5)
田中 10  田中 25
佐藤 20  
鈴木 30  鈴木 15
木村 40
         高橋 60

こんな感じにデータと一緒に同じ項目で行を揃える方法を教えてください。
0981名無しさん@そうだ選挙にいこう2016/04/22(金) 04:08:14.10
結論として VBA無しだと難しいよ

EXCELは データの集計なら 数式使えばなんとかなるけど
表の整形ともなると
ヒポット辺りで出来るものならいいけど
それ以外の方法の 数式でやるとかは困難で VBAを使わないと難しいよ

多分数式のみで出来たとしても かなり複雑な事になるのでお勧めしない
0982名無しさん@そうだ選挙にいこう2016/04/22(金) 05:26:20.90
980のデータ and 別シートでもいいならVLOOLUPとIFでおk
0983名無しさん@そうだ選挙にいこう2016/04/22(金) 06:26:48.85
・
0984名無しさん@そうだ選挙にいこう2016/04/22(金) 07:07:04.50
VLOOKUPって列の数をわざわざ数えないといけないから苦手
COLUMNで引き算するぐらいしかないのかな?

INDEXの方が気軽に使える
0985名無しさん@そうだ選挙にいこう2016/04/22(金) 07:54:19.86
>>984
index関数単独では vlookupの機能は実現できないが・・・
0986名無しさん@そうだ選挙にいこう2016/04/22(金) 08:17:13.80
>>984
なんの制限もないから好きにしたらいい
0987名無しさん@そうだ選挙にいこう2016/04/22(金) 10:00:24.69
3・ ・3
3・ ・3
1・2・2
1・2・2
1・5・5
1・5・5
3・ ・3
3・ ・3

A列の数値があります。
C列が作業列としてA列に数値が入ると入ります。

B列にA列を上回る数値がランダムに入るとC列の値が大きい値に変わります。
数値の値が上回らない限り、大きい数値がC列に出続けます。

A列の値が変わるとリセットされ、変わったA列の値が出ます。

このようになるC列の作業列を作りたいです。
よろしくお願いします。
0988名無しさん@そうだ選挙にいこう2016/04/22(金) 10:09:13.35
次

Excel総合相談所 122 [無断転載禁止]?2ch.net
http://echo.2ch.net/test/read.cgi/bsoft/1461287268/l50
0989名無しさん@そうだ選挙にいこう2016/04/22(金) 10:12:02.32
>>987
すまん、よくわからんが大きい方ってことでいの?
=MAX(A1:B1)
0990名無しさん@そうだ選挙にいこう2016/04/22(金) 10:12:23.49
C列にif文でやりたいこと全部ぶちこむ
ランダムとリセットはぶちこまなくていい
0991名無しさん@そうだ選挙にいこう2016/04/22(金) 10:46:42.96
>>989
3・ ・3
1・5・5
1・ ・5
1・ ・5
1・5・5
3・ ・3
3・ ・3

MAXじゃだめです。
上のようにB列の数値が出ない場合もありますので。
0992名無しさん@そうだ選挙にいこう2016/04/22(金) 10:53:35.92
>数値の値が上回らない限り、大きい数値がC列に出続けます。
あぁこれ行の事言ってたのか

=IF(A2<>A1,MAX(A2:B2),C1)
0993名無しさん@そうだ選挙にいこう2016/04/22(金) 11:24:15.12
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows8.1
【2 Excelのバージョン   】 Excel 2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


セル番号0〜10にデータがある場合、このままグラフ化すると横軸が0〜10になります
この横軸を-5〜5にする方法は有りませんか?
0994名無しさん@そうだ選挙にいこう2016/04/22(金) 11:59:43.16
>>992
できました
ありがとうございます。
0995名無しさん@そうだ選挙にいこう2016/04/22(金) 12:16:58.01
>>993
横軸用番号をふればいいんじゃね?
表に出したくないなら非表示にするとかして
0996名無しさん@そうだ選挙にいこう2016/04/22(金) 13:34:20.32
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

シート1に表の項目を完成させるため、シート2の表2つから、シート1と2
の表部分で同じ数字があったら、シート1の数字部分の横に貼り付けできる
式を教えてください。

シートの参考画像
http://www.dotup.org/uploda/www.dotup.org830081.png
0997名無しさん@そうだ選挙にいこう2016/04/22(金) 13:41:22.64
>>996
vlookupを使う。使い方詳細は検索

シート2のAC列、同じ数字がない場合は
=iferror(vlookup(a:b),"")&iferror(vlookup(c:d),"")
ある場合は結構めんどくさい
0998名無しさん@そうだ選挙にいこう2016/04/22(金) 14:12:18.76
>>996

ありがとうございます、やってみます。
シート2の表内のAC列の数字は同数はないです、表内の順番が違うだけで全部連続して個別です。
説明が足らずごめんなさい。
0999名無しさん@そうだ選挙にいこう2016/04/22(金) 14:14:33.15
うめ
1000名無しさん@そうだ選挙にいこう2016/04/22(金) 14:15:05.92
うみ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 64日 13時間 58分 4秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。