X



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

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

前スレ
Excel総合相談所 126(実質127)
https://find.2ch.net/search?q=excel

Excel VBA 質問スレ
https://find.2ch.net/search?q=excel+vba

【質問不可】Excel総合相談所スレの雑談・議論スレ
https://find.2ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
0562名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 17:25:55.98
>>561
簡潔に言えばそのとおりです
ただ、同じリストを複数の要素から呼び出せるようにしたいので、単に名前の定義を使うだけだと上手く出来ませんでした

最後の行は、AとBで呼び出したいリストが同じなので、これらを纏めてXと名前を定義
以下同様の作業を繰り返して、これらの定義した名前を別にリスト化、A1とA2の参照元にINDIRECTを使用すれば一応実現したものの、このやり方ではA1のリストに全部の項目が表示されないので不満だというわけです

やはり贅沢を言わずこれで満足すべきなんでしょうか
0566名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 19:24:43.68
【1 OSの種類         .】 Windows 8.1
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

VBAでRangeでコピーする時に、
コピー先が数式だった場合は上書きせずに残したいのですが
うまい方法はありますか?
0569名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 20:58:10.69
【1 OSの種類         .】 Windows7,8,10
【2 Excelのバージョン   】 Excel2010ー2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
共有機能を使うと猛烈に重くなるのですが、どうにかならないでしょうか?
アクセスやスプレッドシートなど、代替機能でも何でもいいのでお願いします
0570名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 21:02:22.92
>>568
ありがとうございます

何らかのオプションを使って一発でコピーできれば処理も早いのでその方が良かったのですが
やはりHasFormulaを使ってコピー処理をループさせるしかなさそうですね…
0574名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 21:36:09.58
>>573
入力シート
A列=貼り付け

制御シート
B列=フラグ。0か1を入力。あたいか関数かのフラグの代わりとする

出力シート
C列=すべて関数。B列のフラグに基づいてA列を分岐
D列=すべて関数。C列をすべて同じ処理

こんな感じ
0575名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 22:01:09.82
>>565
元のリストをもとにリストを引っ張ってくれば良いのでは?
元のリストだけいじれば、自動的に抽出されたリスト範囲が変動するようにすればいい

俺も国名の一部を入力すると、合致する文字のある国名のみ抽出されるリストとかは作ったことあるし
0577名無しさん@そうだ選挙にいこう
垢版 |
2017/11/24(金) 23:16:10.36
構成を考えていますが、どちらが良いでしょうか?
前者だと、計算量が減る代わりにメンテがたいへんになるかもしれません
後者だとDBっぽい構成ですが、すごく重くなる気がします

メーカーで、売上は月締めなのでそこまでの量ではありませんでした
しかし、様々な例外が発生したり、個人売上も徐々に増えてきました次第です
どちらがよいでしょうか
それとも全く違う設計のほうが良いのでしょうか?

以下はシート設計の草案です

売上シート→各店合計シート→全店合計シート
       →個人売上シート→各課売上シート

売上シート→各店合計シート
       →全店合計シート
       →個人売上シート
       →各課売上シート
0579名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 08:41:16.69
元データを一つにするか、結果シートから更に結果を求めるかってことだろう
多少重くなっても、元データは一つにしたほうが良い
ずれたときにめんどくさい
0580名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 14:08:45.48
入力規則のリストで¥100¥200¥300ってやるとき、手入力と別に表を用意する以外でさくっと入れる方法ある?
一応全部価格は等間隔
0582名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 14:34:56.68
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すごい初歩的なことで申し訳ありません。
個人番号を割り振ってある別シートの名簿の情報を、個人番号を入力するだけで名簿の情報を別シートに転記したいのですが方法がわかりません。
例えば1001番の方のデータがあり、メインのシートに1001と入力すると残りの情報が出る、といったような感じです
どなたか教えて頂けると幸いです
0590名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 16:01:10.13
>>586
いや必要だから使ってるんだよ
20列vlookupすんのに順不同で現れる列をいちいち探すなんて時間の無駄や間違い起こす可能性高いことはできない
あくまでvlookupを使う場合の話な
0592585
垢版 |
2017/11/25(土) 16:03:31.32
>>589
サンクス その通り
ところで減らせるとは?
>INDEXでももちろん代用可能だがVLOOKUPならMATCHをひとつ減らせる
0601名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 18:31:03.16
少数誤差なら、MATCHでも起きるからな
単純に、VLOOKUPだと基準列の右側しか検索できないがINDEXとMATCHの組み合わせなら可能
っていうのが大きいと認識してた

あとは、LOOKUP系は揮発性関数だから処理が重くなりやすい

ただ、ファイル容量はLOOKUP系使った方が少なくてすむから
表をメールで送る運用とかならLOOKUP系使う意味がある
0602名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 19:43:30.01
元データが5分毎値で、表示形式が年月日時分のまま、これをキーにして、
INDEX、MATCHで検索・集計しようとしたら、引っぱれない場合があった。
YEAR()*10^8+MONTH()*10^6+DAY()*10^4+HOUR()*10^2+MINUTE()
で整数化したキーでしのいだけど。
0610名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 23:37:02.75
>>609
配列って配列数式の略のつもりで言ってるのか?
配列と配列数式は全然別物。意味も結果も全く変わってくるので変に略すのはやめてくれ

そのページの配列数式に関してはそう、複数条件だから
0612名無しさん@そうだ選挙にいこう
垢版 |
2017/11/25(土) 23:50:05.60
>>596
いや、普通に
1.4
1.2
1.5
とか入力して1.4を検索しようとしてみ。indenxとmatchならできるけどlookupはできないから。
場合によっては使えない時点でlookupを使う意味なんてないと思ってる
0618名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 08:21:45.63
>>614
とりあえず仕事かどうかはおいといて、昇順に並び替えればいいだけでしょ?そもそも小数整数関係なく並び替えてから使えって仕様だよね?
小数とは関係なくない?
0619名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 08:51:17.27
>>618
でも趣味でExcelいじる人なんてあんまいなくてみんな仕事で使うんだならそこはループで愚問になると思うぞ
言いたいことはわかるけど
小数点以下使う人はindex match使えばいいじゃん
0620名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 08:58:18.14
>>618
他の人も共有して使っているだとか、
元データに数式入ってるだとか、
現状の並び順に意味がある場合(ソート不可な不規則ルール)だとかで、
並び替え不可な状況というか、並び替え直せない、
もしくは並び替えると不具合や不都合が出る状況というものがあるんだよ
0622名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 09:20:23.60
>>621
だから言いたいことはわかるけど、と言ってるだろ
しかし実務で使う人には並べ替え自体が無理な場合もあり例えナンバリングで戻してもそれに余りある弊害があれば使えない
その人たちはlookupを使う選択肢はそこで消えるんだから

ただ小数点以下の問題だけについて言えば昇順降順かければいいだろう

しかしあーlookup使えないと頭から葬り去る人はそこ止まり
厳密にそこを区分けして分類して頭に置いておける人がいちばん実務で発揮できる人

これならどうだ?
0623名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 09:38:06.63
>小数点以下の問題だけについて言えば昇順降順かければいいだろう
この話しかしてないのに仕事の話に飛躍するのが不思議
0624名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 09:41:28.84
>>622
>厳密にそこを区分けして分類して頭に置いておける人がいちばん実務で発揮できる人
脳死でindexmatchでいい。
別に超高速とか機能が豊富ってわけでもないし、lookupを使う理由が一切ない
人のシートを改修する時に、昇順じゃないとエラーになるって知識は無いとだめだけど
0628名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:15:30.25
>>626
わかったよ
趣味でやってる人がいることも理解しておくから、仕事でしかやらない人がいることも理解しておいてね
何事もその場の状況で役立たなければ意味がないでしょ
0629名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:16:57.33
なんでもいいけど、小数点の問題だけじゃなく、
漢字が検索元の場合、ソートしててもふりがな基準の昇順になってたり
その他要素で正常に検索できない時もあるよ

・左側の列から検出できない
・小数点使えない
・基本的に検索元を昇順ソートしないとならない
・更にソートのかけ方にも注意しなきゃならない
・テーブルに行を増やして使えない
・・・etc

こんなめんどい事を、頭に入れながら使わなきゃならない不確定要素満載なlookup関数使うぐらいなら、初めからindex&match使う人って人は多いよ

特に、仕事で思いがけなかろうが何が何でもミスがあってはいけない場合や、エクセルが趣味になっちゃうぐらいの人(このスレは、正直、定期的にパズルクイズを出題してくれる場所だと認識してる)とかね

そりゃ、ちゃんと最左列にソートされた整数の数値(色んな意味で)番号で管理された、重複等もなく、今後データが増える事も無いおりこうさんリストを使った単純な検出なら、そりゃlookup関数がラクだろうけどね
0632名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:36:12.28
>>629
毎回作業する前にいちばん左に一列挿れてナンバーふってる
それしか今んとこ対処法がないからね
そしてまず重複チェックするところから始まる
0633名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:36:47.51
最近はマイノリティに配慮して、個人情報の登録で「男、女、その他、無回答」の中から選べるみたいなケースが増えてるもんな
0635名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:45:55.74
>>634
共有で使ってるファイルだからいろんなトラップがあることとファイル自体が重くてなvbaはそれには使ってないね
他のシステムから抽出したものはvba
ほんとになんでもディスりたいお年頃なんだな
そろそろお前めんどくさいから自覚しろよ
0636名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 10:51:46.40
>>635
ディスりたいの意味がわからんが、貶めたいって意味でいいのかな
別にそういう意味じゃなくて、単に>>632の作業は誰がどうみても単にウンコだろうってだけだよ
0637名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:14:44.62
>>636
まぁなんでもいいけど絶対的に
vba>手で入力
という図式に頭が凝り固まってるのも困ったもんだ
だからきみがその構図を崩したくないならそれでいいでしょ
こっちにはこっちの事情があってやってること
0642名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:25:12.70
>>640
できるならやってる
さすがにアナログ用紙からの入力は無理だった
二重線と印鑑で消したものはOCRで認識できない
これさえなければスキャンしてvba走らせて全部完了なんだがね
0645名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:48:52.42
>>641
いくら色々なことが進んでも手作業が全くのゼロになることはないからね
仮に記載誤りをする人間がゼロになったら可能かもしれないね
人間がロボット化することで防げるというww
今はもう半分そんなところだと思うけど
システムを使うために人間が正しく処理することを要求されてる
どっちが命令系統なのか支配されてるのかw
0646名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 11:59:02.63
間違いの許されない入力作業は、同じ物を2人や3人に入力させて答え合わせする
そのうち1人分をOCRにして人権費を節約することはあるけど、OCRだけってのは怖くてできない
0648名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 12:06:54.07
>>643
君にその権限はないので無視するよ
その言動は君のプライドを君自身の手によって傷つけているだけなので、一方的に禁止と言い張るのはやめたほうがいいんじゃないかな?
俺は何も気にしてないからどっちでもいいけど
0651名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 12:17:01.43
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 Excel2016
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

1行飛ばしでオートフィルのようにデータを入力したいです

@〜Eを繰り返し入力したいきたいのですが
セルA1〜A5まで結合されていてA6には文章が入力されていてまたA7〜A11まで結合でA12には文章がはいっています
この繰り返しが続くシートの結合されている部分に@〜Eを入力していきたいです。
@〜Eというのは1日を4時間毎に区切ってるという意味でセルC列には日付を入力していきます
Eの後の@からは日付を+1するということもできますか。A1〜A5の時間帯は必ず@から始まるわけではなく
BやDから開始する時もあります
最初の一個分の日付や時間帯を入力するだけにしたいです
0653名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 13:10:21.41
ソートかけてまでlookup使いたいやつ、いるなんねびっくりだわ
なんのメリットがあるんだろう
こだわりありそうでそんな人のエクセル使いたくねえ
0655名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 17:57:43.05
>>652
この画像だとA1〜A5に@、A7〜A11にA、A13〜17にBと入力していきたいです
最初の@〜Eが11月26日だったら次の@〜Eは11月27日にしたいです
わかりにくくてすみませんでした
0656名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 18:36:18.22
>>655
完成
https://dotup.org/uploda/dotup.org1398111.zip.html

マクロを編集することで設定できる

最初の日にちがこれ
日付 = "2017/11/26"

10日分はここの9。
For i = 0 To 9

inputboxかなんかでもう少し使いやすくできるけど、そこは自分で頑張ってくれ

Sub foo()
Dim 日付 As Date
日付 = "2017/11/26"
時間 = Array("@", "A", "B", "C", "D", "E")
'10日分
For i = 0 To 9
'6回分
For k = 0 To 5
行 = i * 36 + k * 6 + 1
Range(Cells(行, 1), Cells(行 + 4, 1)).Merge
Cells(行, 1) = 時間(k)
Cells(行, 3) = 日付
Next
日付 = 日付 + 1
Next


End Sub
0658名無しさん@そうだ選挙にいこう
垢版 |
2017/11/26(日) 18:54:56.48
>>653
本人にこだわりがあるんじゃなく共有相手がVLOOKUP以外覚える気がない上司だったから
仕方なくソートして使ったことはある

覚える気もないのに関数にいちいち注文つけないでほしかった
■ このスレッドは過去ログ倉庫に格納されています

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