X



Excel総合相談所 132
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2018/07/01(日) 12:22:32.86
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

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

前スレ
Excel総合相談所 131
https://find.5ch.net/search?q=excel

Excel VBA 質問スレ Part51(1000到達済み)
https://find.5ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ4
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
0652名無しさん@そうだ選挙にいこう
垢版 |
2018/10/15(月) 16:50:11.33
>>651
lookup関数でダメですか?
データがどんな感じかイメージが難しいけど。
0653名無しさん@そうだ選挙にいこう
垢版 |
2018/10/15(月) 18:23:17.77
ベースデータを温度表A、ぶつける先を場所表Bとして、Bを時間で降順にする

1. 表Bの時間に対して、次の時間との中間値を保持
例)A3に =ROUNDDOWN( (A1+A2)/2, 10)

2. 表Aの時間からMATCHの「以上」設定で 中間値を探す
※表Aの値以上の最小値の行が判る
=MATCH(表Aの時間, 表Bの中間値全部, 1)

3.その行の場所データを取る。

かなあ、VLOOKUPとかは近似値の上下どっちにあたるかランダムだし
0654名無しさん@そうだ選挙にいこう
垢版 |
2018/10/15(月) 18:23:39.18
こんな?
時間 気温 INDEX(場所エリア,MATCH(時間,中間値エリア,-1),1)
11:00:00 28.3C 場所A
11:00:05 28.1C 場所B
11:00:10 27.9C 場所B
11:00:15 27.9C 場所C
11:00:20 28.4C ダミーED

時間 場所 RoundDown(値,10)
11:00:20 ダミーED 12:00:00
11:00:19 場所D 11:00:19
11:00:14 場所C 11:00:16
11:00:07 場所B 11:00:10
11:00:01 場所A 11:00:04
11:00:00 ダミーST 11:00:00
0655名無しさん@そうだ選挙にいこう
垢版 |
2018/10/15(月) 18:28:12.53
うわ、基本仕様見落としてる。すまん馬鹿だった。場所と温度の親子関係逆じゃないか
>近い時間のGPSログに、気温ログを統合させたい
0656名無しさん@そうだ選挙にいこう
垢版 |
2018/10/15(月) 18:55:14.94
>>649
気温データをちょっといじって
A列 元の時間-1.5秒
B列 元の時間+1.5秒
C列 気温
みたいな表にしとく

GPSデータの方でSUMIFSなりSUMPRODUCTなりで
A列<GPSの時刻<B列 になるデータを拾う

俺ならこうする
0659名無しさん@そうだ選挙にいこう
垢版 |
2018/10/15(月) 21:27:59.85
>>632
>>633
回答ありがとうございます。
>>633のおっしゃる通りです。
無理そうですね。実はデータはもっとあるのでどうにかしたかったです。
0661名無しさん@そうだ選挙にいこう
垢版 |
2018/10/16(火) 17:17:38.90
>>649
配列数式っての初めて使って、上下比較して近似値にVLOOKUPしかける式作ってみたけど。説明めんどい

単純に以上か以下固定しちゃって、一番近い値ならすっげえ簡単。つか一発、そうしちゃえ
0662名無しさん@そうだ選挙にいこう
垢版 |
2018/10/17(水) 09:38:11.96
スレチだったらスマソ
Android版のExcelの「画像から表を作成」の機能ってまだ実装されてない?
office365のベータ入ってるけど見当たらない
0667名無しさん@そうだ選挙にいこう
垢版 |
2018/10/17(水) 11:34:33.23
【1 OSの種類         .】 Windows7,10
【2 Excelのバージョン   】 Excel 2007,2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

北海道 青森県 秋田県
札幌市 青森市 秋田市
旭川市 弘前市 男鹿市
函館市 八戸市 大仙市
小樽市 三沢市 仙北市
千歳市 むつ市
室蘭市 平川市
石狩市

岩手県 宮城県 山形県
盛岡市 仙台市 山形市
滝沢市 石巻市 上山市
一関市 大崎市 東根市
花巻市 栗原市 天童市
遠野市       新庄市

上記のようなリストがあります。(このリストは画面をスクロールせずに全て見ることが出来きます)
A1にドロップダウンリストがあって
「北国A」を選択するとB1のドロップダウンリストには北海道の市が表示
「北国B」を選択するとB1のドロップダウンリストには青森県の市が表示
「北国C」を選択するとB1のドロップダウンリストには秋田県の市が表示
「北国D」を選択するとB1のドロップダウンリストには岩手県の市が表示

といった感じにしたいのですが、どのようにしたら良いのでしょうか?
厳密には北海道、青森県・・・山形県の部分は正式名称で、北国A、B・・・Dの部分は略称です
略称には正式名称の文字を含んでいなかったり、カタカナ表記で略しているのもあります
0668667
垢版 |
2018/10/17(水) 11:50:37.34
北海道 札幌市 旭川市 函館市 小樽市 室蘭市 千歳市 石狩市
青森県 青森市 弘前市 八戸市 三沢市
秋田県 秋田市 男鹿市 大仙市 仙北市
岩手県 盛岡市 滝沢市 一関市 花巻市 遠野市
宮城県 仙台市 石巻市 大崎市 栗原市
山形県 山形市 上山市 東根市 天童市 新庄市

このように大項目と言える部分がA列にあれば、スレ内の質問にあった手法で出来そうなのですが
リストをスクロールせずに1画面に表示させる為にA1、B1、C1、A10、C10、B10に大項目があるので使えない感じがします
他にも正式名称と略称の紐づけもあって、どのように手を付けたら良いのか困っています
0669名無しさん@そうだ選挙にいこう
垢版 |
2018/10/17(水) 13:49:12.13
別シートに 668形式で値を保持してマスターデータに、ドロップダウンはそっちを利用する
667は見た目だけのシート、値は668シート参照してとってきてもいい
0675名無しさん@そうだ選挙にいこう
垢版 |
2018/10/17(水) 20:54:27.14
>>672
まずワークシート全体の書式を(左右)中央揃えにする
A1 B1 C1を結合して4/1と入れて書式を m"月"にする
A2に=A1と入れて書式をdにする
B2に=A2と入れて書式をaaaにする
C2に=IF(MOD(A2,7)>1,"○","休")と入れる
A2 B2 C2を選択したらフィルハンドルをつかんでずるずると下に引っ張る
A B C列をコピーしてD E F列に貼り付け
D1に=DATE(YEAR(A1),MONTH(A1)+1,1)と入れる
D E FをコピーしてG H I列以降好きなだけ貼り付け
最後に調の日だけ手動で入力
0676名無しさん@そうだ選挙にいこう
垢版 |
2018/10/17(水) 20:57:04.38
あ、あと31日の塗りつぶしも手作業でやって
自動でもできるけどちょっと手間がかかるから、手動のが早い
うるう年だけ注意して
0680名無しさん@そうだ選挙にいこう
垢版 |
2018/10/18(木) 11:29:34.00
対象をファイルに保存してExcelでイメージを挿入・・
というボケが間に合わなかったー。

リモコンの電池カバーどうした
0681名無しさん@そうだ選挙にいこう
垢版 |
2018/10/18(木) 15:41:01.76
1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
エクセルの印刷について教えてください。

かなりの分量の資料を作成しました。
横26行以上、縦80行以上、その全てのセルに何文字も入っている資料です。

完成はしましたが、ここから印刷して渡さないといけないので、今エクセルの印刷の設定をしてますが、苦戦してます。

例えていうなら、A4サイズ3枚で印刷したいとき、設定で縦3といれて、横を一枚にそろえるでやったところ、最初の2枚はギチギチですが、最後の一枚は上数10cmしか使ってないみたいな。
こうなるくらいなら、A4三枚で全部ギリギリまで使ってもう少し文字大きくしてほしいんです。そういう拡大をしたいんです。

このシートをA4(もしくはA3)用紙一杯のものを○枚の状態で作りたいのです。
仕事上ページの指定は厳しくないので、列が全部収まってれば行はいくらでも構わない、ページ数も増えてもまあいいという感じです。
しかし、印刷設定で列を1ページにおさめるとかやるとどうしても縮小されてしまいます。

こういう分量多いものをきれいに印刷する方法を何でもいいから方法教えてください。

最悪入力したものを削って内容簡素化するのもありです。
0682名無しさん@そうだ選挙にいこう
垢版 |
2018/10/18(木) 15:49:35.88
列幅基準で縮小されるならその倍率にしないと全部の列入らないんじゃないの
それなのに拡大しろとか無茶言うなって話
0684名無しさん@そうだ選挙にいこう
垢版 |
2018/10/18(木) 17:41:35.03
683やね。

横26項目に文字いっぱい?A4じゃ見えないと思う。A3横が無難

1.余白は手動で全部0か、タイトルなどにギリギリまで寄せる
2.プレビュ表示モードにする
3.行の高さを広げていき、丁度いい具合で止める

自分のやり方だけど、縦は自動(文字サイズ次第)のままで
表の右、印刷範囲外の列を選択して「フォント△」で大きくする。フォントサイズに合わせて行が広がる
広げてる見出し行とか、改行入りでもともと広がってる行とかには影響しない
0685名無しさん@そうだ選挙にいこう
垢版 |
2018/10/18(木) 19:07:17.63
>>675
たびたびすいません、ご指摘通りに入力し
オートフィルでコピーしたけど連続でコピーされなくてオートフィルのオプションにも
「連続データで」の選択が無いのでA2のセルは「1」B2が「日」でしかコピー出来なくて困ってます
何が悪いのでしょうか?
0688名無しさん@そうだ選挙にいこう
垢版 |
2018/10/19(金) 14:41:52.95
>>675
お手数ですが気が向いた時でいいので
IF(MOD(A2,7)>1,"○","休")が平日○土日休になる仕組みを教えて頂けますか?
0689名無しさん@そうだ選挙にいこう
垢版 |
2018/10/19(金) 15:21:45.10
日付の内部データは1900/1/1 = 1、からの連番なので
7で割った余りが0なら土曜日、1なら日曜日 になる。水曜休みなら=4にする
今日2018/10/19は43392

※1900/2/28以前は1日ズレる問題はある、がどうでもいい
0691名無しさん@そうだ選挙にいこう
垢版 |
2018/10/19(金) 20:20:30.39
>>689
なるほど土曜日が7の倍数だから割ると0
日曜が8の倍数だから余り1になるわけか
ありがとうございます、納得しました
0695名無しさん@そうだ選挙にいこう
垢版 |
2018/10/19(金) 22:08:44.84
>>690
それも良いかも、少しは自身の頭で考えないと為にならないし
0699名無しさん@そうだ選挙にいこう
垢版 |
2018/10/20(土) 06:00:46.20
複合参照を難しく考えすぎてしまい訳わかんなくなる
0702名無しさん@そうだ選挙にいこう
垢版 |
2018/10/20(土) 12:32:36.50
マクロ初心者なんですが何回も同じ処理を使いたいんてすが
callで別プロシージャ呼び出して結果を元プロシージャの変数として使いたい場合functionでいいんですか?
もちろん別プロシージャを使わずに変数のセットを何回も書くって方法もあるとは思いますが、スッキリさせたいので
0706名無しさん@そうだ選挙にいこう
垢版 |
2018/10/20(土) 14:17:32.23
多分裏側同じだろと、ふと数式200万セルで100万回 calculate 回してみた
mod 42.41秒 weekday 44.42秒 PCの状態より、weekdayが+1加算してるからかな
0710名無しさん@そうだ選挙にいこう
垢版 |
2018/10/21(日) 11:36:42.27
>>689
1900年のバレンタインの曜日が間違えていると再提出命じた上司を思い出した
意地悪目的ではなく、新人に仕組みを学ばせるためだったようだが
0711名無しさん@そうだ選挙にいこう
垢版 |
2018/10/21(日) 12:50:21.03
難しく考えすぎると逆に効率的なやり方を思い付かなくなるんだ…
こっちは命令を出す側なのを意識して仕事の段取りをする事に集中するってか
0713名無しさん@そうだ選挙にいこう
垢版 |
2018/10/21(日) 20:25:49.99
ビジネスで優秀な人材育成する上司は何を教えているのか?
https://www.youtube.com/watch?v=apxtSqxjw08&;t=13s
マクドナルド伝説の店長が教える、最強店長になるために必要なこと
https://www.youtube.com/watch?v=0wMbR7JIeeQ&;t=3154s
「最強の働き方」長時間労働やノウハウよりも大切なこと
https://www.youtube.com/watch?v=JnMHbI1-e3E&;t=3606s
美容師の楽しさ再発見!やる気スイッチが入る働き方セミナー
https://www.youtube.com/watch?v=DGzXQT799oY
もうダメだ…仕事が辛い時に乗り切るための3つの思考
https://www.youtube.com/watch?v=VEPf8viBpRU
視覚障がいを乗り越えた活法家
https://www.youtube.com/watch?v=6IuY_K3uFdo&;t=805s
0714名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2018/10/22(月) 10:58:54.75
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

お願いします

1月1日〜1月31日 が一つのセル内にあって毎月"月"を変えたいのですが
数式で変えると末日の表示の所がうまくいきません
EOMONTH(TODAY(),0)を最後に組み込むとシリアル値そのままが返ってしまいます
セル書式設定はEOMONTH単独だと日付に変換されるのですが
1月31日の部分に入れると無効になりました
何か他の方法ありますでしょうか?
0716名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 11:25:49.25
ありがとうございます

ちょうど今試していて別セルに出したeomonth参照でなんとかできたのですが
月でIFを使い、間に文字列挟むので数式がめっちゃ長くなってしまいました
初心者なものでスリム化できなくて
0717名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 11:28:16.84
A. 書式を 「m"月1日〜"m"月"d"日"」にして、価を =EOMONTH(TODAY(),0)
B. =TEXT(EOMONTH(TODAY(),0),"m""月1日〜""m月d日")

※個人的には式内にTODAY()は好きではないな
前月分、翌月分などを処理したい時に数式の中を書き換えたくないから
どっかに基準日セルを持ちたい
0719名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 12:59:32.40
>>714
式の長さじゃ無くてわかりやすさ重視でいくならchoose関数で12ヶ月分指定するのもありかな。閏年の考慮は必要だけど、式を見ただけで誰でもわかると思う
0722名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 16:12:58.09
>年間カレンダーを作成して特定の日にちを空欄にし
>まとめて「休」の字を入れるのに何かうまいやり方無いですか?

これの「どこ」を「うまいやり方」でやりたいの?
「特定の日にちを空欄にする」なら、「特定の日にち」を特定する方法が分からなければ
回答できないし、「空欄に『休』の字を入れる」だけなら置換するかジャンプ機能でできる。
「年間カレンダーを作成」なら、カレンダーの様式から不明なので、答えようがない。
0723名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 18:27:02.36
1.まず日付、休有無、表示テキスト の年間データを作ります
2.年間カレンダーのレイアウトを作ります
3.年間データの値を引っ張ってきます
4.データ表に入れたとおりに一瞬でカレンダーが完成
0727名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 20:46:32.02
カレンダーはオフィスタナカ(表示名うろ覚え)にあるサンプルが一番適切
一年を1Sheetに日付順にずらずら並べて、土日のみならず、祝祭日も
ちゃんと(VBAで)判別してる それを週・月・年とかのそれぞれのシートに
反映させてて見た目もそれなり それを改良するのが一番手っ取り早い
年が変われば別にSheetを作って元日から大みそかまでを新規作成 という流れ

来年たぶん新たに増える祝日にも対応可
因みに春分・秋分は海上保安庁が確定させるので二年先は(予定)というのが正解
0728名無しさん@そうだ選挙にいこう
垢版 |
2018/10/22(月) 23:24:56.76
>>726
俺は「西向く侍」派

このクソ長い関数は1と入力すると31、2と入力すると28・・・・12と入力すると31になるのかな?
地味に耳が痛くなるかもね
0732名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 03:05:22.57
結局そこに落ち着くんだよね、サイトが間違ってたらオワ
政府のページあたりに法定休日とかcsvで取れるページありゃ良いのに

政府のweb検索からデータ貰うマクロ組んだけど
1データ毎にブラウザ戻るが必要で困る
かけっぱなしでIEパカパカさせてる
0733名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 11:53:52.50
URLやページ構成が変わったらアウトだから、結局ノーメンテにはならない
政府系のサイトだってしょっちゅうアドレスが変わるし、実際それで苦労したことが何度もある

確かに国が色々なデータを取得できるWebAPIとか用意してくれてもいいよね
できれば省庁をまたいで共通プラットフォームで
0734名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 11:56:08.51
エクセル2016
vba可

あるアプリから抽出されたデータがエクセルのファイルとして出力される。
その中の表を、さらに集計したり加工したりするんだが、毎回手でやるのも面倒なので、別の既に関数入れたテンプレート的なファイルを開いて、表をコピー&ペーストして終わらせてる。

アプリから出力されたエクセルのデータを、既に関数の入ってるシートに自動でコピーしたい。

同じブック内なら簡単にvbaで出来るが、異なるファイル間でやる方法がよくわからない。
出力されるファイルの名前はランダム。
無理でしょうか?

PowerShellの領域かなとも思ったんですが、エクセルだけで完結できると助かります。
0735名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 12:03:08.59
>>734
違うブックへデータをコピーすること自体はVBAで簡単にできる
ランダムでもファイル名を手動で入力すればいいんじゃない?
保存されるフォルダが固定なら、その中から更新日が最新のファイルを開くのもVBAで可能だけど
0736名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 12:22:19.04
>>735
出力されたデータはどこかに保存されるわけではなく、そのまま開いた状態。
既に開いているエクセルのファイル(ファイル名不明)を別のエクセルで開いたブックからvbaで取得する方法があればと。
0738名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 14:03:22.65
カレンダーって言うと職場の男は昔ヤクザやってたらしいが
悪い元先輩に「お前、俺等が出演してるカレンダー買えよ!」と言われ
一つ四万円でも無理やり買わされたって言ってたな
買ったのを見せてもらったがヤクザ達が刺青出してふんどしになり
海岸でポーズ決めてる写真ばっかりでクソワラタw
0740名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 15:52:20.57
>>736
VBAでWorkbooksコレクションオブジェクトというのを使えば、今開いているブックの一覧を簡単に調べることができます
あとは、セルの内容とかシート名などを頼りに、目的のブックを機械的に見つける方法があるかどうかですね
0741名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 16:45:49.87
まあ、シート1の名前とかA1の値とか。なんか識別はできるだろう

もう1つの方法。自分だけしか使わない自分用なら
Personalにマクロ作って、開いた状態で実行して結果を別のBookにするとかでもいい
実行する時は「ペルソナー!」って叫ぶ
0742名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 18:41:31.88
【1 OSの種類         .】 Windows7Pro
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい(マクロをボタンに登録して使うくらい)
【4 VBAでの回答の可否】 可

vlookup参照をVBAで最終行まで繰り返し処理したいです

具体的には、
A4からA列の一番最後の行を調べて
C4=VLOOKUP(A4,H4:J100,3,FALSE)
をC列でA列の最後の行まで繰り返したい
H4:J100の範囲はH4からH列の一番最後の行のJ列までにしたい

前提としてA列とH列は途中に空欄ありません
H列に無くてA列にある値があります。その場合N/Aではなく空欄にしたいです
0744名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 19:07:31.18
>>742
Sub Macro3()
Dim rowA As Long
rowA = Range("A4").End(xlDown).Row
Dim rowH As Long
rowH = Range("H4").End(xlDown).Row

Range("C4").Formula = "=IFERROR(VLOOKUP(A4, H$4:J$" & rowH & ", 3, FALSE), ""\(^o^)/"")"
Range("C4").Copy Range("C5:C" & rowA)
End Sub
0746名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 20:03:06.38
>>744-745
>>742です
早速ありがごうございます
希望通りでした
古い客先一覧から客先の増えた新しい客先一覧に更新するのに
列で古い一覧で決まってる担当の列を新しい一覧に転記したかったです
なので毎回行が増えたり減ることもあります

ところで古い客先一覧で担当の列が空欄だった時、
新しい一覧に転記されて空欄になるのと0になるのがありますが
なぜか分かりますでしょうか?
古い一覧に白色で見えない0が入力されているのかと思いましたが
本当に空欄でした
0747名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 20:11:51.37
お世話になっております
ご質問の問題について調査を行いましたところ
H列にありj列に無いケースについては要件定義に明記されていなかった事から、
想定外のケースであることがわかりましたが
変更およびテストの実施はリリースに間に合わない恐れがある為
しばらくは運用にて対処いただけませんでしょうか?
ご理解ご協力の程宜しくお願い申し上げます
0748名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 20:40:27.16
>>747
お世話になっております
手入力でC列にVLOOKUP関数を入力コピペしても同じ結果になりました
J列に空欄があるとC列はそのまま空欄になると思うのですが
C列のVLOOKUPの結果が空欄になる時と0になる時があるのは何が原因でしょうか
データに問題があると思うので改善したいと思います
0749名無しさん@そうだ選挙にいこう
垢版 |
2018/10/23(火) 21:18:45.38
>>734
自分が良く使う方法はインプットボックスでセルを指定してそのrangeオブジェクトからparentでワークシートとワークブックを変数にセット
0750名無しさん@そうだ選挙にいこう
垢版 |
2018/10/24(水) 01:40:55.22
>>747
お世話になっております
>>746ですが自決しましたので下記ご報告申し上げます

Range("C4").Formula = "=IFERROR(VLOOKUP(A4, H$4:J$" & rowH & ", 3, FALSE), ""\(^o^)/"")"
以上部分を
Range("C4").Formula = "=IFERROR(VLOOKUP(A4, H$4:J$" & rowH & ", 3, FALSE)&””””, ""\(^o^)/"")"
に修正してJ列の空欄はC列に空欄で返すようにできました

ただVLOOKUPで参照先が空欄だった時スペースも入力されていないにも関わらず
0になる時と空欄になる時があるのが謎です
後学の為ご存じでしたらご教示いただけませんでしょうか

お忙しいところお手数ですがよろしくお願い申し上げます
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況