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.060007名無しさん@そうだ選挙にいこう
2016/02/19(金) 00:42:31.48任意の列の全セルに対して、データの末尾に任意の文字を挿入できますか?
例えば住所録みたいなブックがあったとして、「氏名」の列全セルの末尾に「様」を挿入するみたいな。
Office2013です。
0008名無しさん@そうだ選挙にいこう
2016/02/19(金) 00:51:06.540009名無しさん@そうだ選挙にいこう
2016/02/19(金) 00:57:57.05R.Value = R.Value & "様"
Next
とか
0010名無しさん@そうだ選挙にいこう
2016/02/19(金) 04:30:57.970"様" にする
0011名無しさん@そうだ選挙にいこう
2016/02/19(金) 10:35:23.31【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
A列に郵便番号
B列に住所
C列に地区(東京都千代田区とか)
D列に枚数
が入ってて地区ごとに集計出してる
枚数の集計はデータの小計でズバッと出してるんだけどできればB列に地区ごとのデータの個数も入れたい
今はCOUNTAを手打ちで入れてるんだけど枚数みたいにいっぺんに出すことってできますか?
データの個数が変わる場合もあるから出来ればそれに対応できるようにしたい
0012名無しさん@そうだ選挙にいこう
2016/02/19(金) 11:24:52.43B列には住所が入ってるのに、
そこにデータの個数を入れるってどう言うこと?
何を言っているのかチョット意味が分からない
0013名無しさん@そうだ選挙にいこう
2016/02/19(金) 11:25:09.41ピボットテーブル
001411
2016/02/19(金) 12:03:42.211 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.12COUNTIF使えば良いんじゃね?
LENとLEFT使って、集計抜いた文字列をワイルトガカートで検索値にして
0016名無しさん@そうだ選挙にいこう
2016/02/19(金) 12:25:39.77001711
2016/02/19(金) 12:41:35.80ありがとうございます
分かりやすく東京都○○区だけにしたけど、いろんな地区入ってるから検索値の文字数も変わってくるんだ
地区も少なければいいんだけど多くなったりもする(滅多にないが最大で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.420021名無しさん@そうだ選挙にいこう
2016/02/19(金) 21:16:29.74今回の事例の場合は、OFFSETよりINDEXの方がいいと思う
入力する度に再計算されるとなると何個入力欄が用意されているかにもよるが無駄な処理待ちが発生しやすくなる
本題は、作業列を使えば割りと簡単
0022名無しさん@そうだ選挙にいこう
2016/02/19(金) 23:54:21.02VBA使えば簡単っぽいねえ
書いてあげたいけどおら焼酎3杯目だからダメだ
誰かコード書いてあげてよ
0024名無しさん@そうだ選挙にいこう
2016/02/20(土) 09:56:38.09Dim 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.15Dim n2 As Long 忘れた
0026名無しさん@そうだ選挙にいこう
2016/02/20(土) 10:10:30.45Sub 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
002726
2016/02/20(土) 10:16:24.88集計用に行あけて集計して枚数と個数出す
既に集計の行があいてるなら上じゃ阿寒湖
002826
2016/02/20(土) 10:29:37.58そこんとこヨロシク
0029名無しさん@そうだ選挙にいこう
2016/02/20(土) 11:11:36.920030名無しさん@そうだ選挙にいこう
2016/02/20(土) 11:21:59.88入力規則のリストを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めんどくさいからブックをアップして
0032名無しさん@そうだ選挙にいこう
2016/02/20(土) 13:30:34.23すみません、会社のファイルなのでアップはできないんです…
片方のINDIRECTを消すとエラーにならないのですが、入力規則と名前の定義の両方でINDIRECTを使うことはできないということでしょうか?
0033名無しさん@そうだ選挙にいこう
2016/02/20(土) 17:18:19.74まず基本的な考え方の間違い
×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データが多いので何万行にまで数式を埋めるのは避けるべき
また、判らない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>訂正 例ですが矛盾していました。
=ADDRESS(MATCH(MAX(A1:A9),A1:A9,0),1,4)
↓結果
A5
0037名無しさん@そうだ選挙にいこう
2016/02/20(土) 18:37:28.83でいいように思うが?
0038名無しさん@そうだ選挙にいこう
2016/02/20(土) 18:51:35.15なるほど Match関数でできるのですね。 ありがとうございました。
0039名無しさん@そうだ選挙にいこう
2016/02/20(土) 18:55:42.14自分で >>35-36でMatch関数使ってるじゃん バカなの?
004035
2016/02/20(土) 19:06:28.51Match関数はまだ一度も使ったことが無く
前スレで教えてもらった通りに使ってたのでMatch関数のメカニズムがわかっていませんでした
0041名無しさん@そうだ選挙にいこう
2016/02/20(土) 20:15:02.37ありがとうございます!
月曜日にやってみます!
0043名無しさん@そうだ選挙にいこう
2016/02/21(日) 10:15:21.00こんな現象が起きるのは、関数がどんな内容か調べないで
そのまま使おうとするからなんだろうな
前スレ>>948の解答方法が正しい気がしてきた
004412
2016/02/21(日) 10:50:12.06>>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.05excel2013
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.170047名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:35:49.00ありがとうございます
どう修正したらいいでしょうか?
0048名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:38:19.730049名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:46:19.68Loop While (M-5 <= 200)
で、Mから5を引く意味と、カッコをつけるのはなぜでしょうか?
手元の書籍にない書き方です・・・
0050名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:48:07.76()をつけるのは俺の趣味
0051名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:52:18.83ありがとうございます。知らないことだらけです・・・
0052名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:58:06.12Loop While (M-5 <= 200) にすると、205までループしたので
Loop While (M <= 200) にすると、200までループしました
0053名無しさん@そうだ選挙にいこう
2016/02/21(日) 12:59:21.190054名無しさん@そうだ選挙にいこう
2016/02/21(日) 13:01:19.54Loop Whileのあとには、変数はあまり使わないべきですね。
0055名無しさん@そうだ選挙にいこう
2016/02/21(日) 13:23:20.011320 12.1
1100 11.0
上のような表があって20〜10までの値を検索すると1400〜1100までの値が出るようにしたい。
例えば11.2を検索すると1320が出るようにしたいのですがLOOKUP関数を使うと1100が出てしまいます。
完全一致の場合はその隣の値のまま。
0056名無しさん@そうだ選挙にいこう
2016/02/21(日) 13:31:21.310057名無しさん@そうだ選挙にいこう
2016/02/21(日) 13:49:05.08まあそうなんですけど実際の表は膨大なのでかなり時間がかかってしまいます。
0058名無しさん@そうだ選挙にいこう
2016/02/21(日) 13:54:10.60VLOOKUPが使えない理由は? 最速のはずだけど
ほかにはMATCHとINDEXをつかうほうほうもあるけど それは大好物のひとがほかにいるので回答はゆずる
0059名無しさん@そうだ選挙にいこう
2016/02/21(日) 14:07:17.50EXCELVBAの派遣につきたい場合、ここからどのようなスキルを身につけたらいいでしょうか?
また、EXCELVBAの派遣の求人数は多いほうでしょうか?
0060名無しさん@そうだ選挙にいこう
2016/02/21(日) 14:44:47.84VB.Netならかろうじてあるかもしれないってレベルだとおもう。
どうせこれからやるならCとかJAVAのほうが良いんじゃない?
0061名無しさん@そうだ選挙にいこう
2016/02/21(日) 14:44:53.48表が間違えてました
1400 11.0
1320 12.1
1100 15.2
これで11.2を検索すると1400が出ますが1320を出したいんです。VLOOKUP使ってもそうなりますね。
完全一致以外は数値切り上にしたいんです。
0062名無しさん@そうだ選挙にいこう
2016/02/21(日) 14:55:33.08ありがとうございます。Cとかのほうがよさげですね。
0063名無しさん@そうだ選挙にいこう
2016/02/21(日) 15:33:54.780064名無しさん@そうだ選挙にいこう
2016/02/21(日) 15:38:11.230065名無しさん@そうだ選挙にいこう
2016/02/21(日) 15:44:10.53B列を下みたいに降順ソートできるなら
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ありがとうございます。
0067名無しさん@そうだ選挙にいこう
2016/02/21(日) 16:16:42.17【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
特定のセル たとえばA1セルに何らかの文字列が入力されていた場合
別の任意のセルに たとえばC3セルに数字の1を表示したい場合関数で記述できますか?
文字が入力されていない場合は空白もしくは0が表示されているようにしたいのですが
0068名無しさん@そうだ選挙にいこう
2016/02/21(日) 16:26:27.890070名無しさん@そうだ選挙にいこう
2016/02/21(日) 18:30:45.61なぜこうなるのか最初はわかりませんでしたが
仕組みを理解するとなるほどでした
ありがとうございました。
0071名無しさん@そうだ選挙にいこう
2016/02/22(月) 00:12:40.71このワークシートの数式に、1つまたは複数の無効な参照が含まれています。・・・・・・
というのがワンクリックごとに頻繁に出ます。
オプションから自動エラーチェックをオフにしても変わりません。
エラーなのはわかってるのですがそうしないといけないのでこの表示を出ないようにする方法はあるのでしょうか。
全く仕事がはかどりません。
よろしくお願いいたします。
0072名無しさん@そうだ選挙にいこう
2016/02/22(月) 00:45:13.53自動再計算をオフ
0073名無しさん@そうだ選挙にいこう
2016/02/22(月) 10:00:52.06うまくいきました!
ありがとうございました!!
0074名無しさん@そうだ選挙にいこう
2016/02/22(月) 10:41:26.87vba出来たら使用せずお願いします。
質問失礼します。a1の時間とb1の時間を足した結果がa3の日付と一致し、かつb3の時刻の範囲(例えば8:00~17:00)の間ならa1+b1の結果をc3に表示、両方の条件を満たさなければ、空白を返すという計算がしたいので、よろしくお願いします。
0075名無しさん@そうだ選挙にいこう
2016/02/22(月) 12:49:52.15時間はシリアル値?
それによって色々変わってくると思う
0076名無しさん@そうだ選挙にいこう
2016/02/22(月) 14:03:19.06時刻表示です
0077名無しさん@そうだ選挙にいこう
2016/02/22(月) 14:59:02.05使用するデータのセル(a1,b1,a3)の書式が何に設定されている?
文字列?日付時刻?
007944
2016/02/22(月) 19:49:27.97まぁ、個人的にはもっと根本的な部分から改修すれば
今よりもっともっとはるかに楽で便利に出来そうに思えるけど、
そうなると2chでやり取りって範疇じゃなくなるし
そこまでやれるかどうかはそちらの都合もあるだろうししょうがないか。
とりあえず、少しは楽になって良かったね。
でも元は>>26さんのマクロだから俺よりそっちにお礼言ってね。
0080名無しさん@そうだ選挙にいこう
2016/02/22(月) 21:28:10.40文字列数字の表を色々集計しないといけない俺なんかもExcelのバージョンが新しければ
わざわざ掛け算をしなくても扱えるのにとか思っちゃうもんな
職場のPCだから諦めて2007を使っちゃいるが
0081名無しさん@そうだ選挙にいこう
2016/02/22(月) 22:16:23.49a3が日付でb3は標準で8:00~17:00と入力されていてあとは、hh:mmです
0082名無しさん@そうだ選挙にいこう
2016/02/22(月) 22:27:43.78>>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作成者と最終更新者はわかりますが、誰が投稿したかを調べたいです
0084名無しさん@そうだ選挙にいこう
2016/02/22(月) 22:36:30.33その状態で、A1とB1の合計で日付とする状況がわからん
42405.36 が
2016/2/5 8:38
こんな表示になっているわけじゃないんだよな?
0085名無しさん@そうだ選挙にいこう
2016/02/22(月) 23:40:50.21私の説明が悪く申し訳ありません。
a1とb1を足した結果がc3に表示されて判定させたいのですが、その表は3日分続いていまして、c3+b1をc4にいれ同様の判定を3日分させたいのです。
日付列も同様に基準プラス1日で3日分あります。
0087名無しさん@そうだ選挙にいこう
2016/02/23(火) 01:02:34.89サーバーって何?
投稿ってのは何?
0088名無しさん@そうだ選挙にいこう
2016/02/23(火) 05:57:32.15時間というのが数字としては何になるかと聞いているんだが
理解できているか?
例えば単純に8時を数字で表すなら(小数点第4位まで表示)
0.3333
17時なら
0.7083
となる
A1とB1のセルの書式設定を小数点第4位まで表示で数値にして
その結果をここに書き込んでみてくれ
若しくは、時間の数字の前に ' は入力されているか?
それなら文字列で入力されているから対処法も変わる
0089名無しさん@そうだ選挙にいこう
2016/02/23(火) 07:10:19.40せるの書式設定でh:mmにしてあります。
直接時刻を入力しています。
8:00なら8:00と入力。
シリアル値で表示すると0.3333になりますが、シリアル値で入力して計算させるのではなく時刻を入力して計算したいのですが、最初の質問の様な計算は関数の組み合わせでは不可能ということでしょうか?
現在は、vbaでやっていて会社の都合でvbaを使えなくなる為、考えていたのですが無理ならしかたありません。
お時間とらせてしまい申し訳ありませんでした。
0090名無しさん@そうだ選挙にいこう
2016/02/23(火) 07:17:05.13関数で無理とは言わないが合計して日付にするというのが難しい
合計すると翌日にまたいで、8時から17時の範囲にある場合は
C3表示とかなら簡単だけど
0091名無しさん@そうだ選挙にいこう
2016/02/23(火) 07:41:13.102016/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おっしゃる通りで時刻入力欄と日付入力欄がべつにあり、そこから入力した時刻の日付を取得し日付+時刻の値に変換したうえで最初の質問の処理をループさせています。
説明が悪くすみません。
0094名無しさん@そうだ選挙にいこう
2016/02/23(火) 10:50:01.90失礼しました
うまいこと行きました
本当に感謝です!
0095名無しさん@そうだ選挙にいこう
2016/02/23(火) 11:15:29.37遅ればせながら、ご回答ありがとうございました。
おっしゃる通りINDEX関数とMATCH関数との組み合わせで思い描いてたものが作成できました。
ご教授ありがとうございました。
0096名無しさん@そうだ選挙にいこう
2016/02/23(火) 16:18:59.97根本的なことで理解ができていないようなので説明すると
シリアル値で入力することはない。
書式が日付になっていれば、普通に日付をいれれば、内部でシリアル値になる。
そこにシリアル値を入れたら、それに合わせたおかしな日付が表示される。
書式が文字列になっていて、日付を入れたなら、それは文字列のまま。
書式が時間や日付になっていて、日付や時刻を普通に入れれば、それは内部的に
シリアル値に変換されて扱われる。
シリアル値になっていれば計算を行うことや、日付や時刻の関数を使える。
表示は日付・時刻として表示される(でも内部はシリアル値)。
という関係。
0097名無しさん@そうだ選挙にいこう
2016/02/23(火) 21:47:45.16日付データが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,"")
みたいな計算式にするのはどうだろう?
ループさせる内容によって、$を入れてやれば制御もできるだろう
009897
2016/02/24(水) 06:07:07.21C3=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ありがとうございます!
思い通りに動きました。
0100名無しさん@そうだ選挙にいこう
2016/02/24(水) 13:22:11.86ブルタウンメニューを貼り付けても
拡大している文字が反映されずサイズ11のままになります
どこが間違えているのでしょうか?
0101名無しさん@そうだ選挙にいこう
2016/02/24(水) 22:07:02.19プルダウンメニューはサイズが反映サれない
どうしても反映サせたいならvbaで1から作る
010298
2016/02/24(水) 23:13:26.45C3=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【2 Excelのバージョン 】 Excel 2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
折れ線グラフの縦軸の値の間隔をルートの2倍ずつにする方法を教えてください。
0104名無しさん@そうだ選挙にいこう
2016/02/25(木) 01:16:33.38ラベルあるいはティックマークの振り方?
軸自体がルートの2倍対応にしたいなら、縦軸データがそうなっていれば
そのようになると思うけど。
0105名無しさん@そうだ選挙にいこう
2016/02/25(木) 04:55:01.12全然気づいていませんでした。
ありがとうございます!
0106名無しさん@そうだ選挙にいこう
2016/02/25(木) 07:40:52.61計算式の中身わかってんのかね?
メンテナンスに苦しまなければいいが
0107名無しさん@そうだ選挙にいこう
2016/02/25(木) 09:10:49.92IFSにSWITCH、TEXTJOINあたりが使えそうだな。
0108名無しさん@そうだ選挙にいこう
2016/02/25(木) 10:28:37.080109名無しさん@そうだ選挙にいこう
2016/02/25(木) 16:58:52.06どうすればよいのでしょうか?
0110名無しさん@そうだ選挙にいこう
2016/02/25(木) 17:21:34.52右下のボタン、マウスオーバーで「ページに合わせる」って出るやつ
またはCtrl+ホイール
0111名無しさん@そうだ選挙にいこう
2016/02/25(木) 19:56:48.92ありがとう。
右下のボタン使うしかなさそうですね。
0112名無しさん@そうだ選挙にいこう
2016/02/26(金) 05:41:57.45MINIFSも便利そう
今まで0を除いた最低値みたいなことやるのに配列数式使ってたけど
この関数使えば必要なくなりそうだ
0113名無しさん@そうだ選挙にいこう
2016/02/26(金) 08:17:48.610114名無しさん@そうだ選挙にいこう
2016/02/26(金) 11:34:21.06例えばシートAのA列には元々数式が入力されており、B列が空白ならば何も表示しな
いというIF式をシートAの最後の行まで入れていたとします。
そのシートAの全セルを選択〜コピーして、新たなワークブックに数字として貼りつ
けた場合、A列の数式の入っていたセルも空白セルとしてペーストされますが、
全く何も入っていない空白セルとは扱われません(カウントされている状態でもいえ
ばいいでしょうか)
このとき、空白セルに見せかけた真の空白セルでないものを、元々真の空白セルとし
てペーストする、あるいは置き換えるにはどうすればよいでしょうか?
初歩的な質問ですみません、よろしくお願いいたします。
0115名無しさん@そうだ選挙にいこう
2016/02/26(金) 14:26:49.05オートフィルタで空白セルだけを表示、列全体を選択して「すべてクリア」
0116名無しさん@そうだ選挙にいこう
2016/02/26(金) 18:18:40.64[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問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詳しくありがとうございます
質問1については、セルの相対的な位置が変わるから+1でオートフィルですか
でも、これがセルではなく
[B1]2
[B2]5
とすれば、オートフィルで[B3]8になりますよね?
この違いが解りませんでした
質問2について、とても解りやすかったです
ダブルコーテーションで括ると文字列扱いは頭にはあったので、ショックでした
ROWの計算式までもが文字列として処理されてしまうってことなんですね
0119名無しさん@そうだ選挙にいこう
2016/02/27(土) 06:02:08.10余計なお世話かもしれないけど
式中の 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実際にオートフィルした時の式を見てもらいたい
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値貼り付け
0122名無しさん@そうだ選挙にいこう
2016/02/27(土) 08:13:34.15B1=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【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.73Sub 日付入力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できました。
変数使うのかな?と思っていたのですがこんな方法があったんですね。
説明、考え方も非常に解りやすく、今後に色々役立ちます。
御教授ありがとうございます。
0127名無しさん@そうだ選挙にいこう
2016/02/27(土) 13:28:58.97まぁ、こういうやり方もあるって事で参考になったなら幸いです
本当は一度シリアル値を時刻の値にしてから処理したほうが
コードとしての可読性は高まるし、
10分刻みとか5分刻みとかにも変更が容易で応用が利きやすいんだけどね
だっていきなり96掛けるとか、また96で割りなおすとか、
解説がなきゃ何やってんだか意味わかんないよね
0128名無しさん@そうだ選挙にいこう
2016/02/27(土) 19:03:20.05http://up.mugitya.com/img/Lv.1_up87081.jpg
この○、▼、■ には何入れればいいんですか?
DateとかObjectとかいろいろいじってるんですがうまくいきまへん
よろしくお願いします
0129名無しさん@そうだ選挙にいこう
2016/02/27(土) 19:49:03.950130名無しさん@そうだ選挙にいこう
2016/02/27(土) 20:41:28.88他にも間違いがあるんで○、▼、■、を埋めるだけじゃ動かない
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
0131130
2016/02/27(土) 20:57:45.14× LookIn:=xlValue
○ LookIn:=xlValues
許してチョンマゲ
0132名無しさん@そうだ選挙にいこう
2016/02/27(土) 21:02:05.56うん
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算数/数学の質問なら スレ違い
計算式見る限り 義務教育レベルで教えられる 数式に見えるが?
数学初心者って君は小学生か?(それも低学年)
ま で正しい値が出るならそれでいいじゃないの?
0136名無しさん@そうだ選挙にいこう
2016/02/28(日) 01:17:07.13ありがとうございました。
Excelの関数として上の式は適切かどうかという質問でした。本当はこう書いた方がいいですよとかありましたらお願いします。
0137名無しさん@そうだ選挙にいこう
2016/02/28(日) 01:18:40.32私は社会人ですが数学は苦手で初心者レベルです
0138名無しさん@そうだ選挙にいこう
2016/02/28(日) 01:21:51.470139名無しさん@そうだ選挙にいこう
2016/02/28(日) 08:14:47.51=(((X-1)*20)+5)+((Y*2)-1)
数式としては意図したとおりの結果が出るならどんな式でも正しいけれど、
数学としてより望ましいのはこっち
=(20*X)+(2*Y)-16
数学のマナーでは
変数項を次数 (変数同士の乗算・除算の回数) の高い順から並べて、
最後に定数項 (ゼロ次の変数項とも言える) を書くのが一応のしきたりになってる
同じ次数の変数項は特に理由がなければアルファベット順に書く
カッコは無くてもいいんだけど、読みやすさのためにあえて残した
でも、エクセルとしてなら数学の流儀に従う事が常に正しいとは限らない
まとめる事が可能な式でも、別々のカッコで分けて書いてあるほうが
「その処理の意図」が掴みやすくなったりするからあえて分けとくってのは割とよくあることで、
上で書いた式のカッコだって数学的には無用のもの
闇雲にカッコの数を気にするんじゃなくて、
その処理の意図を分りやすく反映できているかどうかや
見た目の読みやすさを基準に考えたほうがいいよ
0141名無しさん@そうだ選挙にいこう
2016/02/28(日) 09:16:27.60変だと思った理由まで書いてくれないとわからない
あと、マイナス記号は半角の方がいいと思う
0142名無しさん@そうだ選挙にいこう
2016/02/28(日) 10:01:58.46とか考えたけどコストは同じだな
0143名無しさん@そうだ選挙にいこう
2016/02/28(日) 10:32:14.68【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【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 はい(少し)
【4 VBAでの回答の可否】 可
xlsm を何度か保存していくと、
タイトルの末尾に数字が付加されるのですが、
これを編集する方法はありますか。
0146名無しさん@そうだ選挙にいこう
2016/02/28(日) 21:52:42.46EXCEL標準機能ではなく マクロで付加してると思われる
そこを特定して修正すればできると思うよ
0147名無しさん@そうだ選挙にいこう
2016/02/28(日) 22:45:27.40【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.59For
For
If ※1
Next
Next
※2
Loop
※1でForを2個抜け出し、※2に飛ばすにはどうすればいいにょ?
0149145
2016/02/28(日) 22:57:55.83プロジェクトの説明を追加したらできました。
ありがとうございました。
0150名無しさん@そうだ選挙にいこう
2016/02/28(日) 23:10:41.87goto
0151名無しさん@そうだ選挙にいこう
2016/02/28(日) 23:14:03.38ダウンローダ使ったら?
ちなみにfolderをカタカナで書く場合、一般的にはホルダーとは書かないよ
0152名無しさん@そうだ選挙にいこう
2016/02/28(日) 23:37:20.98フォルダーですね
スレチですがおすすめのダウンローダーを教えて頂くことは可能ですか?
0153名無しさん@そうだ選挙にいこう
2016/02/29(月) 00:09:23.84その要件を満たすダウンローダが必要なんでしょ?
ググって出てきたのを試せばいいだけ
0154名無しさん@そうだ選挙にいこう
2016/02/29(月) 00:20:35.04ダウンローダが使えればそっちがいいけど
VBAでやるなら
URLDownloadToFileというAPIを使う手もある
http://officetanaka.net/other/extra/tips01.htm
0155名無しさん@そうだ選挙にいこう
2016/02/29(月) 01:51:07.09ループの終了判定用にフラグを用意するって手もある
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.68150で既に最良の答えが出てるのにバカなの?
0157名無しさん@そうだ選挙にいこう
2016/02/29(月) 02:17:47.97gotoがきらいだから
0158名無しさん@そうだ選挙にいこう
2016/02/29(月) 03:23:45.11構造化というプログラミング概念では
GOTOを使用するのは御法度になってる
俺がプログラム始めた20数年前(年がバレるな)でさえ
GOTO使ったプログラム書いてたら3流以下扱いだったぜ
0159名無しさん@そうだ選挙にいこう
2016/02/29(月) 06:20:10.280160名無しさん@そうだ選挙にいこう
2016/02/29(月) 07:54:22.51構造化ねえ…
0161名無しさん@そうだ選挙にいこう
2016/02/29(月) 07:59:20.14素人からこの議論見た感じ、gotoは直接行を指定するものだから、何か要素を追加した際に行がずれた時に
gotoの指定も直さなければならず拡張性? なにそれ美味しいの? になるってことなんかね
条件分岐をすることでやたら長文になり要素の追加があり得ないなら使う選択肢もあるかもしれないが
そんな限定的状況を考えるぐらいなら使わないようにする方が良い、みたいな感じなのかな?
0162名無しさん@そうだ選挙にいこう
2016/02/29(月) 08:39:04.41このスレでする話じゃない
0163名無しさん@そうだ選挙にいこう
2016/02/29(月) 09:33:20.870164名無しさん@そうだ選挙にいこう
2016/02/29(月) 09:43:31.26昔のBASICは行番号で飛び先をしていたけど、
VBAの場合はラベルで指定するから
そういうズレは気にしなくても良くなった。
(昔は後から拡張する時のために
予め行番号を10飛ばしで付けたりしてたね。)
ただ、やっぱりループ抜けるときは
そのループにちゃんとけりをつけて抜けるべきであって
どっかにポンと飛んじゃうのは
後から見たときにコードの流れが読み辛くなる元だと思う。
0165名無しさん@そうだ選挙にいこう
2016/02/29(月) 09:56:14.47でその便利さに溺れてあっちこっちで使ってコードの流れがぐちゃぐちゃになると
(今でも言うか知らんが スパゲッティコード化する)
0166名無しさん@そうだ選挙にいこう
2016/02/29(月) 10:36:28.57マウスの設定を変える以外で…
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
0169名無しさん@そうだ選挙にいこう
2016/02/29(月) 13:53:09.470170147
2016/02/29(月) 14:52:50.67ググっても見つからなかったのでVBAかマクロならと思いこちらにきました。
ソフト板に聞いてみますね
ありがとうございます。
154>>
見てきました
かなり希望に近いです。
ただカスタマイズの方法がまったくわかりません。
ご教授頂くことは可能でしょうか?
0171名無しさん@そうだ選挙にいこう
2016/02/29(月) 15:23:58.88A3の式と結果は正しいから
何をどう修正したいのかわからん
すまん
10-(-5)=15
10+(-5)=5
0172名無しさん@そうだ選挙にいこう
2016/02/29(月) 17:25:45.60真面目に質問してるんだろうけど笑ってしまったw
SUM使うなら =SUM(A1:A2)
もしくはSUM使わず =A1-A2 ってこと?
0174名無しさん@そうだ選挙にいこう
2016/02/29(月) 19:08:44.79あと、こういう場合、動かしてるうちにスタックがオーバーフローする心配はないのかね 昔とは違うのかな
0175名無しさん@そうだ選挙にいこう
2016/02/29(月) 19:45:17.61優しくしたら他の店員のやっかみ、最低の接客だ
0176名無しさん@そうだ選挙にいこう
2016/02/29(月) 19:54:49.31「○○町8-8」みたいな住所が「○○町8月8日」とかってなる。
こういう勝手な変換って止められますか?
0177名無しさん@そうだ選挙にいこう
2016/02/29(月) 20:00:00.030178名無しさん@そうだ選挙にいこう
2016/02/29(月) 20:04:28.840179名無しさん@そうだ選挙にいこう
2016/02/29(月) 20:06:57.01型を指定すればいい
0180名無しさん@そうだ選挙にいこう
2016/02/29(月) 22:46:31.20エクセルのファイルを新規で開いて、
データ→外部データの取り込み→テキストファイル
で、住所のデータを文字として読み込む。
0181名無しさん@そうだ選挙にいこう
2016/02/29(月) 22:53:17.200182名無しさん@そうだ選挙にいこう
2016/02/29(月) 23:18:21.56Excelで開く前に住所録を加工する必要があるのか? と…
でもタブ区切りテキストの加工なんてどうすればいいんだよう。
0183名無しさん@そうだ選挙にいこう
2016/03/01(火) 06:51:39.67>>180の言うとおりのやり方で、ウィザードのなかで型を指定するステップがある。
0184名無しさん@そうだ選挙にいこう
2016/03/01(火) 08:40:07.500185名無しさん@そうだ選挙にいこう
2016/03/01(火) 11:09:24.120186名無しさん@そうだ選挙にいこう
2016/03/01(火) 15:36:17.21例えば頭から3桁で丸める場合、
123456→123000
1.23456→1.23
0.0123456→0.0123
と表示したいです。
表示を丸めたいだけなので、セルの値は丸めないでください。
よろしくお願いします。
0187147
2016/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ちょっと無理ぽいな
値を変えずに 表示のみを変えるとしたら
VBAにて 値を見てセルの表示形式を変更する必要があると思うんだけど
それには EXCELの表示形式上の 根本的な部分が解決しないとなのよ
丸め位置が整数部の時 任意桁で丸めは無理っぽいって事(3桁単位なら可)
1234367 → 1234000 (表示形式 0,"000") とは出来る
本来は 15100→ 15千円 見たいに表示させる時使う
0189名無しさん@そうだ選挙にいこう
2016/03/01(火) 21:02:32.63ルールがよくわからん
0190名無しさん@そうだ選挙にいこう
2016/03/01(火) 21:05:01.69URLDownloadToFile()を修正すればいいんじゃない?
0192名無しさん@そうだ選挙にいこう
2016/03/01(火) 21:14:26.37保存先の指定に最後の"\"が抜けてる
デスクトップのgazouフォルダに保存したいなら
C:\Users\ユーザー名\Desktop\gazou\
っていう風に、最後にちゃんと "\" を付けなきゃダメ
あと、その場合にはgazouフォルダもデスクトップ上に実在してないと
エラーが出ると思う
0193名無しさん@そうだ選挙にいこう
2016/03/01(火) 21:18:28.05Next i
の位置は 成功/失敗の表示の後 じゃないとだめよん
今のままだと 最後のダウンロードの結果は分るけど 途中失敗してても分らんよ
0194名無しさん@そうだ選挙にいこう
2016/03/01(火) 21:19:06.19自分でしかメンテしないような小規模のものならそれでいいと思う
他人が書いたコード見せられてそこそこの規模なのにgotoとか出てきたら
そいつは使えねーやつだと評価せざるを得ない
0195名無しさん@そうだ選挙にいこう
2016/03/01(火) 21:44:35.56指摘されてもなおファルダーとかホルダーってカタカナを使い続けるのはどういう神経なんだろう…
0196名無しさん@そうだ選挙にいこう
2016/03/01(火) 22:23:51.47アマチュアのままでいるなら どうでもいいけど
プログラム組む仕事だったら 即プロジェクトから外すな
0198名無しさん@そうだ選挙にいこう
2016/03/01(火) 22:55:05.67あくまで俺ん中では >>155 で良いと思ってるから書かない
0199名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:04:21.67クライアントが155とは別のを要求してるんだからさっさと書けや
使えないヤツだな
0200名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:15:11.730201名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:17:37.31>>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対価(金とは限らん)がないとクライアントとみなされない
それがお仕事っていうもの(ヒッキーには難しいかな)
このスレでクライアントの募集はしてないし
0203名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:27:05.66お前には要求してないだろ?
対象は194と196の二人w
まぁ、これら同一人物の可能性も否定できないけどなw
0204名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:29:07.05クライアントは単に依頼人と見なされるから対価は必ずしも必要とされない
バカには分からんか
0205名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:31:58.75いや、だから俺が>>155=194=201なんだってば
ちなみに>>196とか>>198とかは俺じゃない
0206名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:35:21.29いや、だからお前には要求してないだろ?
対象は194と196の二人って書いてるんだしw
でしゃばるな!ハゲ
0207名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:46:52.39クライアント=依頼人
だけど依頼は対価必要なくても請負って貰うには対価は必要になるよ
ここは善意でヒントや例を提示してくれる場所で要求する場所ではないんじゃないかな
0208名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:47:13.23なんか面白いな君w
俺の安価の付け方が悪いのか?
>>155を書いたのも
>>194を書いたのも
>>201を書いたのも
全部同一人物なんですよ
と、これで理解できたか?
0209名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:57:56.78で、対価ガー対価ガーと文句ばかり言って断るわけねwww
0210名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:58:59.25ワッチョイ(正式名称しらん)要りそうだな
0211名無しさん@そうだ選挙にいこう
2016/03/01(火) 23:59:52.200212名無しさん@そうだ選挙にいこう
2016/03/02(水) 00:02:00.93ID出てもPCとスマホで一人多重役するやつがいるから無駄www
0213名無しさん@そうだ選挙にいこう
2016/03/02(水) 00:12:47.60最終的にはロジックの正しさで判断されるんだからどうでもいい
0214名無しさん@そうだ選挙にいこう
2016/03/02(水) 00:41:16.08対価に 見合わない仕事する人いないとおもうよ(遊びやボランティア除けば)
もちろん 将来的にビジネスにつながると思えば
赤字覚悟や無料でやる事はあるけど
0215名無しさん@そうだ選挙にいこう
2016/03/02(水) 00:47:07.88一生そうやって逃げていればいいよ
0216名無しさん@そうだ選挙にいこう
2016/03/02(水) 00:52:06.010217名無しさん@そうだ選挙にいこう
2016/03/02(水) 01:03:33.31だから3つも4つもアイデアが出ないw
0218名無しさん@そうだ選挙にいこう
2016/03/02(水) 01:37:06.27Excel2007で開きました。
マクロが見たいと思い、
表示→マクロ→マクロの表示
で、
とあるマクロを選択しても編集の字が黒くなりません。
これってマクロを他人に見せないようにプロテクトがかかっているのでしょうか?
0219名無しさん@そうだ選挙にいこう
2016/03/02(水) 01:57:43.67マクロが見えて実行できるけど 編集できないならそうゆう事
あと拾ってきたところ信頼できるところ?
マクロウイルスってのがあるから あまり拾い食いは関心せんよ
0220名無しさん@そうだ選挙にいこう
2016/03/02(水) 02:11:08.98だから>>196は別人だと言っておろうがw
ついでに言うと
>>155で2つ、>>201で1つ出したから、3つは出してるぞ
君らは安価も読めなきゃ数も数えられんのかwww
0222名無しさん@そうだ選挙にいこう
2016/03/02(水) 06:41:32.77動けばいいんだよ
0223名無しさん@そうだ選挙にいこう
2016/03/02(水) 07:16:45.48業務用の利用が多く、他人に引き継ぐ可能性がそれなりにあるって話じゃね?
個人用家計簿みたいなのだったら必要ない配慮だけど
0224名無しさん@そうだ選挙にいこう
2016/03/02(水) 08:22:13.64なんとなくだけど、これだとgotoの方がシンプルでわかりやすい気がするんだけど…
俺がアマチュアだからそう感じるのかな?
0225名無しさん@そうだ選挙にいこう
2016/03/02(水) 09:31:04.710226名無しさん@そうだ選挙にいこう
2016/03/02(水) 11:12:32.13アマチュアっていうより他人の作ったマクロや
少し大きめのマクロを
後からメンテしたり仕様変更したりすることがなければ
あんまり問題ないよ
俺もキチンと勉強してないから
詳しく書くとボロがでるんで簡単な所でやめとくけど
基本的にループ処理ってのは
その内側と外側が区別されてて、
ループの命令文は自分の内側の事にしか責任を負ってないの
それは単体だろうと多重になろうと同じで、ループの中のループの事は外側のループが介入すべき問題では無いし、逆に内側のループも外側のループに直接関与すべきでない訳
多重ループから直接抜け出すという行為は
本来独立した処理である内外のループに
無用の依存関係を作ってしまうから
後から仕様変更したりメンテナンスしたりするときに
そういうことを考慮しなきゃならなくて負担が増えるんだよ
だからそういうことで無駄に苦労したくないから
一個ずつ終了条件を作って判定させるか、
あるいはプロシージャ単位という結合のさせ方で
多重ループ全体をまとめて管理するかみたいなやり方しかやらないわけです。
0227名無しさん@そうだ選挙にいこう
2016/03/02(水) 11:14:31.97>>226 は>>225に向けて書いたものです
0228名無しさん@そうだ選挙にいこう
2016/03/02(水) 11:38:08.54>>226は>>155宛でも>>225宛でもなくて
>>224宛でした
本当にスマン
0229名無しさん@そうだ選挙にいこう
2016/03/02(水) 17:13:56.30おっしゃるとおり / で解決できました。
逆に / の後ろに○○○とつければ任意の名前を付属できると考えてもいいのでしょうか?
後学のためにご教授願います。
>>193
何をやっても出来ましたと表示されていました
変更してみます
0230名無しさん@そうだ選挙にいこう
2016/03/02(水) 18:09:39.390231名無しさん@そうだ選挙にいこう
2016/03/02(水) 18:32:08.43何をやっても出来ましたとなるのはそれだけじゃないよ
モジュールの行頭(一番上の行)に Option Explicit を入れる事を勧めるよ
Option Explicit
Public Declare ・・・・
Sub sample()
・
・
な感じね
こうすると↓で"変数が定義されてません"となると思うが
If result = 0 Then
これ間違いで
If returnValue = 0 Then
だと思うよ
0232名無しさん@そうだ選挙にいこう
2016/03/02(水) 18:51:06.90>>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むしろ逆じゃね?
一人で使う分には変数なんて好きにしたらいいけど
(とはいえ例え一人でもtypo防ぐ意味でも強制したほうがいいけど)
他人も見るコードで
宣言もせずに好き勝手に変数使う奴って
頭がおかしいとしか思えない
0235名無しさん@そうだ選挙にいこう
2016/03/02(水) 19:20:36.59【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
Worksheets("Sheet1")とSheets("Sheet1")の使い分けが分かりませんo
誰か優しく教えてくださいなのですo
0236名無しさん@そうだ選挙にいこう
2016/03/02(水) 19:23:34.25田中さんが優しく教えてくれてる
http://officetanaka.net/excel/vba/beginner/09.htm
0237名無しさん@そうだ選挙にいこう
2016/03/02(水) 19:48:20.89エクセル マクロ worksheets sheets 違い でググると一番上に出るやつですねo
既に見ましたですo
0238名無しさん@そうだ選挙にいこう
2016/03/02(水) 19:49:49.93すっかりその存在忘れてたわ
0239名無しさん@そうだ選挙にいこう
2016/03/03(木) 07:07:54.09mjd?
下手に素人に理解できるコードを書くと勝手に改変始める可能性あるから
変数は宣言しないのが常識って教えられてたわ
gotoも積極的に使って他人にわかりにくいようにしたほうが良いとも習ってた
ここ見ると教えてくれた人が特殊だったみたいだな
0240名無しさん@そうだ選挙にいこう
2016/03/03(木) 08:08:50.59貴方がよほど嫌われてて
わざと使えない人間に育つように
仕組まれていた可能性もある
だいいち、他人にコード弄られたくないなら
マクロにパスワードロック掛けるのが常道じゃん
0241名無しさん@そうだ選挙にいこう
2016/03/03(木) 11:20:03.61印刷プレビューで真っ白な2ページ3ページが出てしまうんですが
印刷自体はページ指定せず全て印刷にしても1ページ目しか印刷されません。
特に困るわけではないのですが不用なページがプレビューに出てこないようにするには
どうしたら良いでしょうか
0242名無しさん@そうだ選挙にいこう
2016/03/03(木) 11:49:33.732ページ目とかになってる部分って
改ページプレビューで調整したら消せなかったっけ?
0243名無しさん@そうだ選挙にいこう
2016/03/03(木) 11:53:37.78現在、「時:分:秒」の形式の列と、その秒単位での値(仮に温度とします)の列があります。
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時間のデータには日付も入れられるんですけど、入れてますか?
日付情報も入れてあれば1週間だろうが一ヶ月だろうが
問題なくグラフに出来ます
0246名無しさん@そうだ選挙にいこう
2016/03/03(木) 14:11:09.48返事ありがとうございます。
日付情報は無いです。
手入力して時間列に結合するのがよろしいのでしょうか?
0247名無しさん@そうだ選挙にいこう
2016/03/03(木) 16:05:37.52データの規模にもよるけど、手入力ではちょっと厳しいかと思いますよ
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.95F5を使った範囲指定の一括コピーなら、1週間分の7回で済むかと
って回答に回答してスマン
0250名無しさん@そうだ選挙にいこう
2016/03/04(金) 01:05:29.64あらかじめ開いておいた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そのときのrの状態をウォッチしてみたらどうなってるの?
0252名無しさん@そうだ選挙にいこう
2016/03/04(金) 01:40:21.84×With ActiveSheet.Range("$A$1:$U$500")
○With appExcel.Worksheets(1).Range("$A$1:$U$500")
でどうかな?
ただ
workbooks.openじゃなくて
GetObject("C:\temp\Book2.xlsx")
なのはなぜ?
0253252
2016/03/04(金) 01:48:32.99あ やっぱ ごめん
GetObject("C:\temp\Book2.xlsx")
じゃそのブックのシートアクティブにならんからのselect失敗する
workbooks.openにしる
0254名無しさん@そうだ選挙にいこう
2016/03/04(金) 11:13:36.87A1〜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...
という感じです
実際は行数多いのでもうちょっと簡素化したいんですが
なにかいい関数はないでしょうか?
0255254
2016/03/04(金) 11:17:36.030256名無しさん@そうだ選挙にいこう
2016/03/04(金) 11:42:20.120257名無しさん@そうだ選挙にいこう
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それはメーカーに問い合わせるべき内容じゃない?
0259257
2016/03/04(金) 19:01:36.73アプリてんこ盛りの富士通パソコンなのでOSとofficeと必要最低限の通信系業務アプリをクリーンインストールしてもダメ。
やはりマイクロソフトコミュにティに聞いた方がよいでしょうか?
0260名無しさん@そうだ選挙にいこう
2016/03/04(金) 19:12:14.39好きにしたら?
0261名無しさん@そうだ選挙にいこう
2016/03/04(金) 20:31:13.12そういう糞の役にも立たないレスはいらない
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>>1のテンプレ(特に3,4)書いて欲しいとおもうが まあいいや
もちょっと詳しい状況聞かないとあれだけど VBA 使えばできるバズよ
0264名無しさん@そうだ選挙にいこう
2016/03/04(金) 23:19:34.71すいませんテンプレ書いてませんでした。
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
0265名無しさん@そうだ選挙にいこう
2016/03/05(土) 00:06:16.500266名無しさん@そうだ選挙にいこう
2016/03/05(土) 00:44:33.58フィルタの詳細設定で可能じゃないの? 但し先頭行は項目名を入れとく
項目名
1
2
10
4
・
・
見たいにして
それで 別セルに同じように検索条件を入れる
項目名
1
5
8
15
26
・
・
フィルタの詳細設定で
・抽出条件 選択範囲内
・リスト範囲 A1:A100
・検索条件範囲 A200:A210
でOK(元データ・条件 項目名を含める事が必要)
0267名無しさん@そうだ選挙にいこう
2016/03/05(土) 01:09:59.83じゃあ、MSのコミュニティで質問したらいいかどうか?って質問のナイスな回答くれよ
0268名無しさん@そうだ選挙にいこう
2016/03/05(土) 05:13:19.56そういうときにはスルーするんだよ
>>260みたいに役に立たない糞レスよりもはるかに有益
0269名無しさん@そうだ選挙にいこう
2016/03/05(土) 06:17:09.65有益?リソース的に?
0270名無しさん@そうだ選挙にいこう
2016/03/05(土) 08:28:25.42試してみたらできました!!
ありがとうございました!!
0271名無しさん@そうだ選挙にいこう
2016/03/05(土) 16:00:49.600272名無しさん@そうだ選挙にいこう
2016/03/06(日) 01:36:12.01メモリを使いすぎてる気がする、多分だけど写真が多すぎる。多分な。
・小さい写真だけにする
・少ない枚数にする。
・ファイル名をアルファベットだけにする
等で問題を切り分ける
また、windowsの問題のような気もする。
windows プレビュー 見れない
等で検索してみては?
>>260は有益なレスだと思う
別に法的に禁止されてるわけでもないんだし、>>260の通り好きにしたらいいと思う。
スルーされると質問者も困るだろう。
マルチもどんどんしていいと思う。
俺は自分のスキルが上がれば何でもいいしどうでもいいわ
0273名無しさん@そうだ選挙にいこう
2016/03/06(日) 06:34:36.54まぁ、どう感じるかは人それぞれかもしれないが、
仮に俺が質問者なら好きにしろと言われても何の参考にもならない
むしろ揶揄されたと感じて嫌な気分になる
第三者としてみていても同じ様に感じる者がいるだろうし
場合によってはそういう対応を嫌って質問を控えるようになるかもしれない
おれ自身も自分のスキルが上がればどうでも良い訳だけど
そのためには素材となる質問を提供する者の存在が必要不可欠なわけで
このスレに質問者が来なくなっては俺が困る
その意味でああいう役に立たない回答をするヤツは
有益どころか有害だとすら思っている
スルーは単なる無視ではなく、Object型のNothingみたいなもんだと考えれば
その問題について有効な回答が出来る人間が居ない証左とみなせるので
それ自体に意味は無くとも無益ではない
マルチは俺もどうでもいいけど、今回特に関係ないよね?
0274名無しさん@そうだ選挙にいこう
2016/03/06(日) 07:24:38.692chとMSコミュニティのマルチってことだと
だいたい、MSコミュニティで質問した方がいいかなんてここで聞くことじゃないからスレチ
もうこの話題は終わらそう、誰も何も得られない
0275名無しさん@そうだ選挙にいこう
2016/03/06(日) 07:56:56.49え、何?
もしかして>>260は「これからマルチしようとしてる奴が気に入らない」とか
そういう理由であんな糞の役にも立たないレス付けたの?
器のちっちぇー男だな
0276名無しさん@そうだ選挙にいこう
2016/03/06(日) 08:46:33.00Excel2003と2013を併用しています
.xlsは2003に、.xlsxは2013に関連付けできないでしょうか
0277名無しさん@そうだ選挙にいこう
2016/03/06(日) 09:54:27.45Office 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質問の仕方のがまずかったですかね?
うまく伝わらなかったようで…
0280名無しさん@そうだ選挙にいこう
2016/03/06(日) 11:06:59.70え、違うの?
要するに2003の側で修復すればxlsは2003に関連付けされるけど
xlsxとかxlsmとかの関連付けは変更されないから2013のままになる
って事だと思うんだけど
0281名無しさん@そうだ選挙にいこう
2016/03/06(日) 12:37:02.04いまどきマルチ騒ぎだなんて(ププププ
レベルが低いところから高いところに質問して、回答が得られたらレベルの低いところに転載してやれば神だろ?
0282名無しさん@そうだ選挙にいこう
2016/03/06(日) 12:39:34.442003でxlsxファイル使えるようにするアドイン使ってると2013あっても2003が選ばれちゃう話じゃね?
2013を修復してもアドインが優先されちゃうし
0283257
2016/03/06(日) 12:58:04.83CPU Corei7、Mem 8GB
写真1枚のサイズ 300kB程度
フォルダ内の写真 250枚以上
ファイル名 デジカメ標準 DSCXXXXXX (Xは連番)
プレビューが表示されない件に関して現時点で該当なし
EXCEL当該プログラムでプレビューが表示できない状態で、
別途エクスプローラーで同じフォルダーを開いた際には問題なくプレビュー表示されます。
写真が多すぎるのは不具合原因に近い気がします。
0284名無しさん@そうだ選挙にいこう
2016/03/06(日) 14:12:24.81あ!それかもしれません
ExcelViewerがインストールされてたかも…
すみません、クリーンインストールして試してみます
0285名無しさん@そうだ選挙にいこう
2016/03/06(日) 14:19:26.41なんとなく、もしかして英語圏の方ですか?
英語の情報のほうがネットには多いと思うので、そちらでも調べてみてはいかがでしょう
0286名無しさん@そうだ選挙にいこう
2016/03/06(日) 21:52:44.05Application.GetOpenFilename実行した時に出るウインドで
右上の方の (?)アイコンの直ぐ横の マウス乗っけると"プレビューウインドを表示します"なアイコンがない?
それが offになってるだけのような
0287名無しさん@そうだ選挙にいこう
2016/03/07(月) 17:01:58.84思いつく原因
・メモリスティックがへたれてる→一度PCにファイルを移す
・電源不足か熱を持ち過ぎなど→一度PCにファイルを移す
・プレビューは順にファイルにロックをかける。それが何らかの原因でミスしてるような気もする。jpgのバージョンやらなんやら。→どうしようもない。後述のフォーム作成
・端から順にプレビューを作成だか読み込みをしているので、プレビューの作成中かも→長時間待つ。それかPcにファイルコピーかいどう
・未知のバグかなにか→OSかexcelを再インストール。
・原因不明→ユーザーフォームかIEコンポーネント辺りでプレビューと同じ機能を持ったものを作る。
個人的にはこういう場合、原因究明するよりも作ってしまったほうが早いので、ユーザーフォームで作ってしまう。
一覧を表示するhtmlファイルを作ってもいいかもな
>>273-275,281
当てずっぽうでも何でもいいから回答手伝ってくれ
0288名無しさん@そうだ選挙にいこう
2016/03/07(月) 22:55:36.040289名無しさん@そうだ選挙にいこう
2016/03/07(月) 23:08:39.39俺のことはどうでもいいからお前もなんか考えてくれ。何でもいい
0290名無しさん@そうだ選挙にいこう
2016/03/08(火) 00:11:46.95性能的にはグラフィックメモリやらの仕様も確認とか 別画面でタスクマネージャ開いて動きを確認するとか
あと、365ってのの仕様が不明だが、よくありがちなのはテンポラリファイルが肥大してるだの
削除し切れて無くて過去の遺物がぞろぞろ居るとか が原因なんてこともありがち
テンポラリの確認は、フォルダオプションで隠し・・や保護されたオペ・・辺りを不可視から可視に変えて見て
0291名無しさん@そうだ選挙にいこう
2016/03/08(火) 02:09:26.65ACCESSを長年使っていたこともあり、エクセルのVBAも、だいたいのことは理解したつもりです。
教えていただきたいというか、案内していただきたいのですが、
フォームなどを多用した、いかにも「ひとつのシステム」というレベルまで作り込んだ
エクセルファイルを見てみたいのですが、どこかに見本になるようなものを入手できないでしょうか?
アクセスでは、タイトル画面やメニューフォームを作って、そこから入力フォームや帳票印刷などに
移動させるのをよく作ってるのですが、エクセルではそういうのをどう作るのが通例なのか見てみたいです。
どこかにないでしょうか?
0292名無しさん@そうだ選挙にいこう
2016/03/08(火) 03:53:01.64正直、ない
みんな好き放題作っている
エクセルは入力フォームを作らずに直接表に入力するのが主流
・入力シートはデータベースのように扱い、計算や書式設定、セルの結合などは一切しない
・入力シートと出力シートは分ける
・必要に応じて設定シートや、計算の作業用シートなどを作成
変に凝ったことはせず、この辺りを守ればそれなりにいいものができると思う
0293名無しさん@そうだ選挙にいこう
2016/03/08(火) 03:56:25.79【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エクセルないからエラーでるかもしれんけど
=countif(b4:b8,"○")*-500
こんな感じ
0295名無しさん@そうだ選挙にいこう
2016/03/08(火) 04:20:52.55COUNTIFの存在すっかり忘れてました!
ありがとうございます
0296名無しさん@そうだ選挙にいこう
2016/03/08(火) 05:43:15.80【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.472007以降のエクセルならエラーを判別するIFERROR関数というのがあるけど
それ使えば?
0298名無しさん@そうだ選挙にいこう
2016/03/08(火) 09:12:39.22先に空白時の条件をまとめておいて、計算はあとにしたほうがわかりやすい
=if(or(B4="×",c4=""),"",foo)
fooの部分に空白以外の計算式が入る
わからんかったら>>297でいいと思う
0299名無しさん@そうだ選挙にいこう
2016/03/08(火) 10:27:19.48誤解させてしまったかもしれませんが×の場合は
=IF(C4>=5,D4-E4,IF(C4>=1,D4,""))
こちらの計算式ができるようにして、○の場合のみここから更に-500したいのです
そちらの計算式だとB4が×の場合だとC4に記載があっても消えてしまいました
>>297さんの言うとおりIFERROR関数でなんとか対処はできましたが、
もし2007以下の方に送らないと駄目な時だと困るので
ほかにも同じセル内でできる方法がございましたら教えていただけると助かります
0300名無しさん@そうだ選挙にいこう
2016/03/08(火) 12:51:52.94【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】否
01
0101
010101
という規則でオートフィルのように100行くらい入れたいのですが
どのようにすればよいでしょうか。
関数はどれを使ったら良いのかわかりません。お願いします。
0301名無しさん@そうだ選挙にいこう
2016/03/08(火) 13:13:38.71A1へ =REPT("01",ROW())
で下にオートフィルかな?
0302名無しさん@そうだ選挙にいこう
2016/03/08(火) 13:35:19.66ありがとうございます!
うまく出来ました≦(._.)≧
REPTとというのは初めて使いましたです
0303名無しさん@そうだ選挙にいこう
2016/03/08(火) 15:51:30.510305304
2016/03/08(火) 16:00:17.00F2 = IF(C4>=5,D4-E4,IF(C4>1,D4,IF(B4="○",0,"")))-IF(B4="○",500)
一体何やってんだか知らんけど、
式が長くなると後からメンテするのが大変だから、
もうちょっと抜本的に計算式の整理とか考えた方が良さげ
0306297
2016/03/08(火) 16:11:12.64え?
>>303は俺じゃないですけど?
もし、「297のIFERRORをスマホで試したがダメだった」
って話なら、まぁオフィスモバイルとかだとダメなのかも知れんね
持ってないから確認出来ないけども
マクロも使えないらしいね
0307名無しさん@そうだ選挙にいこう
2016/03/08(火) 16:59:25.49【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
セルの書式設定の表示形式で、_ @と定義して頭にスペースが入るようにしたのですが、
そのセルの文字の一部だけを太字にしたり、フォントを変えたりといったことができません。
セルの文字列すべてなら書式設定ができます。
こういうものなのでしょうか。
0308名無しさん@そうだ選挙にいこう
2016/03/08(火) 17:07:39.48わかりました。
ありがとうございました。
0309名無しさん@そうだ選挙にいこう
2016/03/08(火) 18:14:41.39305の関数を間違えていると思わしき部分を修正したうえで試してみたのですが、
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はい
0311名無しさん@そうだ選挙にいこう
2016/03/08(火) 18:56:04.42iserrorと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をかます
どちらにしろ、多分根本的に数式が悪いとは思う
もし可能なら、実際に何やってるか言えば誰か整理してくれるかも
0312297
2016/03/08(火) 18:59:50.890313名無しさん@そうだ選挙にいこう
2016/03/08(火) 19:05:51.80作業列一列増やして、C4が0かどうか判定させたら?
あと書式瀬底で非表示にするのはダメなの
0314名無しさん@そうだ選挙にいこう
2016/03/08(火) 20:27:15.80KB2920794をアンインストールしたら解決しました。これが誰かの役に立つことを期待して書き込みました。
0315名無しさん@そうだ選挙にいこう
2016/03/08(火) 20:48:51.72ActiveXは使わずにフォームを使うのだ
0316名無しさん@そうだ選挙にいこう
2016/03/09(水) 01:05:10.06ふむ。たしかにFm20.dllが含まれてるもんね。
ちなみにWin8.1、Excel2003でも同じ症状が出ていた。これはKB2965286のアンインストールで直った。
これにもFm20.dllが含まれていた。
0317名無しさん@そうだ選挙にいこう
2016/03/09(水) 01:11:26.31それはしらんけど、OSにデフォルトでそのdllが含まれるようになると実質削除不能の状態になる。
もしマクロを配布するにしても誰も使えないような状態になっているかもしれない。
ActiveXが完全に終了する前に移行しておいたほうがいい。
今でいう「macro4.0使い」みたいな原始人になりたければどうぞお好きに
0318名無しさん@そうだ選挙にいこう
2016/03/09(水) 01:18:26.23ありがとうございます!
とりあえず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.451 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配布はする予定がない。自営業で使う業務ソフトだから気楽なもんだよ。いざとなったら新しいPCと新しいOFFICE買えば済むんだから。
今回の件でこりたのでアップデートは極力しないようにするわ。MSのお陰で無駄な仕事が増えたわ
0321名無しさん@そうだ選挙にいこう
2016/03/09(水) 02:22:48.97自営業か。
知り合いも未だにwin95を使っている。大昔発注した古いPC用のソフトを使っている。
「仮想Pc」や「vmware」という単語を検索して使えるようになっておくと良い。
アップデートは好きにすればいいと思うしMSの仕事は無駄ではないが(両方セキュリティ面の問題解決)
仮想PCを使わないその未来は非常にヤバイとだけは言っておく。
別に進んでもいいぞ。
0322312
2016/03/09(水) 05:26:58.14説明が全然足りてないよ
「特定のセル」に入る数値の取りうる範囲は?
整数のみ?非負数限定?空欄以外に数値以外のものが入る可能生は?
○×は空欄にならないの?あるいは他のものが入る可能生は?
処理に用いる定数(「1以上5未満」とか「5以上」とかの閾値や、5000とか3000とか-500とか0.8とかの係数)は
これで全部もれなく書き出してあるの?
他にもあるなら全部書き出して
とりあえず、仮に「○×が空欄無しで常に○×どちらかが入る」という仕様なら
これを「1と0」とか「1と空欄」とかに置き換えるだけでもはるかに計算がやりやすくなる
だって○なら-500ってのと×なら無しってのを、1か0との掛け算に出来るから
それがやりたくないならこういうのを一旦作業列で数値化して
それを計算する形にしといたほうが後々修正しやすいかな
0323名無しさん@そうだ選挙にいこう
2016/03/09(水) 07:28:14.80特定のセルには1から12までの数値のみ
他はすべて書き出しました
○×はリストにしてるので他の文字は入りません
リストに全角スペースで空欄を追加しても構わないですが、特定のセルに数値を入れる時は必ず○×どちらかを入れます
リストは「1と0」や「1と空欄」でも問題ないのですが、他人に渡すので○×リストの方がわかりやすいかと思ってそうしてます
(その項目は、したかしてないかの選択なのでオンオフスイッチみたいなものです)
代替案で入れるなら「空欄と-500」が良いです
0324名無しさん@そうだ選挙にいこう
2016/03/09(水) 07:56:09.73単語と簡単な概念以上は面倒だとおもって調べていなかったけど、これからは考えてみます。
MSの言うとおりにして業務が面倒になるのはコリゴリだからアップデートは1年遅れにしますわ。
古いのが好きという訳ではなくてExcelは2007を購入したところ速度低下が酷いのとリボンを消すのにシェアウェアで5000円というのが嫌で2003へ戻しただけですわ。
0325名無しさん@そうだ選挙にいこう
2016/03/09(水) 10:23:36.98その表を並び替えでソートしたらもともと参照してあったセルではなくなるんです。
あれ、Excelのソートってこんな仕様だったっけ?
非常に困っております。
解決方法はありますか?
0326名無しさん@そうだ選挙にいこう
2016/03/09(水) 10:35:00.780327名無しさん@そうだ選挙にいこう
2016/03/09(水) 10:42:02.11それもやった。
でも結果は同じ。
0328名無しさん@そうだ選挙にいこう
2016/03/09(水) 10:48:09.660329名無しさん@そうだ選挙にいこう
2016/03/09(水) 11:27:57.21表は行が何千もあるんだ。
0330名無しさん@そうだ選挙にいこう
2016/03/09(水) 12:00:15.310331名無しさん@そうだ選挙にいこう
2016/03/09(水) 12:04:54.87その絶対参照は確かに数個の行のテスト用の表を使ってためしたときはうまくいったけど
実際のデータの数千の行がある表だとうまくいかなかったんだ。
原因はわからないけど。
0332名無しさん@そうだ選挙にいこう
2016/03/09(水) 12:07:51.980333名無しさん@そうだ選挙にいこう
2016/03/09(水) 12:29:45.300334名無しさん@そうだ選挙にいこう
2016/03/09(水) 12:48:00.99その表をソートしたら参照がおかしくなるなんてことは一度もないな
0335名無しさん@そうだ選挙にいこう
2016/03/09(水) 13:33:34.730336名無しさん@そうだ選挙にいこう
2016/03/09(水) 13:56:49.79単純にそうだと思う
0337331
2016/03/09(水) 23:33:18.23あまりわたしを怒らせないほうがいいぞ。
わたしがそんな初歩的なミスをすると思っているのか?
0338331
2016/03/09(水) 23:35:17.49たしかにVLOOKUPを使ったシートでソートはよくやるが
それでおかしくなったことは一度もない。
しかし先に書いたように
単に「=セルアドレス」で書いたものを含むシートでソートすると
おかしな結果になる。
0339名無しさん@そうだ選挙にいこう
2016/03/09(水) 23:46:01.45そんなプロのクソ操作なんて再現できねーからわからんよ。
どうしても原因教えてくれって言うなら再現するブックくれ。
0340名無しさん@そうだ選挙にいこう
2016/03/10(木) 00:02:59.20しらねーよ10年使ってる俺でも>>335のミスは経験してる
解決シたけりゃさっさとアップロードしろ俺は別に困ってないからどうでもいい
0341名無しさん@そうだ選挙にいこう
2016/03/10(木) 01:12:14.090342名無しさん@そうだ選挙にいこう
2016/03/10(木) 07:56:21.56割りとありがちな操作のような
特に二人以上で同じブックを扱う場合
保存の競合で何度も叱咤されてるから、可能な限りコピーして別ファイルにして処理するが
0343名無しさん@そうだ選挙にいこう
2016/03/10(木) 09:08:53.690344名無しさん@そうだ選挙にいこう
2016/03/11(金) 15:31:45.97【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
タイトルバーに色がつかなくて パッと見で
アクティブか非アクティブかわからないんだけど
アクティブなときにタイトルバーに色をつける設定は
どこにありますか?
0345名無しさん@そうだ選挙にいこう
2016/03/11(金) 16:16:15.89難しい質問だな
0346名無しさん@そうだ選挙にいこう
2016/03/11(金) 16:25:11.320347名無しさん@そうだ選挙にいこう
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ちゃうねん
それやってもオフィス製品はタイトルバー付かないねん
だからWindowsというよりエクセルやワードの問題やねん
0349名無しさん@そうだ選挙にいこう
2016/03/11(金) 20:02:28.80あ、そうなんか。ごめんね
俺windows10もってないからわからん。SDIやMDIが関係している気もするが、分かる人を待とう。
0350名無しさん@そうだ選挙にいこう
2016/03/11(金) 21:09:50.38【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テキトーだけど
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【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でも個人設定で「ハイコントラスト」を選ぶと色が変わるんで、レジストリ操作でなんとかできそうな気がする
0354名無しさん@そうだ選挙にいこう
2016/03/12(土) 00:26:47.08う〜ん
列数が決まってるなら数式でいける。列数が不定ならvbaが良いだろう
また、マクロの記録でいけるんじゃないか?
まくろの記録で不便なところがあったら教えて欲しい。
とりあえず思いつくのは最終行で、それは
最終行
でぐぐれば一発で出てくる
マクロの記録がわからない、マクロの記録のやり方がわからないならまた聞いてくれればいいよ
0356名無しさん@そうだ選挙にいこう
2016/03/12(土) 07:30:31.16エクセルの分析ツールの機能でヒストグラムってのがあるから
それを使えば一発とまでは言わないがかなり簡単に実現できる
(すくなくともCountIfとかはやらずに済む)
さらにそれをVBAで制御すれば、まぁ一発といって良いレベルになる
実は会社の俺のPCにはまさにそれがあるんだけど
今日は土曜日なので最短でも月曜にならないとソースコードが確認出来ない
まぁ、そんな難しいコードじゃなかったと思うから
分析ツールでヒストグラム作成する作業をマクロの記録で記録して
それをちょちょっと手直しするだけで作れそうではあるが
0357名無しさん@そうだ選挙にいこう
2016/03/12(土) 07:55:06.72>>356
ありがとうございます。ヒストグラムですね。
この元ネタを吐き出すのもVBAなので、ついでにVBAも自分でやってみようと思います。
ありがとうございます。
0358名無しさん@そうだ選挙にいこう
2016/03/12(土) 21:01:39.31ぐぐったらmaster databaseとThe original dataが出てきたのですがどう違いますか?
0359名無しさん@そうだ選挙にいこう
2016/03/12(土) 21:34:33.05「マスター」も「オリジナル」も、どっちも「ソートしてない」って意味じゃないし
状況や目的によって呼び方はどんどん変わる
「マスター」は整形や正規化が終わっていて、抽出や集計をする前の状態だろうな
基本的にソート済みかどうかは問われない
収集してからソートに限らない一切の加工をしてなければ「生データ」、これは「オリジナル」に近いけど厳密には違う
全角を半角にしたり、なんらかの修正をしてしまった物は「未ソート」とか言うしかない
0360名無しさん@そうだ選挙にいこう
2016/03/12(土) 21:37:52.97大変勉強になりました。ありがとうございます。
0361名無しさん@そうだ選挙にいこう
2016/03/12(土) 21:40:25.51Excelではそんな用語の定義はないから気にしなくていい
ソートされてないデータ、で通じる
0362名無しさん@そうだ選挙にいこう
2016/03/13(日) 03:20:42.74jsonデータはjson
この先は大抵ロクでもないデータにかわるので、データで読んでいるな
0363名無しさん@そうだ選挙にいこう
2016/03/13(日) 09:17:48.08【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「時間平均」という言葉の一般的な定義を知ってますか?
http://www.cradle.co.jp/glossary/detail/0000000164
これを踏まえれば、単に「個数の時間平均」だったら
=AVERAGE(B:B)
となります
ですが恐らく、こんな簡単な答えを望んでいるわけではないでしょう?
たぶんもっと独自の概念を「時間平均」という言葉に込めているのだと推測しています
もしそうであれば「個数を関係した時間平均」という言葉の意味が
質問内容からは判断できないので、
どんな計算結果を望んでるのかきちんと具体的に説明してください
0365名無しさん@そうだ選挙にいこう
2016/03/13(日) 11:05:40.33average関数でできますよ
0366名無しさん@そうだ選挙にいこう
2016/03/14(月) 07:03:25.58それぞれの作業列にイフ文でコピーしてケツにカウント××?つけてから計算
が楽だね
0367名無しさん@そうだ選挙にいこう
2016/03/15(火) 07:08:47.840368名無しさん@そうだ選挙にいこう
2016/03/15(火) 08:12:19.82最近ではない
0369名無しさん@そうだ選挙にいこう
2016/03/15(火) 21:50:38.83【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 無理ではない程度
【4 VBAでの回答の可否】 出来れば無しの方がいい
理系学生で主に散布図を利用しています。データを選択して散布図を選択しグラフを作るというところまではいいのですが
その後、軸の色、文字の色を黒に変更、補助線を削除、枠を追加、ラベルを追加
これを毎度やるのが面倒で仕方ないので既定のスタイルを変更したいのですが
エクセル2013でも可能でしょうか。
2010とかだとらしい記事を見かけるのですが2013のは見つけられず途方に暮れてます。
ご指導よろしくお願いします。
0370名無しさん@そうだ選挙にいこう
2016/03/15(火) 22:02:50.112007以降と2003以前は別ものに近いから仕方ない
2003は重複の削除機能すらないんだぜ
0371名無しさん@そうだ選挙にいこう
2016/03/16(水) 00:47:54.72【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.36INDIRECT を使うとできる
シート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でも問題ないけど)を選択して
下にオートフィルでいける
0373372
2016/03/16(水) 03:54:19.07式を見直したら
INT((ROW()-2)/4)+1)
の部分は
INT(ROW()+2)/4)
のほうが簡単だった
0374372
2016/03/16(水) 04:14:24.89B2と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ありの式で書くと良いと思う
0375372
2016/03/16(水) 04:19:18.03=INDIRECT("Sheet1!C" & (ROW()+1)/4)
という書き方もあった(B2,C2はもとのまま)
0376名無しさん@そうだ選挙にいこう
2016/03/16(水) 06:39:50.27実際に試してみたが、オートフィルは最初に言っている通り
A1からD4の領域じゃないと無理みたいだぞ
B1からC4をオートフィルしてみると>>371の状態にはならない
0377372
2016/03/16(水) 08:57:14.59え?
そんなはずはないと思うんだけど・・・・・・
もしかして縦の方の選択を間違えてるんじゃない?
1行めと4行めはオートフィルに必要な領域だから、
これを省くと正しい結果が得られないけど、
A列もD列も今回の式には全く関係ないよ
0378名無しさん@そうだ選挙にいこう
2016/03/16(水) 18:51:08.62【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 使えるとも
【4 VBAでの回答の可否】 否
ファイル⇒印刷 とリボン移動したときや「印刷プレビューと印刷」ボタンを押したとき
「印刷プレビューの表示」というボタンを押さないと 印刷プレビューが表示されない
これを、自動的に表示するように設定したいです
0379名無しさん@そうだ選挙にいこう
2016/03/16(水) 19:04:19.79これかな?
http://hamachan.info/win8/excel/insatu.html
0380371
2016/03/17(木) 07:07:18.35ありがとうございました。
0381質問
2016/03/19(土) 14:10:27.20【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.65A 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どうせウケを狙うならこちらのほうがよかったですよ。
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.820388名無しさん@そうだ選挙にいこう
2016/03/19(土) 17:05:49.89【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
有効なアドインとして設定されているxlmaファイルを削除したいです。
killコードでやってみましたが有効中なためか削除できませんでした。
手動でアドインチェックボックスからチェックオフした後はできました。
手動チェックオフの部分もVBAで指示できないのでしょうか?
もしくは他に方法がありますでしょうか?よろしくお願いします。
0389名無しさん@そうだ選挙にいこう
2016/03/20(日) 07:45:03.62VBAでできる
0390名無しさん@そうだ選挙にいこう
2016/03/20(日) 09:10:12.71その程度の人数なら手動でやったほううが駱駝
それとも会員何百人もいるのか
0391質問
2016/03/20(日) 09:30:17.96数式で対応できました。
0392名無しさん@そうだ選挙にいこう
2016/03/20(日) 14:42:41.22AddIns("Test_Addin").Installed = False
0393名無しさん@そうだ選挙にいこう
2016/03/20(日) 15:46:24.28あー ほほーう
いい線いってるよ! いいねいいね! でもちょっと惜しいかなー!
ありがとうございました
0394名無しさん@そうだ選挙にいこう
2016/03/20(日) 15:50:10.322
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まず重複データを取り除いたらいい
0396名無しさん@そうだ選挙にいこう
2016/03/20(日) 16:49:53.06b1=if(countif(a2:a100,a1)>0,"",a1)
下にオートフィルで重複を除外すると良い
0397394
2016/03/20(日) 16:51:13.990399名無しさん@そうだ選挙にいこう
2016/03/20(日) 17:35:30.62ピボット使うとか
0400名無しさん@そうだ選挙にいこう
2016/03/20(日) 21:30:57.350401名無しさん@そうだ選挙にいこう
2016/03/20(日) 21:42:36.17Excel のショートカット キー
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.500403名無しさん@そうだ選挙にいこう
2016/03/20(日) 22:44:12.18Excel2010まではMDI(Multi Document Interface)のウィンドウだったのが
Excel2013からはSDI(Single Document Interface)のウィンドウに変わったことによる弊害では無いかな?
0404名無しさん@そうだ選挙にいこう
2016/03/20(日) 23:06:52.130405名無しさん@そうだ選挙にいこう
2016/03/20(日) 23:17:54.34多分出来ない
新しいウィンドウで開く、で擬似的にやるしか無いと思う
0406名無しさん@そうだ選挙にいこう
2016/03/21(月) 00:54:35.71ありがとう。皆は不便に思わないのかな
0407名無しさん@そうだ選挙にいこう
2016/03/21(月) 01:54:18.30【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.49https://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普通の人はそんな操作しないからみんな不便に思わない。
0410名無しさん@そうだ選挙にいこう
2016/03/21(月) 19:06:38.77第1引数の範囲の部分は無視されてるって事でいいのでしょうか?
0411名無しさん@そうだ選挙にいこう
2016/03/21(月) 19:25:39.510412名無しさん@そうだ選挙にいこう
2016/03/21(月) 21:36:05.16できました。
大変助かりました。ありがとうございます。
0413名無しさん@そうだ選挙にいこう
2016/03/22(火) 10:19:54.19【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履歴から出現の確率を計算するだけなら
=COUNTIF(A:A,1)/COUNTA(A:A)
それ以外の方法で予測するとしたら、1の次にまた1が来る確率みたいなのを全パターン計算するとか、
1がn個連続する確率を求めるとか、複雑にやろうと思えばいくらでも方法はあるけど
0415名無しさん@そうだ選挙にいこう
2016/03/22(火) 10:44:07.25出現確率ではなく連続で来る確率が知りたいのですが方法がわかりません。
0416名無しさん@そうだ選挙にいこう
2016/03/22(火) 11:43:01.21B1=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.06100 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できないことはないけど、もうちょっとデータ整理の方法を考え直した方がいいと思う
そういうのはほかの先生がすでに作ってることも多いし
0421名無しさん@そうだ選挙にいこう
2016/03/22(火) 20:18:35.26別シート側の計算式の中に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.800423>>421
2016/03/22(火) 20:51:31.72すごい!! 神様ありがとうございます! 解決しました!!
0424名無しさん@そうだ選挙にいこう
2016/03/22(火) 21:11:39.310425410
2016/03/22(火) 21:14:43.04配列数式ってのは配列にできないセル範囲は無視するでたぶんあってると思うんですけどね
0426名無しさん@そうだ選挙にいこう
2016/03/22(火) 21:28:30.97で、教員それぞれ個々人が毎年こんな馬鹿げたことに個別に時間費やしてんのか?
そらいくら時間あっても足りなくなるわけだ 国産ソフトじゃないから腰引けてんのか?
一太郎の栄華をまだ引きずってんのか? ジャストシステムの表計算って何だっけ?
高学歴者の考えることはさっぱり判らん おれ、りこうだし、じぶんでやるし
あぁ、そうだな 自分で苦労して疲弊して途絶えとけ
「先生と 呼ばれるほどの バカで無し」
ま、たった一例をもって全体を量ってもいけないんだろうが、この程度を一教師が『2ちゃんねる』
で聞いてる って現実に驚愕するわ 戦慄すら覚える 頼むから判り易く成績で喩えた
と、言ってくれ 本業は経理だとか総務だとか・・・ なんなら現場監督でもいいから
0427名無しさん@そうだ選挙にいこう
2016/03/22(火) 22:37:23.50利口なら>>425ぐらいわかるよね
0428名無しさん@そうだ選挙にいこう
2016/03/22(火) 22:57:29.690429名無しさん@そうだ選挙にいこう
2016/03/22(火) 23:04:03.17http://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学習塾に提出された学校の成績をまとめているだけかも知れないんだし
ただ、文科省が用意したソフトは操作が非常に難解なのは事実なようで
それが間接的原因で去年の十二月に広島で生徒が自殺しているみたいね
0432名無しさん@そうだ選挙にいこう
2016/03/23(水) 06:11:22.44バージョンによる
2013以降ならその通りだが
2007以前だとエラーになる
0433名無しさん@そうだ選挙にいこう
2016/03/23(水) 06:57:25.93マクロを使う場合は、*.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ありがとうございました!
0435名無しさん@そうだ選挙にいこう
2016/03/23(水) 07:12:57.31その辺の使い分けが面倒で未だにxls以外の使用を禁止してくれる人多いよなw
0436名無しさん@そうだ選挙にいこう
2016/03/23(水) 07:26:50.57なるほどありがとうございます!
これで配列の理解が少し深まりました!
0437名無しさん@そうだ選挙にいこう
2016/03/23(水) 07:32:45.04状況にもよるんじゃね?
COUNTIFを割り算の分母に使う場合は第一因数の範囲を狭めると、数式的な理由でエラーになるし
0438名無しさん@そうだ選挙にいこう
2016/03/23(水) 08:42:52.380439名無しさん@そうだ選挙にいこう
2016/03/23(水) 09:32:08.73引数の読みは「いんすう」でもいいんだぜ
0440名無しさん@そうだ選挙にいこう
2016/03/23(水) 10:16:33.28解毒をかいどくって呼んでるのと同じだ。
間違って覚えた奴が見栄張ってるだけの痛々しい言い訳広めんな。
0441名無しさん@そうだ選挙にいこう
2016/03/23(水) 10:50:38.92本来の正しい読みはいんすうだよ
それを誤解無いようにバケガク読みしてる
0442名無しさん@そうだ選挙にいこう
2016/03/23(水) 10:52:24.280443名無しさん@そうだ選挙にいこう
2016/03/23(水) 12:08:47.61アホしか使わないからやめとけよ。
ここで知れて良かったな。
0444名無しさん@そうだ選挙にいこう
2016/03/23(水) 12:31:23.840445名無しさん@そうだ選挙にいこう
2016/03/23(水) 13:50:26.21>本来の正しい読みはいんすうだよ
これホント?
ぐぐってもそんな説出てこないよ
みんなヒキスウを主に書いてインスウとも読むとなってる
あと、それとは別次元の根本的な話だけど、
話題の発端となった>>437は引数じゃなくて因数と書いてるんで
これは弁解の余地無くまちがいだけどさ
0446名無しさん@そうだ選挙にいこう
2016/03/23(水) 14:50:59.410447名無しさん@そうだ選挙にいこう
2016/03/23(水) 14:56:30.920448名無しさん@そうだ選挙にいこう
2016/03/23(水) 15:06:15.630449名無しさん@そうだ選挙にいこう
2016/03/23(水) 15:44:48.86wikipediaなので どうかとは思ったが "説"という事なら
湯桶読み
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すいませんこれ例えばどのような式でしょうか??
0451名無しさん@そうだ選挙にいこう
2016/03/23(水) 20:57:13.03COUNTIFを割り算の分母に使う配列数式というと、種類数を求める配列数式が有名だな
0452名無しさん@そうだ選挙にいこう
2016/03/23(水) 20:58:44.83行に年月、列に名前、各人の月毎の給料が数値として記載されている表があるとします。
表の右端のセルにMax関数で一番多かった給料の数値を抜き出します。
知りたいのは、Max関数で抜き出した数値がどの月の値かを知ることのできる数式、です。
イメージとしては、Max関数の右隣のセルにその数式を入れてその値がある月を表示する、という感じです。
数式でなくても他に方法があれば教えてください。
0453名無しさん@そうだ選挙にいこう
2016/03/23(水) 21:37:08.08なるほどありがとうございます
ちょっとググってみます
0454名無しさん@そうだ選挙にいこう
2016/03/23(水) 21:49:41.15MAXしてるのが社員毎の最大給与値なら INDEX+MATCH で可能だけど
全社員の最大給与値なら
月毎の最大給与値を作業列に作ってから 抜き出した数値がどの月かを調べる(その時もINDEX+MATCHね)
あと VBA でやるって手もある
0455名無しさん@そうだ選挙にいこう
2016/03/23(水) 21:54:25.77ひつこくてすまんな 民間なら尚更効率を重視して、先輩やら経営側から
「これ使え」ってなるんじゃねーの? 功名稼ぎにひとりでしこしこ組み上げてんのか?
もっと上のレベルでしこしこならまだしも、どうかと思うぞ
新人研修でお題渡されて「こんなん出来ましたけど(2ちゃんのパクりですが、なにか?)」
ってののほうが、まだ現実味があるけれど
0456名無しさん@そうだ選挙にいこう
2016/03/23(水) 22:37:55.29社員毎の最大給料です。
index+matchですか。
一度試してみます。
ありがとうございます。
0457名無しさん@そうだ選挙にいこう
2016/03/23(水) 23:03:09.050458名無しさん@そうだ選挙にいこう
2016/03/24(木) 08:57:47.81別のエクセルファイルの特定の場所に張り付けたいんですが
どういう方法がありますか?
0459名無しさん@そうだ選挙にいこう
2016/03/24(木) 09:09:42.47「Excelで開かずに」なら別のアプリで開けばいい
あらゆるアプリで「ファイルを開かずに」ならそれは不可能
0460名無しさん@そうだ選挙にいこう
2016/03/24(木) 11:01:09.200461名無しさん@そうだ選挙にいこう
2016/03/24(木) 12:18:29.24割とある気がするorz
威圧的で自分の思い通りにならないとすぐに切れる上司が開く可能性があるファイルだと特に
事前に使用すると伝えていて、一瞬で別に保存して閉じても自分が開く瞬間に誰かが開いていると激怒されるから
そういうトラブルを防ぎたいんだろう
0462名無しさん@そうだ選挙にいこう
2016/03/24(木) 12:33:43.690463名無しさん@そうだ選挙にいこう
2016/03/24(木) 13:07:43.080464名無しさん@そうだ選挙にいこう
2016/03/24(木) 17:19:25.67BBB
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.90VBAで数式埋める方が面倒
0466名無しさん@そうだ選挙にいこう
2016/03/24(木) 17:34:55.03一つ一つ記述するということは、一つ一つコピペした方が早いかもしれませんね
ひとかたまりのデータが数百あり、元データの最終行が8400行くらいなので
気の遠くなる作業になりそうです、、、
0467名無しさん@そうだ選挙にいこう
2016/03/24(木) 17:43:16.042016ならパワークエリーでできるよ
0468名無しさん@そうだ選挙にいこう
2016/03/24(木) 17:52:39.530469名無しさん@そうだ選挙にいこう
2016/03/24(木) 17:54:35.76規則性のある単純な繰り返し作業なら、どー考えてもVBAが一番楽
もっときちんと条件出してくれたらこのスレの誰かがVBAのコード書くと思う
なんなら俺が書くかもしれない
0470名無しさん@そうだ選挙にいこう
2016/03/24(木) 18:04:49.35A1
A2
A3
B4
B5
B6
B7
B8
がひとかたまりで、各かたまり間は3行空いています
これを、
A1 | A2 | A3 | B4 | B5 | B8
にして(B6とB7は不必要)行間抜きで並べたいです
条件として何を挙げたらいいのかわからないのですが、上記で事足りますか?
0471名無しさん@そうだ選挙にいこう
2016/03/24(木) 18:12:08.100472名無しさん@そうだ選挙にいこう
2016/03/24(木) 18:43:31.87にして(B6とB7は不必要)行間抜きで並べたいです
各数値の間の|(たて棒)ってどういう意味なの?
よくわからないけど、上の人も書いてるように&かイコールで一行作って、範囲選択してコピーしたら出来ないのかな?
数値の並びと行間に規則があるなら簡単な数式で出来そうだけど。
0473名無しさん@そうだ選挙にいこう
2016/03/24(木) 18:52:36.02たぶん縦棒はセルの区切りだと思う
つまりA1〜B8が同じ行に並んでるんじゃないか?
0474名無しさん@そうだ選挙にいこう
2016/03/24(木) 19:09:15.88A 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|はセルの区切りのつもりでした 説明下手で申し訳ない
>>473さんのおっしゃる通り、横に並べたいのです
ええと、まず>>474さんの書いてくださったことを理解しに行ってきます
0476名無しさん@そうだ選挙にいこう
2016/03/24(木) 20:23:47.16やりたいことはこれです
http://i.imgur.com/DJbwYe6.png
0477名無しさん@そうだ選挙にいこう
2016/03/24(木) 21:24:43.01だいたいドット数にしたいんですができますか?
なるべくできるだけ見た感じ同じ分量だけスクロールさせたい
0478名無しさん@そうだ選挙にいこう
2016/03/24(木) 21:24:52.41Sub 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無理
0480名無しさん@そうだ選挙にいこう
2016/03/24(木) 21:29:41.360481名無しさん@そうだ選挙にいこう
2016/03/24(木) 21:32:21.94ちょこっと数式かける程度でVBA全く判読不可能なのですが
まずは解読するところから頑張りますので また質問させてください
ありがとうございます!!!
0482名無しさん@そうだ選挙にいこう
2016/03/25(金) 00:37:33.24【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】【101.5】【97.8】(-3.4)
このような結果の場合もあります。
0484名無しさん@そうだ選挙にいこう
2016/03/25(金) 00:54:15.910485名無しさん@そうだ選挙にいこう
2016/03/25(金) 01:50:32.84質問中で使われている【】と()の意味がわからない
なんとなく【】は5個(つまりB1の値ぶん)すべてそろってるってことなのかなぁ、と思うんだけど
()のほうがさっぱり理解できない
()内の数字がどっから出てきてるのかもわからないし、
「袋内の1個」を「分ける」とか「分けない」とかって表現もちょっと意味を把握しかねる
0486482
2016/03/25(金) 02:44:41.38うまく質問できず申し訳ない
例えば、
袋には同じ重さのリンゴを指定した個数入れる。【】の数字はりんご1個の重さ
袋の区別を【】で表しています
リンゴの入った袋が10袋あるとします
8袋と残りの袋どちらかのリンゴを2つを足せば必要重量になる。()なし
袋の1個を分けるというのは、
どのような組み合わせにしても必要重量にならない場合、8袋と2つで4gオーバーする。これのオーバー分が(−4)、6g足りない場合(+6)
リンゴを切って重さを調整する。調整分を()で表示
結果を式にするとこんな感じです。A3x2のx2は適当です
(【A1】+【A2】+【A4】…+【A10】)x B1 + A3x2 +()= C1
0488名無しさん@そうだ選挙にいこう
2016/03/25(金) 03:23:25.51はい、次の方〜
0489名無しさん@そうだ選挙にいこう
2016/03/25(金) 03:51:32.42さっきは個数5個を例示してたでしょ?今回10個にした意図は何?
説明するときに例えの数字を変えるのは悪手だと思うよ
>>488
お前には聞いてない
ほかの回答者の邪魔だからわからないならしゃしゃりでてくるな
0491名無しさん@そうだ選挙にいこう
2016/03/25(金) 04:50:16.40今度は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すみません、例で出した式もおかしかったです。。。
調整できるのは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まずは「絶対値」という言葉を思い出そうな
義務教育で習ったんだから
0494名無しさん@そうだ選挙にいこう
2016/03/25(金) 12:51:11.30ぜんっぜんマクロわからないのですが、コピペで全てできました!
似たようなファイルが他にもあるので、
少し勉強して応用します
ありがとうございます you saved my life mate!!!
excelってすごい!
0495名無しさん@そうだ選挙にいこう
2016/03/25(金) 18:06:16.68>>484氏が言ってるソルバーってのは
俺は使ったことがないんで良くわからないけど、
仮にVBAでやるとしても結構めんどくさそうな内容だね
10種類の要素があって、そのうち1種は0〜5個の値をとりうる
残りの9種はゼロ個か5個のどちらかの状態しか取りえない
という条件で目標値の前後5以内に収まる組み合わせ全て、
または5以内に収まらない場合には目標値にもっとも近い組み合わせをひとつ見つける
ってのが求められてる内容だけど
この条件で取りうる全ての組み合わせって30,000通りを超えるね
0496名無しさん@そうだ選挙にいこう
2016/03/25(金) 21:12:51.950497名無しさん@そうだ選挙にいこう
2016/03/26(土) 00:34:51.22【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【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
A列に数値、C列に数値、D列に文字列という値が入っています
B列に関数を使い、A列とC列の値が等しい場合合致したC行の隣のDの値を表示してください。
できるでしょうか?
0499名無しさん@そうだ選挙にいこう
2016/03/26(土) 00:38:51.46タイムバリュー
=TIMEVALUE(時刻文字列)
時刻のシリアル値:0〜0.99999999 の値で、0:00:00(午前0時)〜23:59:59 (午後11時59分59秒) までの時刻を返します。
0500名無しさん@そうだ選挙にいこう
2016/03/26(土) 00:53:57.17a1=23:50
b1=0:21
c1=if(a1>b1,b1+1-a1,b1-a1)
あとは書式設定でmとしたりminutes()使ったりお好きに
0501名無しさん@そうだ選挙にいこう
2016/03/26(土) 00:55:55.49b1=if(a1=c1,d1,"tigauyo")
0502名無しさん@そうだ選挙にいこう
2016/03/26(土) 11:28:39.89お返事ありがとうございます。
説明が下手で申し訳ありません。
下の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.16VLOOKUPとIFERRORを使えば?
0505名無しさん@そうだ選挙にいこう
2016/03/26(土) 13:17:55.18A1とC欄を照会するなら
B1=iferror(vlookup($A1,$c:$d,2,0),0)
でいいと思うよ。
a列とc列で複数一致する数字がなければ。
0506名無しさん@そうだ選挙にいこう
2016/03/26(土) 13:32:26.83>>505
ありがとうございます。
うまくいきました。
0507名無しさん@そうだ選挙にいこう
2016/03/26(土) 17:15:46.151からVBAの基礎を学びたいのですが、
Exce2013利用者にオススメのサイトはありますか?
という質問はここでしてもよいでしょうか?
0508名無しさん@そうだ選挙にいこう
2016/03/26(土) 17:17:44.62でもこれは自分で解決すべき問題かも、、、
無視してください スレ汚しすみません
0509名無しさん@そうだ選挙にいこう
2016/03/26(土) 19:38:30.37きちんと本を買って覚えた方がいいよ。
サイトって結局情報細切れだから。
0510名無しさん@そうだ選挙にいこう
2016/03/26(土) 19:48:29.99vbaはめちゃくちゃ範囲が広く、ある程度範囲を絞らないと大変なことになる。
>>478は色々と凝縮されていて結構応用が聞くコードだから、まずはこれを一行一行しっかり理解すればいいと思う
分からなくなったらまたおいで
0511名無しさん@そうだ選挙にいこう
2016/03/27(日) 10:55:24.84書籍だとお勧めある?
以前買った本はマクロの記録に関する内容が過半を占めていて最後にあった説明を実際にやってみても
関数を並べる方が遥かに楽にできるっぽいことしかなかったもんだから
無論その内容自体はいちいち再計算されなくてすむ等の理由で
VBAにした方がいいんだろうなと思えはしたが
0512名無しさん@そうだ選挙にいこう
2016/03/27(日) 11:22:27.88読み手のレベルがわからないと薦めようが無いと思う
おれ自身が一番役に立ったと感じた本は
VBAでの処理の実例集だったけど、
それって俺がすでに他の言語でプログラミング経験があって
VBAでつかえるオブジェクト、メソッド、プロパティーなどが分かれば
それで事足りたからであって
プログラミング一切したこと無い人に薦めるのは
ちょっとふさわしくないと思うんだよね
0513名無しさん@そうだ選挙にいこう
2016/03/27(日) 22:04:31.32VBAを始める前にそもそも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.360516名無しさん@そうだ選挙にいこう
2016/03/27(日) 22:51:57.82責任を負うのが上司だし、中小零細だとそんなことに構ってられない役職である事もあるんだけどね
まぁ、なんにしろ現実は知っておいたほうがいい。そこがスタートだ
0517名無しさん@そうだ選挙にいこう
2016/03/28(月) 05:40:25.87【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 もうすぐ中級
【4 VBAでの回答の可否】 可
フォーム上のコンボボックスの選択肢を設定するのに、
シートAのA1からA100の値から、重複を除いて設定したいです。
A1からA100の各値は、順に並んでいるわけでもなく、バラバラです。
重複を排除して取得し、ひとつづつ.AddItemで処理するにはどうすればいいのでしょうか?
お願いします。
0518名無しさん@そうだ選挙にいこう
2016/03/28(月) 06:51:35.942段階で
0519名無しさん@そうだ選挙にいこう
2016/03/28(月) 06:57:00.52A1からA100をソートしてから 登録処理する(直前のAddItemした値と同じだったら登録しない)
0520名無しさん@そうだ選挙にいこう
2016/03/28(月) 07:28:26.15ありがとうございます。
ご指導の通りやってみましたが、ソート自体がうまくいきません。
「テスト」シートの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何も間違ってない
「うまくいかない」をもうちょっと具体的に
0522名無しさん@そうだ選挙にいこう
2016/03/28(月) 08:35:21.540523名無しさん@そうだ選挙にいこう
2016/03/28(月) 08:46:54.08徹夜のせいで頭がぐちゃぐちゃになってました。
ちゃんとソートできました。
0524名無しさん@そうだ選挙にいこう
2016/03/28(月) 11:43:35.723行目から10000行まで簡単にコピーできる方法あります?
0525名無しさん@そうだ選挙にいこう
2016/03/28(月) 12:22:32.290526名無しさん@そうだ選挙にいこう
2016/03/28(月) 12:23:46.17A3にカーソル合わせてshiftおしっぱctrl+↓、→、→、ctrl+C
>>525
無能は黙っててね
0527名無しさん@そうだ選挙にいこう
2016/03/28(月) 12:52:06.100528名無しさん@そうだ選挙にいこう
2016/03/28(月) 21:20:54.94なるほど ありがとう
見事にマクロの入門書買ってたわ
文法解説はあったっぽいからそれのために買ったと思っておこう
紹介された系統の書籍を本屋で探してみる
本番環境2007だから機能系は微妙かもだが
0529名無しさん@そうだ選挙にいこう
2016/03/29(火) 07:56:34.81いくつかのラベルをまとめて移動(ドラッグ)してるときにフッと消えてしまいました。
「すべてのコントロールの名前をmsgboxで出す」というコードを探してきて実行したところ、
なくなったわけではなくどこかに存在してることは確実です。
でも、他のコントロールの下など、どこを探しても見つかりません。
なにか見つける方法ないでしょうか?
0530名無しさん@そうだ選挙にいこう
2016/03/29(火) 08:14:19.72フォーム内に座標を移してみるとか
0531名無しさん@そうだ選挙にいこう
2016/03/29(火) 11:03:21.66フォームの左下かどこかに「プロパティ」というのがあるとおもう
そのプロパティのすぐ下の「userform」か「commandbutton」みたいなものがあると思うので、好きなオブジェクトに変更して、
更に下のleftとtopを0にすれば左上に移動できる
一回も使ったことがないけど、一括でやるならVBEが使えるかもしれない。知らんけど
0532名無しさん@そうだ選挙にいこう
2016/03/29(火) 12:45:29.68A列からランダムに二つセルを抽出して その文字列をつなげたものをB列に並べていきたいです。
A1 ab
A2 cd
A3 ef
とあるときに
B1 cdab
B2 efab
B3 abcd
といった具合です。
よろしくお願いします
0533名無しさん@そうだ選挙にいこう
2016/03/29(火) 13:20:13.1820行あるとして
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=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.540536名無しさん@そうだ選挙にいこう
2016/03/29(火) 16:32:36.53左上に日付があり、その行から改行して文字を打ち込みたいのですがどのように行うのでしょうか
0537名無しさん@そうだ選挙にいこう
2016/03/29(火) 16:34:50.15ボックス→セル
進出→カーソルが移動
alt+enterでセル内改行できるけど、これでいいかな
0538名無しさん@そうだ選挙にいこう
2016/03/29(火) 16:38:57.020539名無しさん@そうだ選挙にいこう
2016/03/29(火) 16:41:15.740540名無しさん@そうだ選挙にいこう
2016/03/29(火) 17:12:03.08これですねありがとうございます
0541名無しさん@そうだ選挙にいこう
2016/03/29(火) 20:55:24.85順に取得したいのですが、どう書けばいいのでしょうか?
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.37Excel 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もうちょっとぐらい頑張れ
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あと動的配列に追加する場合はredim Preserveとか使う
http://officetanaka.net/excel/vba/variable/08.htm
vbaにはpushとかなくてめんどくさい
0545名無しさん@そうだ選挙にいこう
2016/03/29(火) 21:37:35.85vba 列 数値指定
で検索して気に入ったやつを使ってくれ
個人的にはこれ
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1242387037
columnを数値で指定できないのはめんどくさいよなー
0546名無しさん@そうだ選挙にいこう
2016/03/30(水) 07:26:51.26スレ違いとまでは言わんが、こっちの方がいい
Excel VBA 質問スレ Part40
http://echo.2ch.net/test/read.cgi/tech/1455817784/
>>543
> fornextでもいいけど要素数が分からん場合はforeach。
おもいっきり要素数わかってるだろ
コードもさっぱり参考にならんし
0547名無しさん@そうだ選挙にいこう
2016/03/30(水) 10:16:29.82a3に11:02
a4に11:03
と時間が1分ごとに続きます。
b列には数字が入っています。
c1に11:02と入力したら
a列の時刻と一致した時間のb列の値、この例だとc3にb3の値が出るようにしたいです。
よろしくお願いいたします。
0548名無しさん@そうだ選挙にいこう
2016/03/30(水) 10:27:15.39PCないからちょっと試せない
0549名無しさん@そうだ選挙にいこう
2016/03/30(水) 10:33:17.19=INDEX(B:B,MATCH(C1,A:A,0))
エラー回避する場合はiferror()など
>>546
参考にならんか、じゃあお前が参考になるコード書けばいいと思う
0550名無しさん@そうだ選挙にいこう
2016/03/30(水) 15:11:03.85「小計」などでアウトラインを作成すると、アウトラインを作成する以前の「元に戻す」の
メモリーが全て消えてしまうのはどうしてなんでしょうか?
また他にもこんな風に「元に戻す」が消えてしまう操作はあるんでしょうか?
0551名無しさん@そうだ選挙にいこう
2016/03/30(水) 15:13:24.34>メモリーが全て消えてしまうのはどうしてなんでしょうか?
仕様
>また他にもこんな風に「元に戻す」が消えてしまう操作はあるんでしょうか?
vbaや、大量のセルを操作した場合に消えることがある
こんなこと覚えてもあんまり意味ないぞ
0552名無しさん@そうだ選挙にいこう
2016/03/30(水) 15:18:05.66「元に戻す」の仕組みみたいなものを自分が何か勘違いしているのかとも思ったので
ただの仕様と分かって安心しました。
ありがとうございました。
0553名無しさん@そうだ選挙にいこう
2016/03/30(水) 19:41:04.51お前の頓珍漢なコードより元のコード方がマシって話
そんなことも理解できてないのかよ w
0554名無しさん@そうだ選挙にいこう
2016/03/30(水) 20:25:07.17時刻の比較は要注意です。A列とC1セルの時刻をどのように入力するのかで、
「一致するはずなのに一致しない」事例が発生します。
A列の方は1分毎の時刻なので0:00からオートフィルであらかじめ設定したもの、
C1セルの方はキーボートから時刻を直接入力すると仮定した場合、
01:13、01:38、・・・23:50と、けっこうな頻度で現れます。
これは時刻を表す小数点数の(オートフィルのときに発生する)微妙な誤差のためです。
詳しい情報が必要であればレス願います。
0555名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:02:24.34まさに今ここですw
同じ11:02と入力されているのに
値が出るのと出ないのが発生して困ってました。
シリアル値見ても同じ数字だし、
何が違うのか見当つかずにいました。
良い方法ありましたらよろしくお願いいたします。
0556名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:13:45.84エクセル2010なんですが、とあるワード(例:りんご)をトリガーにして、
隣のセルに連番で数値を入れる関数を作ったのですが、
保存時にこの関数を実数にする方法ってありますか?
count関数を使っているのですが、一度保存した後に、途中の行に「りんご」が割り込まれた場合、
一度割り振ったはずの連番がズレていくので直してほしいと言われました
割り込みは業務都合上結構な頻度で発生する可能性が出てきてしまうので、
どうしてもセルの式で対応する必要があります
どなたか知恵をお貸しください
0557542
2016/03/30(水) 21:24:12.54ありがとうございます。
Range(Columns(3), Columns(5)).〜 が感覚的に分かり易いのでこれを使います。
0558名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:30:30.16いまいち説明の内容が理解できない
(たとえば「保存時にこの関数を実数にする」ってどういう意味?
数式(Formula)を値(Value)にするってことかな?)ので、
データは本物じゃなくていいから実物と同様のサンプルとかうpしてみせて
0559名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:35:17.93保存したあとは連番が増えないならその列をすべて指定してコピペの
形式を選択して値の張り付けをしてから保存すれば?
割り込みされた言葉にも続けて連番を振るならこの方法じゃ無理だけど
0560名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:35:39.670561名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:42:27.62突っ込む人は回答で答えて
煽るだけなら無能でもできるから
0562名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:43:50.09vbaで処理したほうが良さそうな案件。
vbaの可否先に教えてほしい
0563名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:46:30.11別に無能でもいいんじゃね?
野球とかサッカー出来ないヤツも日本代表ボロカスに批判したりするじゃん
0564名無しさん@そうだ選挙にいこう
2016/03/30(水) 21:58:56.28> おもいっきり要素数わかってるだろ
の意味もわかってないアホ乙
0565名無しさん@そうだ選挙にいこう
2016/03/30(水) 22:01:29.41今会社にいないので記憶を頼りに再現してみました
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一応確認だけど、
1,2,10,3,4,5,6...
という番号の振り方でいいの?
>>563
そうだね、どうしようもない人はいっぱいいるよね。仕方ないか・・・
0567名無しさん@そうだ選挙にいこう
2016/03/30(水) 22:16:02.63今用意したファイルだと、最終番号が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になれば大丈夫と考えております
代案でも構わないのでどうにか教えていただけるとありがたいです
0568558
2016/03/30(水) 22:45:55.06やっぱり理解してなかったみたいだけど、
「実数」っていうのは数学的にいうと
複素数のうちの虚部がゼロの数のことをさす用語であって
あなたが言ってるような使い方は不適切
エクセル使用者の一般的用法としてはそういうのは値(あたい)と言います
閑話休題
>>567
後から追記したものにも順番を反映させるとなると
VBA無しでの実現はほぼ不可能だと思いますよ
VBAでやるなら
Worksheet.Changeイベントっていうのを
トリガーにして実行されるようなコードを組めば
途中に連番入れるような処理もできるっちゃあ出来ます
「A列の入力内容を確認して合致していたら同じ行のB列も確認、
そこが空ならB列に既に入力された最大値+1を書き込む」みたいな処理ですね
ただし、既に「みかん」のところに「りんご」と入れたら連番を追記するだけなら
これで良いとして、
逆に「りんご」の部分を「みかん」(というか「りんご」以外の値)に変えたときには
どうするのかって問題もあります
その場合、連番減らしたりするんですか?
そうなるとこれだけじゃすまなくなりますよ
そういうことはやらないって言う前提ならまぁそれでも良いですけど
こういう質問する人って
そういうイレギュラーについて端から考えてないケースが割りと多いんで
一応聞いておきました
0569名無しさん@そうだ選挙にいこう
2016/03/30(水) 22:50:06.09関数を作ったってことはVBAなんだよね?
じゃあVBAでやればいいんじゃないの?
0570名無しさん@そうだ選挙にいこう
2016/03/30(水) 22:54:57.36なんとなく支店の閉店開店っぽい処理のような気がするな。まぁなんでもいいけどな
とりあえず関数だと無理があるんで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もし>>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
0572554
2016/03/31(木) 00:35:00.47時刻が一致するのに希望通りにならない場合、シリアル値が異なります。
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 でいいかと。
0573554
2016/03/31(木) 10:31:31.19ただし、手入力ではなくマクロを利用して。
以下は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.950575名無しさん@そうだ選挙にいこう
2016/03/31(木) 12:31:07.240576554
2016/03/31(木) 13:26:27.91=LOOKUP(TEXT(C1,"hh:mm"),TEXT(A2:A100,"hh:mm"),B2:B100)
こういう形でいけました。 [Shift]+[Ctrl]+[Enter]しなくてもいけるのね。
0577名無しさん@そうだ選挙にいこう
2016/03/31(木) 17:57:12.840 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言ってることが色々と良く分からないんだが、
>E列に数値が出たら、次のE列の数値が出るまでの
これはまずどういう意味?
見たところE1からE9まで全て数値は入ってるんで
「次のE列」とか言われても
何のことやらさっぱり理解できない
そしてその演算結果で F1に18という値が入るようだけど
そんな数値A1からE9の範囲内のどこにも無いんだけど
一体どこから出てきたものなの?
同様に最小値のG1のほうも
どう考えても最小値は15じゃないわけだけど、何でそうなってるの?
0579名無しさん@そうだ選挙にいこう
2016/03/31(木) 19:57:40.11http://i.imgur.com/dua3DI6.png
そのうえで、どのセルに計算式を設定すればいいのですか?
578さんと同様、「E列に数値が出たら」をはじめ、Excelにはなじまない言葉が多いので
具体的にわかりやすく説明願います。
0580名無しさん@そうだ選挙にいこう
2016/03/31(木) 20:39:51.89なんか意味がわからないゾ
F1の18とG1の15はどこから出てきたんだ?
0581名無しさん@そうだ選挙にいこう
2016/03/31(木) 21:02:51.15ありがとうございます。
さっそく試してみたいと思います。
0582名無しさん@そうだ選挙にいこう
2016/04/01(金) 00:26:38.53フォームに設置したテキストボックスに入力されたデータが
日付になっているかどうかを判定する方法ってありますか?
また、逆に、テキストボックスに日付以外の入力をさせない方法(カレンダーを設置以外)って
あるんでしょうか?
0583名無しさん@そうだ選挙にいこう
2016/04/01(金) 01:05:28.260584名無しさん@そうだ選挙にいこう
2016/04/01(金) 05:42:54.33テキストボックス限定なの?
俺はよくスピンボタンとラベルの組み合わせで処理するけど、
要するにキーボードから手入力させずに、
スピンボタンで数値を増減させることで入力させてる
まぁ、ラベルの代わりに入力を禁止(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スピンボタンでも調整できるけど手入力もさせろ
0586名無しさん@そうだ選挙にいこう
2016/04/01(金) 09:47:09.73いや、やりたきゃテキストボックスのLockedをFalseにすりゃいいだけでしょ
その結果不正な値を入れられたら、それをはじくような処理も書けばいい訳で。
俺はそういうのが面倒だから手入力禁止にしてるけど。
0587名無しさん@そうだ選挙にいこう
2016/04/01(金) 11:44:25.130588名無しさん@そうだ選挙にいこう
2016/04/01(金) 13:24:54.53VBAでしょうか?
0589名無しさん@そうだ選挙にいこう
2016/04/01(金) 14:21:06.33vbaより既存のツール使いこなしたほうがいいよ
どうせ作るものは既存ツールの劣化版になる
0590名無しさん@そうだ選挙にいこう
2016/04/01(金) 16:14:11.460591名無しさん@そうだ選挙にいこう
2016/04/01(金) 16:30:55.850592名無しさん@そうだ選挙にいこう
2016/04/01(金) 21:23:57.19それならかなりいけるでしょ
0593名無しさん@そうだ選挙にいこう
2016/04/01(金) 22:02:00.760594名無しさん@そうだ選挙にいこう
2016/04/01(金) 23:14:45.260595名無しさん@そうだ選挙にいこう
2016/04/01(金) 23:35:32.27【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.800598名無しさん@そうだ選挙にいこう
2016/04/01(金) 23:47:47.471 印刷するときだけ1行目を非表示設定にすることを前提に
2 リボンのページレイアウト→印刷タイトル→シートのタブ
タイトル行の欄に 2:5
タイトル列の欄に A:C でいいのでは?
0599名無しさん@そうだ選挙にいこう
2016/04/01(金) 23:56:59.88言ってる意味がわからん。ナんに対して半分?
0600名無しさん@そうだ選挙にいこう
2016/04/02(土) 00:01:05.92596さんへの回答を書いてるうちに「各行について」ってことではなかろうか?とひらめいた。
例題の3行のうち、1、2、4、5は半分以上(2行以上)に存在する。
たぶん、実際のデータでは数十、数百あるので3行に縮めたのでわかりにくくなったのでは?
そういうことではありませんか?>>595
0601名無しさん@そうだ選挙にいこう
2016/04/02(土) 00:18:27.67ありがとうエスパーさん
>>595
D1=IF(COUNTIF($A$1:$BB$3,COLUMN())>3/2,COLUMN(),"")
横にオートフィル
範囲はテキトーなのでテキトーに改変してくれ
0602名無しさん@そうだ選挙にいこう
2016/04/02(土) 01:04:36.76まさにそのとおりです。
説明不足で申し訳ありません。
半分と書いたのは最大で100行程度のものがあるからです。
0603名無しさん@そうだ選挙にいこう
2016/04/02(土) 04:48:26.98a = "あいうえおかきくけこ"
この文字列の中に、指定した文字列が含まれてるかどうかを調べるVBAコードを
作りたいのですが、どうすればいいでしょうか?
chk(けくこ) → FALSE
chk(えおか) → TRUE
こんな感じです。
0604名無しさん@そうだ選挙にいこう
2016/04/02(土) 07:58:25.20その仕様通りの関数を作るには、たぶん a がグローバル変数じゃないと無理だと思うけど
Function CHK(s1 As String) As Boolean
CHK = Instr(a , s1) > 0
End Function
0605名無しさん@そうだ選挙にいこう
2016/04/02(土) 16:34:01.72【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.52Microsoft バーコード コントロール 9.0 は、Microsoft Office Access のフォームやレポートに挿入できるバーコード シンボルを表示する ActiveX コントロールです。
って書いてありますよ。さらに、システム要件にはAccessだけしか載っていません。
0607名無しさん@そうだ選挙にいこう
2016/04/02(土) 16:47:34.77システム要件を読め
0608名無しさん@そうだ選挙にいこう
2016/04/02(土) 17:04:39.64というかリンク先のファイルは、リファレンス(ヘルプファイル)のみじゃないの?
ActiveX コントロールは含まれていないように見えるけど
0609名無しさん@そうだ選挙にいこう
2016/04/02(土) 17:36:30.29色々なサイトではコントロールの選択でバーコードコントロールを選択しと
いきなり書いてあることが多かったので勝手に行けるものかと思ってしまってました
0610名無しさん@そうだ選挙にいこう
2016/04/02(土) 22:19:49.045 ☆
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.245 ☆
9 9
4 4
3
2 ☆
ずれちゃったので訂正です。
9は最大値でd3に抽出という意味です。
0612名無しさん@そうだ選挙にいこう
2016/04/02(土) 23:22:09.93その仕様のとおりにVBAでコードを書けばいいだけですよ
0613名無しさん@そうだ選挙にいこう
2016/04/02(土) 23:25:52.25無理言ってすみません。
よろしくお願いします。
0614名無しさん@そうだ選挙にいこう
2016/04/03(日) 04:05:14.37人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.99VBAでできるけどピボットでやればいいような
0616名無しさん@そうだ選挙にいこう
2016/04/03(日) 10:49:36.31〜が出てから とか 最大値、最小値 など似てるところが多い。
「☆が出る」とは、☆が表示されるセルに計算式?それともマクロでセルに☆を設定?
「☆サインが出たら次の☆のサインが出るまでの間の」は、
「☆が出た」を処理のきっかけとするのではなく、☆の表示の原因となるシート上の
他のセルへの操作(値入力など)をきっかけとしてマクロが動くと考えるべき。
テスト用の架空データでいいから当該シートをupするのが解決への近道と思う。
0617名無しさん@そうだ選挙にいこう
2016/04/03(日) 10:56:11.78【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.240620名無しさん@そうだ選挙にいこう
2016/04/03(日) 12:06:23.56無理
0621名無しさん@そうだ選挙にいこう
2016/04/03(日) 13:54:41.33可能ではある
ただ、VBA必須
0622名無しさん@そうだ選挙にいこう
2016/04/03(日) 14:07:00.530623名無しさん@そうだ選挙にいこう
2016/04/03(日) 14:17:19.73B3=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=A1+if(b1>=1,20,A2)
また、20が頻繁に変わるならC1を山椒するようにすえればよい
=A1+if(b1>=1,c1,A2)
>>618
一部ってのがよくわからん。
何をやってるかわからないけど、量が少ないなら一旦区切ってから結合したほうが早いと思う
0625名無しさん@そうだ選挙にいこう
2016/04/03(日) 20:21:09.87VBAで、新規に作ったシートに、テキストファイルからコピペして6桁の数字を
貼り付けたところ、日付だと解釈されて、3268年12月19日とかになってしまいます。
これを回避するにはどうすればいいのでしょうか?
VBAで、「これは数字なんだぞ」とセルに言い聞かせながら貼り付ける方法ってありますか?
0626名無しさん@そうだ選挙にいこう
2016/04/03(日) 20:37:28.570627名無しさん@そうだ選挙にいこう
2016/04/03(日) 20:45:09.97値で貼り付けをマクロの記録
もしくは単純に書式設定もマクロで変えてしまえば?
0628625
2016/04/03(日) 21:07:38.12やってみます。
0629名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:14:00.54正負の切り替えを数えて数にすることは可能ですか?
6
-50
-2
-5
5
と並んでいたら上から見てプラスとマイナスの切り替えが2回なので2と出したいです
0630名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:26:37.43VBAでループ回して正負を判断してカウントするだけ簡単
0631名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:32:23.75B1=(A1>=0)*(A2<0)+(A1<0)*(A2>=0)
下にオートフィルで
c1=sum(b:b)
0は+に含めてる
これ微妙に面倒だな
0632名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:34:59.82>>631
ありがとうございます
助かりました
0633名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:36:43.21こゆう数式でもできるとおもう
数値がある範囲が A1:A5なら
=SUMPRODUCT((A1:A4*A2:A5<0)*1)
0634名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:51:01.13これは式をスッキリさせられそうですね
ありがとうございます
0635名無しさん@そうだ選挙にいこう
2016/04/03(日) 22:54:55.00すげぇw
よくこんなの思いつくば
0636名無しさん@そうだ選挙にいこう
2016/04/03(日) 23:38:35.06なるほど
0637名無しさん@そうだ選挙にいこう
2016/04/04(月) 00:07:06.56君天才らしいな
0638名無しさん@そうだ選挙にいこう
2016/04/04(月) 00:35:36.64Excelは2010を使っています。
0639名無しさん@そうだ選挙にいこう
2016/04/04(月) 01:33:11.95=LEFT(A1,FIND("/-",A1)+1)
0640名無しさん@そうだ選挙にいこう
2016/04/04(月) 07:58:09.520641名無しさん@そうだ選挙にいこう
2016/04/04(月) 09:21:18.732016では新しい関数をどんどん追加する方針に変わったみたいだから、正規表現の使えるFINDEXPとか追加してくれ
0642名無しさん@そうだ選挙にいこう
2016/04/04(月) 17:43:04.98ドロップダウンリストによって選択されたA1の記号が△だった場合、A2の数値をA3に加算する関数を教えて下さい。
0643名無しさん@そうだ選挙にいこう
2016/04/04(月) 17:47:16.89a4=if(a1="△",a2+a3,"△以外")
0644名無しさん@そうだ選挙にいこう
2016/04/04(月) 18:45:26.13A B C
x あ 11
y い 22
x う 30
Aの値にxという記号が入っている場合はその行(AからC)に色を付ける(セルを塗りつぶす)
これはどうやればいいのでしょうか?
0645名無しさん@そうだ選挙にいこう
2016/04/04(月) 18:51:18.82a:c選択
ルールの監理
新規ルール
=$A1="x"
0646名無しさん@そうだ選挙にいこう
2016/04/04(月) 20:09:20.89有難うございましたm(_ _)m
0647名無しさん@そうだ選挙にいこう
2016/04/04(月) 21:29:11.14お返事ありがとうございます。
できました。
0648名無しさん@そうだ選挙にいこう
2016/04/05(火) 08:28:50.55教えていただいた方法で、いったんはうまくいかなかったものの、なぜか作り直したらできました。
ありがとうございました。
0649名無しさん@そうだ選挙にいこう
2016/04/05(火) 12:41:04.29EXEL: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.031日 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.840652名無しさん@そうだ選挙にいこう
2016/04/05(火) 22:18:00.700653名無しさん@そうだ選挙にいこう
2016/04/05(火) 22:35:34.57関数の有無ぐらいならヘルプ読めよと思う
0654名無しさん@そうだ選挙にいこう
2016/04/05(火) 22:35:40.84ありがとうございます
0655名無しさん@そうだ選挙にいこう
2016/04/05(火) 22:36:46.23VBAで簡単にできると思う
ブックをアップしてくれたらやるよ?
0656649
2016/04/06(水) 08:47:42.47>>650
返信ありがとうございます。
書いてもらった状態でも3日出勤とカウントして労働時間をだしたいんです。
>>655
返信ありがとうございます。
VBAは全然わからないので、
どうにか助けて頂けるなら本当にありがたいです。
どこに上げればいいでしょうか。
0657名無しさん@そうだ選挙にいこう
2016/04/06(水) 10:13:15.40もちろん、秘密にセにゃならん情報は全部消してくれよ
0658名無しさん@そうだ選挙にいこう
2016/04/06(水) 13:15:34.71もしかして、「2行目3行目を集計する必要自体がない」ってことはないの?
すくなくとも、
「同日・同一人に対して複数行にわたって勤務シフトが存在している」
という場合でも、「勤務シフトの記録は必ず1行目から行う」
というルールさえあれば、2・3行目を集計に加える必要はなくなるよね?
0659649
2016/04/06(水) 22:33:12.89>>657
dotupって所見てみます!
>>658
毎月の労働時間・日数上限が決まっているので全ての行の集計と日数必要なんです・・・・・
0660658
2016/04/06(水) 23:17:16.08「すべての行の集計」は「労働時間の算出」のためには必要だけど、
>>649で最初に聞いてた「日数の算出」には1行目以外関係ないよね?
ってことをいってるんだが、俺なんか間違ってる?
0661名無しさん@そうだ選挙にいこう
2016/04/07(木) 00:30:45.32VBAがまったくわからないのに、どこの誰かわからない奴がブックに埋め込んだVBA動かして運用するの?
すごいな…
0662名無しさん@そうだ選挙にいこう
2016/04/07(木) 02:56:41.67Dim 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こんな感じ?
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本当にどうもありがとうございました!!
0665名無しさん@そうだ選挙にいこう
2016/04/07(木) 07:34:04.37これを知らない人がくびちょうをくみちょう(組長)と空耳してるのが結構いる
なに組なんだろ
0666名無しさん@そうだ選挙にいこう
2016/04/07(木) 07:46:26.95もう解決しちゃってるようだけど、
ワークブックをセットするところだけを別のプロシージャにしてしまうっていう手もある。
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現在は同じ行に本人の名前、生年月日、連絡先などの他、家族の名前や生年月日も入っています。
別シートに家族も含めた全員の名前と生年月日を書き出したいのですが、どうすれば良いでしょうか。
名前 生年月日 住所 電話番号 家族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.44VBAでそのとおりのコードを書けばできる
簡単だよー
0669名無しさん@そうだ選挙にいこう
2016/04/07(木) 08:50:55.76vlookup()でいいんじゃない?vlookupがわからないなら検索して
>>668
無能さん自己紹介チーっす
0670名無しさん@そうだ選挙にいこう
2016/04/07(木) 11:26:42.75上はレポート
下はデータ
なんでどいつもこいつもレポートからデータを起こそうとするかね?
データがあって、それをレポートにするんだ
作り直せ
0671名無しさん@そうだ選挙にいこう
2016/04/07(木) 12:57:59.38A子 パン 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この表がA列〜C列にあるとして、作業列に=A1&B1と入れてC列でソートしてから重複の削除をすればVBAは必要ないけど、
VBAでやりたいなら同じように連結済みのデータを配列に入れて重複チェックするのが一番シンプルだと思う
どこがわからない?
0673名無しさん@そうだ選挙にいこう
2016/04/07(木) 14:03:21.140674名無しさん@そうだ選挙にいこう
2016/04/07(木) 14:43:52.80重複削除だけならEXCEL機能をVBAでやるだけ
1)日付を降順に ソート(重複削除だけなら 人、食品でソートしなくても良い)
2)人、食品 で重複削除(RemoveDuplicatesメソッド)
でいいと思うぞ
RemoveDuplicatesメソッドが使えない環境なら >>671 だけど
0675名無しさん@そうだ選挙にいこう
2016/04/07(木) 16:35:14.61ありがとうございました。
助かりました。やってみます。
0676名無しさん@そうだ選挙にいこう
2016/04/07(木) 19:23:12.270677名無しさん@そうだ選挙にいこう
2016/04/07(木) 20:57:56.63俺は無能なのは間違いないけど、どう考えてもVBAの案件だと思うが…
0678名無しさん@そうだ選挙にいこう
2016/04/07(木) 21:10:21.82コードを書けとはいわんが、スレ誘導ぐらいあってもいいと思いました
0679名無しさん@そうだ選挙にいこう
2016/04/08(金) 05:55:55.60>上はレポート
>下はデータ
天然?w
0680名無しさん@そうだ選挙にいこう
2016/04/08(金) 07:05:16.77そもそもどこまでが苗字かわかんないだろ
0681名無しさん@そうだ選挙にいこう
2016/04/08(金) 07:23:10.44それを判断する機能までご所望なんだろ
御神楽太郎みたいな名前があった場合とか俺には機械的に判断させること無理だが
0682667
2016/04/08(金) 07:56:48.55vlookup関数を調べてみて、名前から生年月日を検索して表示できる事は理解できたのですが、
名前の入力自体は自分で行わなければならないということでしょうか。
今までエクセルは出来上がった雛型に文字を入力する程度のことしかやっておらず
関数すらほとんど使ったことがない状態なのでVBAを教えていただいても理解できるかどうか・・・
初心者の手におえない状況であれば一から作り直すことも覚悟しています。
その場合、世帯主の名前と住所連絡先、全員の名前と生年月日、全項目の3つの表を一度の入力で作れるようにしたいです。
そちらの方が簡単ですか?
0683名無しさん@そうだ選挙にいこう
2016/04/08(金) 08:05:18.10家族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)))
見出し部分が12行
G10に入力できるようになっています。
13行から10000行以上株価が時間ごとに取得されてゆきます。
上の式だと13行から10000行に計算されていきますが、
これを逆にしたいのです。
(10000行から13行へ)
式をどう変えれば良いか教えてください。
0685名無しさん@そうだ選挙にいこう
2016/04/08(金) 11:58:44.31WORKDAY関数を、祝日も除くように設定して使っているんですが
このような、いわゆる営業日的にした時に
一ヵ月内で23日分出てくることってありますでしょうか?
今年の6月は営業日で22日あります
でも6月は30日までしかありません
31日まである月を考えたらあと1日は増えるかなとも思ったのですが
今年から6月以外にはどこかに祝日があります
でも祝日が土曜日と重なった場合には営業日的には無関係です
(日曜と重なると月曜日が振り替え休日になる・・・と思います)
カレンダーは毎年少しずつずれていくと思いますが
営業日が23日になる月って出てきますでしょうか?
50年後とか100年後みたいな話なら無視してもいいかもしれませんが・・・
0686名無しさん@そうだ選挙にいこう
2016/04/08(金) 12:21:32.478月って31日まであって祝日存在しないけど
大概の会社はお盆休みはあるがその辺のローカル定休日がわからないと答えようがない
0687名無しさん@そうだ選挙にいこう
2016/04/08(金) 12:33:18.74https://www.youtube.com/watch?v=BLj2H95-ITA0
0688名無しさん@そうだ選挙にいこう
2016/04/08(金) 12:49:21.13データが何件あるか知らんけど、 >一から作り直す ぐらいなら
そのシートをコピーして名前と生年月日の間に列挿入「名」の列としておいて
家族ごとの行の間に家族人数分の行挿入 (例でいえば○山と△川の間に二行)
その一行目に家族1と生年月日のセルを直接ドラッグ、二行目に家族2と生年月日・・ と続ける
名前と生年月日が並んでるだけにその方が入力ミスにも繋がらなくていいし、
その作業で苦しむことで「どうにか楽したい」という発想からマクロやVBAだの関数だの覚えよう
って気に成るってもの
「姓名」の列が必要なら筆頭者の姓を家族分フィルしてから一列追加して「=姓&名」とすればいいし
いちおう階段は一段ずつ登ることを基本にしておかないと、安直に近道やら抜け道行くことがデフォ
とか思ってると、いつか踏み外して転げ落ちる 自分が苦しむことになるだけ
元データによりけりでやむを得ない構造なのかも知らんが、これは「名簿を管理しています」てよりは
「名簿に管理されてます」ってレベル はやく管理する側に立てるようがんがれ
0689名無しさん@そうだ選挙にいこう
2016/04/08(金) 13:17:26.96いえうちの会社は常に暦通りなので
メイデーもなければいわゆる三が日すらもありません
当然お盆休みもありません
(その付近に社員がまとめて有給を取るのは一応自由ですが)
あと8月は今年から8/11が「山の日」という祝日になりますよ
0690名無しさん@そうだ選挙にいこう
2016/04/08(金) 18:03:19.19だとすると、再来年の8月が該当
8月11日が土曜日だ
0691名無しさん@そうだ選挙にいこう
2016/04/08(金) 18:52:33.030692名無しさん@そうだ選挙にいこう
2016/04/08(金) 19:20:28.98在日? 朝鮮本国の人?
大体 日王なんてのがいると信じてるのは チョン以外にいないとおもうな
0693名無しさん@そうだ選挙にいこう
2016/04/09(土) 03:28:23.78【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.06SUBTOTALが使われているのを以前していた仕事で見たことが何度かありますが、
そもそもSUBTOTAL関数は有用で使用頻度が高いのでしょうか?
また、対応する集計方法は覚えているものなのですか?
0695名無しさん@そうだ選挙にいこう
2016/04/09(土) 08:17:36.33時と場合と人による
そんなアンケートとってなんの意味があるの???
0696名無しさん@そうだ選挙にいこう
2016/04/09(土) 08:40:11.68途中に出てくる*3とか*2とかはどっから出てきた数?
質問文中に説明のない要素が出てくると、
聞いてるほうは意味が分からなくて答えられないよ
つーか、前の質問って>>482だよね?
あんときも中途半端な説明でしかもあんた途中で消えちゃったじゃん
聞くだけ聞いといてなんも言わずに消えるのって
回答者に対して失礼だと思うよ
仮に意に添わぬ答えしか返ってこなかったとしても、
黙って消えるんじゃなくて一言ぐらい断って
一旦質問を閉めとくのが質問者の礼儀ってもんじゃないの?
0697名無しさん@そうだ選挙にいこう
2016/04/09(土) 09:10:35.58すみません。前の質問の後書き込みが出来なくなり来れませんでした
A列、C1,D1の数値を入れて例を出すと計算が大変なので数値を入れずに
(A列の数値でどれか1つだけ0〜B1をかけれる)、
この条件を入れた例にしたかったので仮に*3や*2を使いました。
B1=5のとき(C1+D1)と比較する合計にA7*3を使った場合、
5-3になり結果表示に合計に使わないA7*2
0698697
2016/04/09(土) 09:14:28.03というような感じで*2*3*4を使いました
0699名無しさん@そうだ選挙にいこう
2016/04/09(土) 09:47:11.10目的によっては便利というだけ
9とか3は多用するけど、使ったことない数字もあるしな
0700名無しさん@そうだ選挙にいこう
2016/04/09(土) 09:50:41.77まったく質問の意味がわかりません
0701名無しさん@そうだ選挙にいこう
2016/04/09(土) 09:58:30.97この範囲で土曜と重なれるのは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たったそれだけなんですね
ありがとうございます!!
0703名無しさん@そうだ選挙にいこう
2016/04/09(土) 10:00:46.53まじで全然わからん。
少しでも回答できてる人達を尊敬するわ。
0704名無しさん@そうだ選挙にいこう
2016/04/09(土) 10:06:44.79作業列使って単純にしてみたら?
例えば、E1にC$1+D$1を代入、F列にA1*B$1を代入、G列にA1*0を代入
E1とF列とG列だけでシンプルな式にできない?
質問がよくわからないから外してると思うけど…
0705694
2016/04/09(土) 10:11:27.05使うときが来たら調べるようにします。
でも集計やデータ分析の事務職で使えないと困る関数というものが分かればいいと思っています。
ピボットの他、ifとかvlookupよりマイナーな関数で。
0706名無しさん@そうだ選挙にいこう
2016/04/09(土) 10:15:55.57仕事の内容は職場ごとに全然違う
使用する関数なんてそれこそ千差万別だから、必要になってから調べれば十分というか
あらかじめ何が必要か予測して覚えるのは不可能
0707名無しさん@そうだ選挙にいこう
2016/04/09(土) 10:58:06.25いくつあるかという本来用途でも使うけどワイルドカートで含まれるかどうかの判定にも多用するし
0708名無しさん@そうだ選挙にいこう
2016/04/09(土) 11:05:10.37関数のリファレンスマニュアル読んで必要と思うものを暗記したらいいよ
ヒマなら何度も繰り返し読んでるだけでなんとなく覚えてくる
0709名無しさん@そうだ選挙にいこう
2016/04/09(土) 11:12:28.11あのマニュアル読むだけじゃ使い道がわからないけど実際には多用しまくる関数がいかに多いことかw
SUMPRODUCTとか、掛け算した結果を足すとかなんだこれとか思ってたが
最近は使わない日がないほど多用している
職場のExcelが2007で文字列数字の計算に便利なのが大きいが
0710名無しさん@そうだ選挙にいこう
2016/04/09(土) 11:22:58.180711名無しさん@そうだ選挙にいこう
2016/04/09(土) 11:28:34.670712名無しさん@そうだ選挙にいこう
2016/04/09(土) 11:42:14.59見本となるブックをアップして
0713名無しさん@そうだ選挙にいこう
2016/04/09(土) 11:46:48.31まず使わない。対応する~は覚えてない。そういやこのスレの回答でも見たこと無いな
使う人はちょっと変だと思う。
集計って機能で自動的に挿入されるけど、そもそも集計も使わないしなぁ
>>705
indirect、offset、cell辺りは知っておくだけで特殊なケースに対応できるからそれぐらい
あとはiferrorとかエラー周り
0714名無しさん@そうだ選挙にいこう
2016/04/09(土) 12:27:59.80SUBTOTALの用途がある人とない人の差だろうね
俺なんかは、システム部門担当者が自分流以外のシステムにするなら
数百万円単位で金寄越せと言ってくるせいで使わざるを得ないが実態かな
事業部ごとの数字が必要なのに全部をひとまとめにしたデータしか
アウトプットできないようにされてるからフィルター切り替えが一番楽なんだよね
0715名無しさん@そうだ選挙にいこう
2016/04/09(土) 12:39:53.31なるほどな
変とか言ってすまなんだ
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前までは各項目にショートカットキーが割り当てられてたのがなくなってますが、
マウスではなくキーで選ぶ方法ありますか?
最小値/最大値をキーだけで変更したいのです
0718名無しさん@そうだ選挙にいこう
2016/04/09(土) 14:26:13.470719693
2016/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いいとおもう
0721693
2016/04/09(土) 16:35:55.82例:
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たぶん、このスレに質問する以前の状態かと
このスレで質問できる状態になったらまた質問すればいいと思います
0723名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:04:06.57>>719にしても>>693にしても日本語がごちゃごちゃして読む気しないし
読んでも意味が分からんのです・・・
「ケース」と「箱」は同じものを指しているのか?など。
文章での説明がきついなら図解とかでうまく説明できれば
すぐレスつくのでは?
0724名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:06:26.720725名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:07:27.321分毎にA1〜A4000 → B1〜B4000 → ・・・・ → ZZ1 〜 ZZ4000
と676列(676分)まで「抽出 → 書き込み」を繰り返す
これって可能ですか?
可能としてどれほどのスペックを要求されるでしょう?
使用してるのは2013です。
もし別のツールから抽出する場合、そのツールのプログラム解析は必須ですか?
0726名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:08:57.86書き込みって何?保存のこと?
0727名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:13:11.96書き込み内容次第だが、あまりに文字数が多いとかなりのスペックでもフリーズする
またサイトからアク禁を食らう可能性もある
あとスクレイピングのプログラムはそんなに難しくない。めんどくさいだけで。
0728名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:17:55.03見本のブックがないのに>>693のセル指定があるんだけど、これは独自に作ってみましたってこと?
0729名無しさん@そうだ選挙にいこう
2016/04/09(土) 17:26:10.121分毎に更新されるサイトやツールのデータを
sheet1のA1〜A4000に表示させて
sheet2の
00:01 A1〜A4000
00:02 B1〜B4000
ってな感じで書きこんでいくっていう感じです。
>>727
どうもありがとうございます!
5〜12桁の数字です。どうでしょうか。
スクレイピングというんですね。
サイトやツール側が自動更新の場合はどうでしょうか?
0730名無しさん@そうだ選挙にいこう
2016/04/09(土) 18:12:19.40見本のブックがないって、誰がそのExcelファイルを持ってるの?
上司が持ってて社外に出せない?
それともあなたが妄想で作ったの?
まだExcelにもなってないのでは?
0731名無しさん@そうだ選挙にいこう
2016/04/09(土) 18:15:51.04サイトや別のツールってのは何?具体的に教えて
サイト名やURLやツール名など
0732名無しさん@そうだ選挙にいこう
2016/04/09(土) 18:30:12.02図書館Webサイトへのクローラを実行して逮捕された男性、不起訴に
http://security.srad.jp/story/10/06/21/118216/
スレ違い失礼
0733名無しさん@そうだ選挙にいこう
2016/04/09(土) 18:32:15.72メモリ16gbぐらいあればあとは何でも良さそう
あと改行とか無いならセルじゃなくてcsvにでも保存するほうがいいだろう
vba使えば簡単に作れる
0734名無しさん@そうだ選挙にいこう
2016/04/09(土) 19:26:03.52くわしく説明してくれたんだけども、やはりわからない
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はその計算になんか関係あるのかなあ
0735482
2016/04/09(土) 19:28:00.13見本のブックがないのは、
いまは電卓で計算してるからです。
セルの指定は質問するのに必要かと思い書きました。
スレ汚し申し訳なかったです
0736693
2016/04/09(土) 19:48:13.94�@
5kgのケースには商品が5個入ってるってことです。
合計するのは表示されている重量の合計を知るためです。
�A
注文重量を割るのは、表示されているのが商品1つの重さなので、
とりあえず個数を無視して�@合計と比較するためです。
�B
合計から�Aを引くのは在庫になる重量を知るためです。(個数は無視)
�C
�Bで出た9kgに個数の5をかけると45kgでそれにもっとも近いケースが6.0kgの箱になるからです。
現在、電卓と紙を使って計算しているため個数を無視したり�D〜�Iのような計算もしています。
エクセルでどのようなことが出来るかもわからない現状です。
>>結局 バラのケースは1つだけにして、合計が89にいちばん近い組み合わせを探せばいいわけだよね
そうです
0737693
2016/04/09(土) 19:52:02.71>>結局 バラのケースは1つだけにして、合計が89にいちばん近い組み合わせを探せばいいわけだよね
注文重量+5.0kgになる組み合わせは可能なら全部知りたいです。
注文重量±5以内に収まらない組み合わせしかない場合は、一番近い組み合わせ1つを知りたいです。
0738693
2016/04/09(土) 20:05:16.46�Cに関しては、6.0kgが近いから在庫というのは違いますね。。
今まで電卓でやっていたので他の重量を見て感覚で6.0kgと出してしまいました
0739名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:07:43.09日本語の問題でしょこれ。
0740名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:11:58.80わからんかったら分かるまで聞くか、エスパー能力を開花させるんだ
ちと真剣に考える
0741名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:15:13.32だって>>734への解答が>>736->>738になるんでしょ。
解決不可能だよこれ。
たけしの挑戦状だよ。
0742名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:17:52.08自社の情報システム部門に言って要件をまとめてもらったほうが早いよ
0743名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:24:16.94モスバーガーのきれいな食い方教えれ
http://chaos2ch.com/archives/1311275.html
0744名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:25:05.38だったら、Excelの計算式でどうこうできるものではないような。
マクロで総当たりして、結果が許容できる範囲にある組み合わせを出力するしかなさそう。
0745名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:28:23.87正直、たまに来るこの系統の超難問は楽しいと思う
他は一瞬で終わりすぎるしvba使えばどうとでもなる
楽しめないなら無理に回答せんでええで
0746名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:30:35.16【2 Excelのバージョン 】 Excel2016
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 いいえ
MINIFSという関数が追加になったと聞いたのですが利用することができません
プレインストール版だと利用できないんでしょうか?
0747名無しさん@そうだ選挙にいこう
2016/04/09(土) 20:54:34.37その件でMSに問い合わせた事あるけど(Answer Deskでリモート接続して 確認してもらった)
・リリースにタイムラグがある
・いつになるかは Answer Desk では分らないwww
・時期は不明だけど 使えるようにはなるんですよね? → yes
との回答はもらったのよね(3月初旬の事)
これ以上突っ込んでも 進展なさそうだったので ここで切り上げたけど
その後(ビルド6741)で じょうごグラフと黒テーマは使えるようになった事を考えれば
その内使えるようになるんじゃないかな?
ちなみに俺ん所は Office Personal Premium です
0748名無しさん@そうだ選挙にいこう
2016/04/09(土) 21:08:55.68そのうち使えるようになるという事ですか
0を除いた一番小さな値を求めるのに便利そうと説明見て思っただけに残念です
今もsmall使った配列数式で求めてはいますが
0750名無しさん@そうだ選挙にいこう
2016/04/09(土) 22:05:41.79>数ケースが入荷(ケースには中身1つの重量が表示されている)
>総重量で注文が入り出荷。
>入荷した1ケースのみ、中身を取り出し分けて梱包できる。(5個の場合、2個と3個、1個と4個)
>在庫になるケースを選び出したい。
倉庫なんだろうけど、入荷、出荷、在庫がどこからどこまでか分からん
入出庫と在庫の話?もしそうなら出庫が多い場合はどうするの?
0751名無しさん@そうだ選挙にいこう
2016/04/09(土) 22:10:59.68とりあえず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.640753名無しさん@そうだ選挙にいこう
2016/04/09(土) 22:24:07.475.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の問題はなんて言うんでしょうか?
板取問題に入る?
0755693
2016/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【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
1.エクスプローラー上で右クリックからテキストファイルを新規作成する
2.作成したファイルをhoge.csvにリネームする
3.hoge.csvをダブルクリックしてエクセルで開き、編集して上書き保存する
上記手順を実行するとタブ区切りで保存されます
以前はカンマ区切りで保存された気がするので気になっています
みなさんが上書き保存をした場合、どうなるか教えていただけませんか
0758名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:07:01.99いろいろ要望はあると思いますが、フィルタでどうにでもなると思うのでワーシートうpしときます。適当に改造してください。
http://www.dotup.org/uploda/www.dotup.org814528.zip.html
0759名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:07:10.510760名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:07:54.15タブ区切りになるね。2003ぐらいならカンマだった気もする
あとテキストファイルが
1,2
だとタブ区切りと解釈されて
A1="1,2"
になり、
1,2,3
だとカンマ区切りと解釈されて
a1=2
b1=2
c1=3
になる
まぁなんでもいいけどな
0761名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:10:59.61親切すぎて笑った
乙
0763名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:15:43.57一応一週間ぐらいこのスレ見ておいたほうがいいかも
>>758を改造した物をアップしてくれる人が現れるかもしれん
0764名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:22:12.72public functionが欲しいのですがどう書くのがいいでしょうか?
引数をweekday()に投げてみて、その返事の値が6ならその日
5以下なら、6との差だけプラスした日
7ならその前日
↑
この発想は素人くさいですか?
0765757
2016/04/09(土) 23:23:25.02タブになりましたか、ありがとうございます
メモ帳で少し書いてからエクセルで編集・保存するとカンマ区切りになりました
恐らく以前はそうぢていたのだと思います
0766名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:31:51.36その程度ならあんまり気にせずに一番早い方法で記述するといいよ
調べるほうが時間かかる
変に凝る(7進数で計算したあまりや、floor()やceiling()を使う等)とバグが起きた時に保守がめんどくさくなるので、ベタ書きの方がいい場合も多い
あと返事じゃなくて戻り値。単語はちゃんと覚えた方がいい
0767名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:33:07.81>>693を再度読み直したが、>>753や>>758には辿り着けない・・・
0768名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:45:22.25>>753だけど、こういうのは文字を読むんじゃなくて、
実際にどういう業務が行われているか?
質問者はどういう人物か?
を先に想像すると結構うまくいく
俺の想像では・・・
質問者は多分PCが少しできる若い人(入社2-3年目ぐらい)で、商品の入出庫業務についている。
・ということは、>>693の数式はあまりアテにならない
・最も重要な情報は現実を表している>>719
・>>721は昔から受け継がれてきた由緒正しいアホな計算方法。これから無くなる仕事なのでそんなに見なくていい
ということが分かる
日本語や質問が下手なんじゃなく、業務が煩雑すぎて混乱しているだけだろう
改善しようと頑張っているのが伝わってきたので、手伝ってあげたくなったよ
0769名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:49:24.50質問者(693)はどういう人物だと思った?
0770名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:52:22.400771名無しさん@そうだ選挙にいこう
2016/04/09(土) 23:55:00.34業務を改善しようとしているんだろう、高く評価する。
それ以外の部分は聖人でも悪人でも男でも女でもどうでもいいってか関係ないわ
0772名無しさん@そうだ選挙にいこう
2016/04/10(日) 00:06:34.29その程度のfunctionならどんな書き方でもいいかと思う
バグが混入する要素もないし、極限までスピードを求めるとか他の要件もないみたいだし
0773名無しさん@そうだ選挙にいこう
2016/04/10(日) 00:22:15.54の
P11=IF([@1]*[@バラ1]+[@2]*[@バラ2]+[@3]*[@バラ3]+[@4]*[@バラ4]+[@5]*[@バラ5]>0,"×","○")
の[@1]って何でしょうか?
0774名無しさん@そうだ選挙にいこう
2016/04/10(日) 01:00:01.240775名無しさん@そうだ選挙にいこう
2016/04/10(日) 01:07:27.72そんな機能があったんですね、ありがとうございます
0776名無しさん@そうだ選挙にいこう
2016/04/10(日) 01:29:33.65ありがとうございました
0777名無しさん@そうだ選挙にいこう
2016/04/11(月) 08:58:45.341・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.46F1=IF(D1="△",MAX(C1:E1)+1,IF(D1="▼",MAX(1,B1:E1)+1,"さいんなし"))
0779名無しさん@そうだ選挙にいこう
2016/04/11(月) 09:53:45.08↓
fn = Thisworkbook.Path & "abc.xls"
Worksheets("ABC").Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=fn , FileFormat:=xlExcel9795
ActiveWorkbook.Close
Application.DisplayAlerts = True
↑
このコードでエラーがでます。
「'SaveAs' メソッドは失敗しました.'_Workbook'オブジェクト」
というメッセージです。
何がダメなんでしょうか?
0780779
2016/04/11(月) 09:56:05.50fn = Thisworkbook.Path & "\abc.xls"になってます。
これをfn = Thisworkbook.Path & "\abc.xlsx"にして、
FileFormat:=xlExcel9795というところを消せば、エラーも出ずうまくいくのですが、
やはりxlsで保存したいのです。
0781名無しさん@そうだ選挙にいこう
2016/04/11(月) 10:24:06.67xlExcel8
ではどうだろう
0782685
2016/04/11(月) 12:39:58.13すみません遅くなりましたがご回答ありがとうございます!
>>686さんもお付き合いして頂いてありがとう
枠を23日分確保して作表をしておきます
余る分にはIFなりなんなりで"-"とかできますけど
足りなかったらどうしようもないですから・・・
0783名無しさん@そうだ選挙にいこう
2016/04/11(月) 14:57:41.87xlExcel8に変えただけでできました。
ありがうございました。
でも、どうしてできたんでしょう?
0784名無しさん@そうだ選挙にいこう
2016/04/11(月) 15:33:46.10不思議なことばかり起きます
0785名無しさん@そうだ選挙にいこう
2016/04/11(月) 16:10:56.39ちょっと説明不足でしたようで。
D列のサインが△ならC列からE列の数値より低い数値をF列に表示。
d列のサインが▼ならB列からE列の数値より高い数値をF列に表示です。
分かりにくくてすみません。
今は新卒でも容赦なく仕事来るものなのですね。
0786名無しさん@そうだ選挙にいこう
2016/04/11(月) 16:24:09.15知らん
単純に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あれ、そうじゃなくて最小値と最大値を出すのか?
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使用しているExcelのバージョンにより使える定数が変わってるっぽい
Excel2003以前 → xlExcel9795
Excel2007以降 → xlExcel8
参考:
http://excel-ubara.com/excelvba4/EXCEL235.html
0789名無しさん@そうだ選挙にいこう
2016/04/11(月) 19:23:02.36グラフがたくさんあるのでいちいちグラフの軸をポチって書式ダイアログをポチってだと大変なんです
0790名無しさん@そうだ選挙にいこう
2016/04/11(月) 19:25:02.43vbaのショートカットキーとか
0791名無しさん@そうだ選挙にいこう
2016/04/11(月) 21:08:24.11なにか日頃からやっておいた方が良い事ありますか?
いらないデータは削除してますが、重すぎる。
0792名無しさん@そうだ選挙にいこう
2016/04/11(月) 21:15:37.34日頃から〜は、ない
ブックを見直すのが一番いい。使用セルの数が増えても、作業列を使ったほうが軽くなる場合も多い
あとは内部的にゴミデータがたまる仕様なので、一度新規ブックにコピーすると軽くなる場合がある。
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.601.パターンがわからんとなんとも
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.71A列,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レス、有難うございます。
セルロックとシート保護機能は知りませんでした。早速やってみます。
有難うございました。
0797名無しさん@そうだ選挙にいこう
2016/04/12(火) 06:19:04.99新規ブックにコピーするだけでだいぶ変わりますか?
0798名無しさん@そうだ選挙にいこう
2016/04/12(火) 06:42:32.75ちょっと変わる
0799名無しさん@そうだ選挙にいこう
2016/04/12(火) 08:11:55.32試せよ…
0800名無しさん@そうだ選挙にいこう
2016/04/12(火) 08:14:23.36先に=を#とかに変えておいて=に戻すとかすれ回避自体はできるけど面倒くさいし
文字列で記号を多用されている表だとそもそも変換しても問題がない文字を探すのが大変
0801名無しさん@そうだ選挙にいこう
2016/04/12(火) 08:34:06.94選択してるグラフの軸の書式設定を開いて最大値にフォーカスあてる、みたいなことがVBAで可能ですか?
0802名無しさん@そうだ選挙にいこう
2016/04/12(火) 10:47:26.23可能です
0803名無しさん@そうだ選挙にいこう
2016/04/12(火) 10:50:22.60VBAのみの例を頼む
0804名無しさん@そうだ選挙にいこう
2016/04/12(火) 10:53:52.90しらん
ショートカットキーを押すと「ダイアログボックスを出し、数値を入れてenterを押すと選択しているグラフの軸の最大/最小値に設定」
みたいなものを考えていたわ
0805名無しさん@そうだ選挙にいこう
2016/04/12(火) 18:58:07.57文字列がほぼ一緒なら「true」と返したいんだが
VBAを使わずになんとかならんものだろうか?
文字の欠損とか余剰も含めるともうさっぱりだ
0806名無しさん@そうだ選挙にいこう
2016/04/12(火) 19:52:07.42ほぼ一緒の定義次第
定義がないならVBAでも無理じゃね?
0807名無しさん@そうだ選挙にいこう
2016/04/12(火) 19:56:55.2512345と23456
n文字目の判定、n文字目がもう片方に存在するか、などをboolean型で横にどんどん並べて平均を取り、
0.8以上ならtrueと返す数式群を自分で作ればいいと思うけど
俺なら絶対やりたくない
0808名無しさん@そうだ選挙にいこう
2016/04/12(火) 23:10:37.46《壱》
�@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《壱》�@
変な記号を使わないでくれ。文字化けしたりする上に読みにくいし入力も面倒で誰の得にもならん
上は1ができるなら2もできるんじゃないか?コード貼ってくれ
下は範囲がわからん。B1の以上以下なのか文字列が内包されているのか
テキトーにカンで答えるとだいたいこんな感じか
d1=if(c1<b1,"ok","ng")
0810名無しさん@そうだ選挙にいこう
2016/04/12(火) 23:35:34.53Private 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上
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.08Target.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文字列の長さはまちまちだけど6割以上ならtrueにしたい
>>807
比較内容はおおよそ正しいか全然違うしかないので、
比較文字列の連続する文字列3文字を抜き出してその文字列が含まれていればtrueでいい
一応こういうの↓を考えたんだけど「*比較文字*」の部分をどう書けばいいのかわからない(MIDで正規表現にできるのだろうか?)
=IF(COUNTIF(A1,"*比較文字*"),"○","×")
後は抽出する場所をランダムにしてそれを3つ準備して2つ以上trueなら判定もtrueというようにできないだろうか?
0814名無しさん@そうだ選挙にいこう
2016/04/13(水) 01:35:42.26countifは使い方が違う。それは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抽出場所をランダムにするだけなら
C1=COUNTIF(A1,"*"&MID(B1,RANDBETWEEN(1,LEN(B1)-2)、3)&"*")>0
とか思い付いた
これを十回足し算して6以上になるならTRUEとかどうだろう?
0816名無しさん@そうだ選挙にいこう
2016/04/13(水) 09:52:06.67ちょっと相談させてください。
Excelにて以下のようなデータがある。
グループA 条件1 条件2
果物 ○
野菜 ○
果物 ○
野菜
野菜 ○
この時、グループごとの「○」の数をカウントしたいんですが
どうやるのが一番いいでしょうか?
適当なセルに=countif(範囲,"○")とやると○の数は数えられても
グループごとの数値を出すことが出来ずに悩んでいます
0817名無しさん@そうだ選挙にいこう
2016/04/13(水) 10:11:33.13sumproduct()。使い方は検索しておくれ
配列数式って機能もあるけど使いにくい。気が向いたらぐぐって
0818名無しさん@そうだ選挙にいこう
2016/04/13(水) 10:23:22.47ありがとうございます。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色々やってみたら
=SUMPRODUCT(A1:A100="果物")*(B1:C100="○")
これでとりあえず必要なデータは出てきたっぽい?です!
ありがとう!
0821名無しさん@そうだ選挙にいこう
2016/04/13(水) 11:26:01.61=SUMPRODUCT(A1:A100="果物")*(B1:C100="○")*(D1:D100)
なんかおかしいですか?
0822名無しさん@そうだ選挙にいこう
2016/04/13(水) 11:33:44.380823名無しさん@そうだ選挙にいこう
2016/04/13(水) 11:40:41.33うん 最後の ) が一つ足りなくね?
0824823
2016/04/13(水) 11:43:24.54=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>>815
いろいろ有り難う
工夫しながら使ってみる
0827名無しさん@そうだ選挙にいこう
2016/04/13(水) 18:34:11.48ユーザーには見せたくないし値を変えさせたくないが、フォーム(VBA)からは値を変更
させたい列(セル)があります。
そこで思いついたのは、該当の列の幅を0にしてしまい、列の幅の変更を不可にして
シートを保護してしまう、というものです。
しかしそれをすると、「読み取り専用だからダメ」というエラーが出て、VBAからセルの値の
編集不可になってしまいます。
何か良い方法はないでしょうか?
0828名無しさん@そうだ選挙にいこう
2016/04/13(水) 19:02:47.760829名無しさん@そうだ選挙にいこう
2016/04/13(水) 22:39:19.81AAA 14
AAA 12
AAA 15
BBB 13
BBB 12
このような表がある場合これを
AAA 10
BBB 12
このようにしたいのですが良い方法はないでしょうか?
0830名無しさん@そうだ選挙にいこう
2016/04/13(水) 22:42:33.69並び替えてからフィルタで重複を除けばすぐだけど
0831マルチですまん!
2016/04/13(水) 22:44:58.170832名無しさん@そうだ選挙にいこう
2016/04/13(水) 22:49:17.22できました。
ありがとうございます。
ああ、全部終わったーーー
0833名無しさん@そうだ選挙にいこう
2016/04/13(水) 22:50:03.17indirect()
0834名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:07:14.65ユーザーフォームのボタンを押すとアクティブなワークブックの名前を表示するように記述しておき
複数のワークブックを立ち上げてひとつを選択→ボタンを押す→ボタンを押す
とやると最初は正しいワークブック名を返すのですが2回目は自分自身の名を返すようです
2007まではどちらもアクティブなワークブックの名前を返してました
従来どおりの反応するようにしたいのですがどうすればできますか
0835名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:14:35.30code plz.
0836名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:32:16.72Msgbox ActiveWorkBook.Name
だけなんですが
この現象ってMDI→SDI変更の弊害だと思ってましたがどうやって回避してるのか知りたいです
0837名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:39:00.57Mac版では通用しないVBAコード一覧みたいなものってありますか?
0838名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:40:39.86返信どうもです
数式の外部参照の部分だけ隠すとかは無理でしょうか?
0839名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:53:09.15名前の定義とか
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.560841名無しさん@そうだ選挙にいこう
2016/04/13(水) 23:59:54.08再現できなかった。
0842名無しさん@そうだ選挙にいこう
2016/04/14(木) 00:03:48.90返信どうもです
今日はもう寝ないとまずいので明日やってみようと思います
0843名無しさん@そうだ選挙にいこう
2016/04/14(木) 00:08:33.04現象でませんか
ワークブックには触らずに
ユーザーフォームのボタン以外のところを
触ったりしてると途中で応答が変わりませんか
0844808
2016/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どこをどう直したかしらんけど
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.97URLに「sakura」が含まれるとNGになる
10年以上前にコピペ荒しが貼りまくってNGにされた
微妙に不便だし、そろそろ解除してもいいと思うんだよなあ
0847名無しさん@そうだ選挙にいこう
2016/04/14(木) 08:25:44.24ある条件を満たすとB列にサインが出るようになっています。
そのサインが出た時の時間を分秒単位でC列に出したいです。
よろしくお願いいたします。
0848名無しさん@そうだ選挙にいこう
2016/04/14(木) 08:44:42.07サインを出す時に一緒に時刻も出せば
もしくは取得の時に、サインが出る条件か判断して時刻を出せば
0849名無しさん@そうだ選挙にいこう
2016/04/14(木) 08:44:45.38VBAでchangeイベント
0850名無しさん@そうだ選挙にいこう
2016/04/14(木) 09:44:39.47そのサインが出た時の時間を出す関数がわかりません。
お願いいたします。
0851名無しさん@そうだ選挙にいこう
2016/04/14(木) 09:58:17.94取得と一緒にやって
0852名無しさん@そうだ選挙にいこう
2016/04/14(木) 10:18:48.21「サインが表示されるセル」には計算式が入っているのでしょうか?
計算式があるとして、関係するセルが多数あるのであれば、
>>849さんが書いてる VBAでchangeイベント を使います。
具体的には、作業用セルを判定用に確保しておいて、初期値を何か設定しておきます。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
もし「判定用セルが初期値」and「サインが表示されるセルの値がサイン」ならば
C*セルにシステム時刻を設定 + 判定用セルの値を変更
※シート上の変更のあったセルの位置情報はまったく用いません。シート上に変更がある都度
判定用セルの値とサインが表示されるセルの値をチェックしているだけです。
End Sub
もし「サインが表示されるセル」が多数あるなら判定用のセルも多数必要になり、
すべての判定用セルとサインが表示されるセルのペアの数だけ毎回チェックすることになります。。
0853名無しさん@そうだ選挙にいこう
2016/04/14(木) 12:54:06.65レーベンシュタイン距離でググれ
0854名無しさん@そうだ選挙にいこう
2016/04/14(木) 13:24:18.37Range("C1") = Date$ & Time$
0855名無しさん@そうだ選挙にいこう
2016/04/14(木) 16:51:12.740856名無しさん@そうだ選挙にいこう
2016/04/14(木) 17:27:18.30これの「/」の数を数えるにはどうしたら良いでしょうか?
0857名無しさん@そうだ選挙にいこう
2016/04/14(木) 17:49:02.88=LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))
0858名無しさん@そうだ選挙にいこう
2016/04/14(木) 17:51:32.05できました。
お手数をおかけしました。
0859名無しさん@そうだ選挙にいこう
2016/04/14(木) 21:55:25.47という関数を以前教えていただいて、使ってますが
C1に数値が入力されるまでは、エラーが表示されずに、空白のままにしたいのですが、
どうすれば良いでしょうか?
0860名無しさん@そうだ選挙にいこう
2016/04/14(木) 22:05:03.700861名無しさん@そうだ選挙にいこう
2016/04/14(木) 22:14:16.830862名無しさん@そうだ選挙にいこう
2016/04/14(木) 22:25:03.080863859
2016/04/14(木) 23:05:24.12当方、excel2000なので、IFERRORが使えない状況です。
ISERRORでくるんだところ、B1,C1ともに空白であれば、空白なんですが、
B1に入力されると、自動で"NG"がついてしまいます。
C1が入力されるまでは、空白でいて欲しいのですが、どうでしょうか?
0864名無しさん@そうだ選挙にいこう
2016/04/14(木) 23:37:27.80を頭に付けりゃいいんじゃね?
0865名無しさん@そうだ選挙にいこう
2016/04/14(木) 23:37:46.60出来ない事はないが 君の今のレベルだと
作業列 使った方が 楽だし確実だと思うよ
0866名無しさん@そうだ選挙にいこう
2016/04/14(木) 23:46:31.62作業列がレベル低いみたいな言い方だな。
嫌なやつ
0867名無しさん@そうだ選挙にいこう
2016/04/15(金) 05:59:35.25本人というよりバージョン的な話だろ
作業列を使わないと処理不可になってる
0868名無しさん@そうだ選挙にいこう
2016/04/15(金) 12:40:23.370869名無しさん@そうだ選挙にいこう
2016/04/15(金) 12:50:26.67相手に合わせて使うかどうか決めるしかないな
0870名無しさん@そうだ選挙にいこう
2016/04/15(金) 13:03:40.890871名無しさん@そうだ選挙にいこう
2016/04/15(金) 13:50:48.93君が >>808さんであるなら >>811さんが書かれてると思うが
0872名無しさん@そうだ選挙にいこう
2016/04/15(金) 14:54:48.900873名無しさん@そうだ選挙にいこう
2016/04/15(金) 15:07:45.00ユーザ定義関数(要VBA)で結構複雑な条件もできたりする事もある
0874名無しさん@そうだ選挙にいこう
2016/04/15(金) 16:45:21.030875名無しさん@そうだ選挙にいこう
2016/04/15(金) 16:55:24.67【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
あるファイルを読み込んで、指定したシートの余分な行を判定して、複数行削除するということをやろうとしています。
処理自体は出来たのですが、
(1) 読み込むファイルのシートが改行ページプレビュー表示で、読み込み後に標準表示に変換(ActiveWindow.View = xlNormalView)した場合
と
(2) 読み込むファイルのシートを最初から標準表示にしておいた場合
とでは、処理速度が5倍くらい違います。※(2)の方が速い
この原因と対策が分かる方、よろしくお願いいたします。
0876名無しさん@そうだ選挙にいこう
2016/04/15(金) 18:14:49.04式の変数束縛の方が正しかったかも
変数使えると嬉しいね程度の意味合いよ
=IF(foo=A1, foo&foo, foo) where foo:=RIGHT(B1, 2)
みたいな。良い例ではないけど
0877名無しさん@そうだ選挙にいこう
2016/04/15(金) 20:03:34.02改行ページプレビューから標準に戻したときに
Sheet1.DisplayPageBreaks = True になっているからじゃなかろうか?
(※標準表示時にも表示される黒い点線の改ページ表示)
おそらく改ページの再計算が1回の行削除メソッド(.Delete)ごとに行われているんでは?
ActiveWindow.View = xlNormalView の後に
Sheet1.DisplayPageBreaks = False を追加で入れてみるとか
0879名無しさん@そうだ選挙にいこう
2016/04/15(金) 21:07:54.49名前は数式のC1:C3とかまで消えるので無理っぽいです
下の方法がよくわからないんですけど、具体的にどうやればいいのでしょうか?
下の方法でいろいろやってるのですが上手くいきません・・・
0880名無しさん@そうだ選挙にいこう
2016/04/15(金) 21:50:22.11セル内変数とでも呼ぶのかな
変数使えたらほぼ全てのことができるようになるんだけどね
>>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その数式書いた本人だけど、=より+で数式始めたほうが書きやすいからそうしてるだけ
+if( 〜
と入力すると
=+if( 〜
に変換される
0882名無しさん@そうだ選挙にいこう
2016/04/15(金) 22:07:58.46あ、説明へたくそですいません。そういう事ですw
式が短くなれば修正しやすくなるので短くしたい感じです
indirectは参照先のブックを開いてないといけないらしいのでないかなぁ
0883名無しさん@そうだ選挙にいこう
2016/04/16(土) 00:39:29.72【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そのシートって会員番号以外には情報ないの?
例えば
A B
001 2016/4/16
002 2016/4/17
みちあに日付や自己億が入ってたりシないの
0885名無しさん@そうだ選挙にいこう
2016/04/16(土) 01:15:09.89ありがとうございます。
日にちごとで日報を作成してるんですが
基本A列の10から会員番号が入り、Bには性別、C以降は氏名など個人情報。
ただ入会が多い日はA9以前のいらない特記事項などの行8行を削ったりして
A3とかからスタートしたりします。
昨日430番まで行ったら今日は431からカウント、大体30人ぐらい日に加入あり
用紙がA3のヨコサイズなので40人とかになるとAには入らなくなり
横のJ2とかから入れることになります。
ただJの下の方には他の数字が入る事も考えられます。
0886名無しさん@そうだ選挙にいこう
2016/04/16(土) 01:29:23.20難しい
関係ない数値
1002
1003
会員番号
1000
1001
などは判別つかない
作業列で抽出したほうがいいかも
0887名無しさん@そうだ選挙にいこう
2016/04/16(土) 01:42:58.10特記事項が数字以外に限定されるなら
=COUNT(A:A)+COUNT(J:J)
みたいな計算式を考えもするが
会員番号にアルファベット混じりがあったらこの方法は無理だね
0888名無しさん@そうだ選挙にいこう
2016/04/16(土) 07:57:34.18SUMでわかるって話は、配列数式の話じゃないかな?
会員番号の上2桁が数字で特記事項上2桁に数字が来ないという前提だと
=SUM(ISNUMBER(LEFT(A:A,2)*1)*1)
CTRLキー+SHIFTキー+ENTERキーで確定みたいな計算式で
A列の会員番号セル数を計算可能
0889名無しさん@そうだ選挙にいこう
2016/04/16(土) 10:13:58.45例えばA1に1を入力
2行目のB列からN列まで数式の結果で、空白か文字列の入っているせるがあります。
1行目のB列からN列まで、2行目に値が表示されている上に連番をふりたいのですが、可能でしょうか?
A1は1だけでなく整数を入力します。
現在は、数式で行っているのですが、vbaでの処理に移行させたいと考えています。
数式は作業列にcounta関数で値の有無を判断し、
1行目にindexとmuchを組み合わせて処理しています。
0890名無しさん@そうだ選挙にいこう
2016/04/16(土) 11:16:53.27俺にレスしてた人は同じ人ですかね?
長々とお付き合いくださりありがとうございましたmm
0891名無しさん@そうだ選挙にいこう
2016/04/16(土) 14:26:56.51可能です
が・・質問内容が 具体性に欠けてるので勝手に解釈してます
'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【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 必要なら検索します
【4 VBAでの回答の可否】 可
0894名無しさん@そうだ選挙にいこう
2016/04/16(土) 17:45:42.50データ1,2共 どのようにデータが入ってる?
A列 B列
太郎 昭島市朝日町3-5-13
それとも1セルに名前と住所が入ってるの
A列
太郎:昭島市朝日町3-5-13
前者の方がデータ処理がやりやすいが
後者なら一旦分離しないといけない
0895名無しさん@そうだ選挙にいこう
2016/04/16(土) 17:50:05.72セルは分かれてるので後者です
0896名無しさん@そうだ選挙にいこう
2016/04/16(土) 17:50:42.80間違えた
セル分かれてるので前者です
0897名無しさん@そうだ選挙にいこう
2016/04/16(土) 18:12:55.890898名無しさん@そうだ選挙にいこう
2016/04/16(土) 18:17:51.07それだと手作業で住所を打ち込まないといけないのではないですか?
データ2のセルから取った文字列でデータ1を検索したいのですが
その書式がわからないのです
0899名無しさん@そうだ選挙にいこう
2016/04/16(土) 18:21:47.48>>誰がどの学区かわかればもっと嬉しいです
ちょっとこれが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おおおおおおお!ありがとうございます!上手くいったようです!
VBAは初心者ですが普段SQLの勉強してたりするのでVBAでもありがたいですよ!
でもこれだけでも助かります!ありがとうございます
0901名無しさん@そうだ選挙にいこう
2016/04/16(土) 22:03:45.28ありがとうございます!
0902名無しさん@そうだ選挙にいこう
2016/04/16(土) 23:20:53.480903名無しさん@そうだ選挙にいこう
2016/04/16(土) 23:34:27.310904名無しさん@そうだ選挙にいこう
2016/04/17(日) 00:20:00.650905名無しさん@そうだ選挙にいこう
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できない
xlUpの結果が1だった場合は1列目のセルの内容までチェックするしかない
0907名無しさん@そうだ選挙にいこう
2016/04/17(日) 01:01:29.01正常です
また END(xlUp) は基本的に手動の Ctrl+↑ の動作と同じセルを参照します
0908名無しさん@そうだ選挙にいこう
2016/04/17(日) 01:06:47.76ありがとうございました。 もうひとつ教えてください。
あなたのお答えを拝見し、 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仕様です
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長さ0の文字列は空文字列
0911名無しさん@そうだ選挙にいこう
2016/04/17(日) 01:44:07.700912名無しさん@そうだ選挙にいこう
2016/04/17(日) 01:45:49.15文字列型の変数がnothing
>>911
それがいいよね
?Isnull(Cells(1, 1).value)
->False
isnull()は単純に使わないほうがいいと思う
is nothingとも違う、非常に使いにくい関数
0913名無しさん@そうだ選挙にいこう
2016/04/17(日) 01:53:22.29null文字列はStrPtr関数の戻り値が0になる。
空文字列はStrPtr関数の戻り値が0でない。
0914名無しさん@そうだ選挙にいこう
2016/04/17(日) 02:03:21.32ありがとうございます。
.valueをつける癖を身につけます。
0915名無しさん@そうだ選挙にいこう
2016/04/17(日) 02:03:45.67マイナー関数を使いこなす労力は学習コストが高すぎる
0916名無しさん@そうだ選挙にいこう
2016/04/17(日) 02:03:47.04それに突っ込んだだけの俺に言われても
0917名無しさん@そうだ選挙にいこう
2016/04/17(日) 02:06:28.81そこに突っ込みながらそれを考慮した回答をすれば何も問題なかった
0918名無しさん@そうだ選挙にいこう
2016/04/17(日) 14:55:49.22▼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サインって何?セルの値のこと?
0920名無しさん@そうだ選挙にいこう
2016/04/17(日) 15:18:03.81=IF(A1=A2,B2+1,1)
0921名無しさん@そうだ選挙にいこう
2016/04/17(日) 15:33:37.89マルチいくない
>>1 9マルチは嫌う人が多いのでなるべく避けましょう。マルチをすると、逆に回答は得られにくくなると思ってください。
0922名無しさん@そうだ選挙にいこう
2016/04/17(日) 16:48:10.59できました!
教えていただきありがとうございました。
0923名無しさん@そうだ選挙にいこう
2016/04/17(日) 19:20:43.57↓
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普通に引き算して秒なら書式設定を[s]、分なら[m]など
a1=now()
b1=2016/4/15 5:57
c1=b1-a1
0925名無しさん@そうだ選挙にいこう
2016/04/17(日) 20:34:33.710926名無しさん@そうだ選挙にいこう
2016/04/17(日) 20:41:00.00シリアル値でぐぐって勉強したほうがいい
0927名無しさん@そうだ選挙にいこう
2016/04/17(日) 20:41:43.91ってのはわかりにくい
書式勝手に変わるのやめてほしい
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.280930名無しさん@そうだ選挙にいこう
2016/04/18(月) 09:08:20.12その列に元データが存在するかどうかを調べる時によく利用している。
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.880933名無しさん@そうだ選挙にいこう
2016/04/18(月) 11:43:10.79変えたくない部分に$を付ける
B9→$B$9
B9→$B9
B9→B$9
0934名無しさん@そうだ選挙にいこう
2016/04/18(月) 12:14:54.19絶対参照をググり、F4キーを押す事で、$が付いて、固定できました。
有難うございました!
初歩的な質問、すみませんでした。
0935863
2016/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こんな感じから詰めてきたいって事かな。
0937名無しさん@そうだ選挙にいこう
2016/04/18(月) 13:42:44.93少しでもいいから自分なりに頑張ったほうがいい
難易度は大したことないけど、はっきり言ってかなり面倒なので丸投げされてもやる気が起こらん
0938名無しさん@そうだ選挙にいこう
2016/04/18(月) 15:44:01.08元々の質問から追っかけるのめんどいから してないので
確認させて
1)作業列はイヤ
2)B1とC1 どちらか一方が空欄なら D1は空欄 (両方そろって入った時のみ 計算させる)
3)数式の計算でエラーがでた場合 空欄にしたい (IFERROR関数は使えない)
でいいのかな?
作ってみたけど
IFERROR関数使えればまだいいけど 使えないと 作業列使った方が 楽な感じになったぞ
それでも欲しい???????
0939名無しさん@そうだ選挙にいこう
2016/04/18(月) 15:55:12.77その確認事項で間違い無しです。
欲しいです。丸投げしてしまい、本当に情けないですが、教えて欲しいです。
宜しくお願いします。
0940名無しさん@そうだ選挙にいこう
2016/04/18(月) 16:09:32.09=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優しいな
回答してからの苦言だから説得力あるよ
オレは作業列ダメって質問はスルーしてる
0942名無しさん@そうだ選挙にいこう
2016/04/18(月) 20:53:42.30作業列を使わないと無理だね
0943名無しさん@そうだ選挙にいこう
2016/04/18(月) 21:15:09.49940です
そなんだ 知らなかった
ま俺の元々の趣旨は "長い複雑な数式つくって どうするの? メンテ出来るの?"だから
どっちでも いいけど
0944名無しさん@そうだ選挙にいこう
2016/04/18(月) 21:17:47.43昔こういうのよく書いてたわ。ややこしくてややこしくて仕方なかったけど、何故か楽しかった記憶がある。
今思えば仕事するふりをしていたんだろうな
0945名無しさん@そうだ選挙にいこう
2016/04/18(月) 21:55:43.44「誰だこんな数式作ったヤツは!!!!!!!」って発狂しそうになると
0946名無しさん@そうだ選挙にいこう
2016/04/18(月) 22:00:03.15一年ぐらい前につくってコピペして使っていた数式を今日改めて見て吹いた俺
無駄にOFFSET使いまくって見にくいことこの上なかったw
無意味に複雑にすると自分のレベルが上がったように当時思えたんだろうな
無論、無意味に複雑な式を単純な式に切り替えた
0947名無しさん@そうだ選挙にいこう
2016/04/19(火) 00:42:06.86tabで移動してそのままキーボードで(マウスに頼らず)選択して確定までする方法
ありますか?
0948名無しさん@そうだ選挙にいこう
2016/04/19(火) 00:45:19.49alt+↓ でプルダウン
↓ 連打で選択
あとはenter
0949名無しさん@そうだ選挙にいこう
2016/04/19(火) 00:45:35.690950名無しさん@そうだ選挙にいこう
2016/04/19(火) 03:59:25.301,3,6,10,15,16,18行目
A〜E列
のようなバラバラな範囲を配列にする事は可能でしょうか?
0951名無しさん@そうだ選挙にいこう
2016/04/19(火) 04:49:24.01用途によってはジャグ配列なら可能かもしれないし無理かもしれない
0952名無しさん@そうだ選挙にいこう
2016/04/19(火) 06:35:09.22可能ですよ
0953名無しさん@そうだ選挙にいこう
2016/04/19(火) 11:37:51.83例えばですが、
シート1の1,3,6,10〜行、a~e列の値を
シート2の23,29,35,48~行、b~f列に行列を入れ替えて転記するというような事をしたいです。
行数や列数は例より多いのですが、シート1の行列数とシート2の行列数は同じです。
0954名無しさん@そうだ選挙にいこう
2016/04/19(火) 12:17:05.12b = 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その説明例だと行列を入れ替えになってなくね?
範囲がバラバラだとしても
4行x5列 → 4行x5列 になってるよね?
普通 行列を入れ替えは(行と列が反対になるんだから)
4行x5列 → 5行x4列 になるっしっよ?
0956名無しさん@そうだ選挙にいこう
2016/04/19(火) 15:02:13.87例が悪かったです。すみません。
実際は、行列ともに50個なので行列入れ替えしても行列数が変わりません。転記元と転記先で使用する行列番号が違うのと、転記したい範囲がバラバラなので、解決方法がわからず質問させていただきました。
>>954
Array関数を使うんですね。ありがとうございます。
やってみます。
0957名無しさん@そうだ選挙にいこう
2016/04/21(木) 00:15:57.15有難うございました。
無事、実現したいことが出来ました。
自分でも勉強して、自分の力で解決できる力を身につけます。
有難うございました。
0958名無しさん@そうだ選挙にいこう
2016/04/21(木) 00:57:05.76940です
あれ使うんだ 結構 ドM だねwww いいけど
勉強するなら 作業列の有効性を勉強しなよ マジで
0959名無しさん@そうだ選挙にいこう
2016/04/21(木) 01:03:37.99俺の使うシートじゃないからなんでもいいけどな
0960名無しさん@そうだ選挙にいこう
2016/04/21(木) 05:43:46.96割りと作業列があるとみっともないから使うなと言ってくる人は多いのも確か
作業列使うなと言うわりにメンテナンスを週一ぐらいでする羽目になっていた当時のことは思い出したくないw
0961名無しさん@そうだ選挙にいこう
2016/04/21(木) 05:49:36.58どうセキュリティに影響するのか理解できんが
0962名無しさん@そうだ選挙にいこう
2016/04/21(木) 06:21:16.37多分、サポート切れたXP使ってるので特に気をつけてるんだよw
救いようがないリテラシー
0963名無しさん@そうだ選挙にいこう
2016/04/21(木) 06:30:09.84とっくの昔にサポート切れてる
これをやめて2013とか2016とか
(あるいは使えるなら2007とか2010でもよいけど)にすれば
IfErrorが使えるから作業列がどうとか議論する必要さえなくなる
0964名無しさん@そうだ選挙にいこう
2016/04/21(木) 07:29:57.86会社中のPCにインストールしたんじゃ?
0965名無しさん@そうだ選挙にいこう
2016/04/21(木) 07:34:31.84IFERROR使えても作業列を使った方がいい複雑さだと思うぞw
場合によるとExcel2000レベルの関数しか使えないExcel風アプリに使うのかなとは思う
作業列作りたくても作れないタイプのアプリがあるし
それならサポート切れ云々は無関係だし
0966名無しさん@そうだ選挙にいこう
2016/04/21(木) 07:41:35.52今時Excel2000ってそれ以外の理由ないだろw
無料のLibreOffice Calcの方が初心者には使いやすいのに
IFERROR関数は無いけど
0967名無しさん@そうだ選挙にいこう
2016/04/21(木) 13:20:16.540968名無しさん@そうだ選挙にいこう
2016/04/21(木) 13:23:53.05a = cells(1,1).value
を調べるのに30分ぐらいかかったわ
2007とかなら3000円ぐらいで売ってるからそれ買えばいいのに
0969名無しさん@そうだ選挙にいこう
2016/04/21(木) 13:59:55.94Calc独自のVBA使うとExcelじゃ動かないだろうが
0970名無しさん@そうだ選挙にいこう
2016/04/21(木) 14:22:03.921から書いてたわ
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のように表を作りたいんですけど効率のいい
方法はありませんか?
自分はとりあえず並び替えしてセルを結合して数を目で数えて作ったのですが
分かりにくいかもしれませんがよろしくお願いします。
0972971
2016/04/21(木) 22:10:27.35NOがまとめられている
名前はまとめて一つに表示
理由はそれぞれ表示
票数も自動で計算
です。お忙しいところ恐縮ですがよろしくお願いします。
0973名無しさん@そうだ選挙にいこう
2016/04/21(木) 22:14:25.19まぁ色々あるけど一番手っ取り早いのが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使えなかったら目視で切り取って新しいブックに張り付けるしかないですかね?
0976名無しさん@そうだ選挙にいこう
2016/04/21(木) 23:04:40.350977名無しさん@そうだ選挙にいこう
2016/04/21(木) 23:07:59.820978名無しさん@そうだ選挙にいこう
2016/04/21(木) 23:16:31.95C5&D5の意味が理解できません
初心者ですいません本当に
0979名無しさん@そうだ選挙にいこう
2016/04/21(木) 23:23:45.18やっぱりvbaが手っ取り早い
0980名無しさん@そうだ選挙にいこう
2016/04/22(金) 03:51:29.02【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.10EXCELは データの集計なら 数式使えばなんとかなるけど
表の整形ともなると
ヒポット辺りで出来るものならいいけど
それ以外の方法の 数式でやるとかは困難で VBAを使わないと難しいよ
多分数式のみで出来たとしても かなり複雑な事になるのでお勧めしない
0982名無しさん@そうだ選挙にいこう
2016/04/22(金) 05:26:20.900983名無しさん@そうだ選挙にいこう
2016/04/22(金) 06:26:48.850984名無しさん@そうだ選挙にいこう
2016/04/22(金) 07:07:04.50COLUMNで引き算するぐらいしかないのかな?
INDEXの方が気軽に使える
0985名無しさん@そうだ選挙にいこう
2016/04/22(金) 07:54:19.86index関数単独では vlookupの機能は実現できないが・・・
0986名無しさん@そうだ選挙にいこう
2016/04/22(金) 08:17:13.80なんの制限もないから好きにしたらいい
0987名無しさん@そうだ選挙にいこう
2016/04/22(金) 10:00:24.693・ ・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.35Excel総合相談所 122 [無断転載禁止]?2ch.net
http://echo.2ch.net/test/read.cgi/bsoft/1461287268/l50
0989名無しさん@そうだ選挙にいこう
2016/04/22(金) 10:12:02.32すまん、よくわからんが大きい方ってことでいの?
=MAX(A1:B1)
0990名無しさん@そうだ選挙にいこう
2016/04/22(金) 10:12:23.49ランダムとリセットはぶちこまなくていい
0991名無しさん@そうだ選挙にいこう
2016/04/22(金) 10:46:42.963・ ・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あぁこれ行の事言ってたのか
=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できました
ありがとうございます。
0995名無しさん@そうだ選挙にいこう
2016/04/22(金) 12:16:58.01横軸用番号をふればいいんじゃね?
表に出したくないなら非表示にするとかして
0996名無しさん@そうだ選挙にいこう
2016/04/22(金) 13:34:20.32【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.64vlookupを使う。使い方詳細は検索
シート2のAC列、同じ数字がない場合は
=iferror(vlookup(a:b),"")&iferror(vlookup(c:d),"")
ある場合は結構めんどくさい
0998名無しさん@そうだ選挙にいこう
2016/04/22(金) 14:12:18.76ありがとうございます、やってみます。
シート2の表内のAC列の数字は同数はないです、表内の順番が違うだけで全部連続して個別です。
説明が足らずごめんなさい。
0999名無しさん@そうだ選挙にいこう
2016/04/22(金) 14:14:33.151000名無しさん@そうだ選挙にいこう
2016/04/22(金) 14:15:05.9210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 64日 13時間 58分 4秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。