Excel総合相談所 130
■ このスレッドは過去ログ倉庫に格納されています
▼━質問テンプレ (出来れば使ってね) ━━━ 【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 ▼━関連スレ━━━━━━━━━━━━ 前スレ Excel総合相談所 129 https://find.5ch.net/search?q=excel Excel VBA 質問スレ Part51 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 vbaだとこれだけでfalseになる 2013で確認 ?(0.1 + 0.2 = 0.3) False 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 前年比を知る表作成で質問があります。 https://prau-pc.jp/excel/growth-rate/#i-3 上記ページのC4の猫缶は 前年14,000から今年13,200に減り-6%でした。 この計算は理解できるのですが、 同じ表に、プラス成長とマイナス成長が混在する下記の様な状態の場合 http://www.kepco.co.jp/ir/financial/graph/images/graph_17.jpg 例えば (A)14,000から13,200に減った値 (B)-14,000から-13,200に増えた値 が混在する場合、どのようにすれば良いのでしょうか? (A)(B)共に-6%になってしまい困っております。 分母(基準値)は常に正にとる=>分母を絶対値にする 例えば =(A1-A2)/abs(A2) -100が0になった場合、100%としていいんだろうか 100が0になった時に-100%なのは判るけど、それは最低が0という前提がある 2010と2016はずいぶんちがいますか? 2010はまだまだ安泰ですか? >>638 それは間隔尺度か比例尺度かを考えないといけない 上記の例は間隔尺度を前提。 比例尺度の場合は、温度で言えば分母に絶対0度(-273℃)のような 値の絶対値(abs(-273))が入る。 問題は分母が0の時だね。 この場合は"-"とかあるいはそのままエラー出しておく しかないんじゃないかな。 -50 が 50になったら200% -0.1が100になったら100000% 何かの役に立つ値が出ると思えない 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 1つのセルにtcp 80,81,90-101 udp 1000,1001とかあったとして(a1) tcp 80 81 90 - 101 udp 1000 1001とそれぞれ別個のセル(a2〜a9)に入れる方法あったら教えて下さい a1の 加工若干ならありです [データ]-[区切り位置]でスペースとカンマとマイナスを区切り文字にすれば行けそうだけどマイナスは消えるかなあ >>643 2段階にして、90-101だけもう一度"-"をデリミタにしてやるといいような。 >>639 見た目(雰囲気)がちょっと違う。平べったい感じ。 一番わかりやすい違いは、複数のブックを開いて”整列”で並べたときに「それぞれのブックにリボンが表示される」ので 「縦に並べて表示」は、縦長ディスプレイ必須ってとこでしょうか。[Ctrl]+[F1]でリボンを非表示にすればいいだけですが。 自分としては、2010の方が使いやすい。でもサポート終了まであと2年半ぐらいしかありません。 >>639 複数のエクセルファイル開いたとき複数のウィンドウで開けるから便利 >>647 ウィルスに感染する可能性が高まる お金を出すか、ケチって個人情報ばらまくか、お好きに 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 まあまあ 【4 VBAでの回答の可否】 可 数年ぶりにエクセルとVBAをいじっている者です。 フォームのボタンクリックで、他のファイルから情報とってきたり集計したりと忙しく働く システム(ってほどでもない)を作ったんだけど、ちょっとした時間が待てずにやたら その辺をクリックしたりガチャガチャキーボード押すバカのせいで動作が不安定になる。 これを何とかしたいです。 たしか、マクロ実行時に、「この件の実行が終了するまではユーザーの操作受付停止」 「っていうか、ユーザー無視して、PC資源をこのマクロ実行に集中させる」 というVBAの常套句があった記憶があるんだけど、わかる人いますか? >>650 イベント禁止のこと? Application.EnableEvents = False ユーザーの誤操作をすべて無視するように作るのは、それなりに面倒だった記憶が >>651-652 勘違いだったかも。 お騒がせしました。 どうもすみませんでした。 Windows7、 Excel2010、VBA少しできます、できればVBAを使わない方法がしりたい 助けて下さい!! あるセルに、 あいうえお(改行) かきくけこ(改行) さしすせそ(改行) たちつてと(改行) なにぬねの(改行) はひふへほ(改行) まみむめも(改行) なにぬねの(改行) はひふへほ(改行) まみむめも(改行) と入力されたとします。そして別のセルが選択され、入力受付状態じゃなくなったとき そのセルのサイズが高さ3文字、幅10文字分だったとして、下の行の方の3行を表示、つまり ----------------|------------- なにぬねの | はひふへほ | (となりのセル) まみむめも | ------------------------------ と表示されるようにすることって可能ですか? どうしても行が足りないときは上の方から表示されることしかできませんか? >>655 下揃えにして高さ決めればいけるんじゃ? >>656 いっぺん自分でやってみ 書式設定では無理だったよ 方法があるかどうか俺にはわからない >>655 Won10のoffice2016(365)だと、「下詰め」でいけるっぽい。 2010だと分からない。 1行からはみでる時に、はみ出さずにセル内だけで諦めさせる方法も知りたい 右のセルに空白か何か入れれば出来るけど、書式で >>655 >>657 >>656 だけどすまん、無理だった 下揃えってこんな挙動になるのね 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 使えない(抽出印刷のみコピペしながら使っている) 【4 VBAでの回答の可否】 可 入力規則のプルダウンリストについて シート1 工事番号 1 1 2 2 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 使えない(抽出印刷のみコピペしながら使っている) 【4 VBAでの回答の可否】 可 入力規則のプルダウンリストについて シート1 工事番号 工種 1 掘削 1 埋戻し 2 溶接 2 研磨 シート2に日報として、A1セルに工事番号1を入力した場合、B1のリストを 掘削、埋戻しにしたいです。 名前の定義ではシート1で工種が追加になることもあるので避けたいです。 シート1の列の配置はそのまま工事番号、工種で並べておきたいのですが、よい方法ございますか? ドロップダウンリストって結局は入力規則の一種に過ぎなくて、 入力した後はただの文字列だし、入力後に規則が変更されても何の反映もない リスト化されているなら、それぞれにコードを振って、 コードで管理すればいろいろデータ活用できるのに ソートを末尾の文字(半角英数字)で行う方法を教えてください (1)一行目をセルに入れてドラッグするだけで↓のようにしたいのですが =VLOOKUP(D3,D3:F100,3,0) =VLOOKUP(D4,D3:F100,3,0) =VLOOKUP(D5,D3:F100,3,0) =VLOOKUP(D6,D3:F100,3,0) =VLOOKUP(D7,D3:F100,3,0) =VLOOKUP(D8,D3:F100,3,0) =VLOOKUP(D9,D3:F100,3,0) (2)ドラッグすると↓のようになってしまします =VLOOKUP(D3,D3:F100,3,0) =VLOOKUP(D4,D4:F101,3,0) =VLOOKUP(D5,D5:F102,3,0) =VLOOKUP(D6,D6:F103,3,0) =VLOOKUP(D7,D7:F104,3,0) =VLOOKUP(D8,D8:F105,3,0) =VLOOKUP(D9,D9:F106,3,0) (1)のようにする方法教えていただけないでしょうか >>669 相対アドレス、絶対アドレスを勉強すると良いよ >>670 ありがとうございます。できました。 =VLOOKUP(D3,$D$3:$F$100,3,0) >>668 A列に数字が入っているとしてB列に=MOD(A1,10)を入れて B列でソートすればいいかと >>668 すみません英字もあるんだね >>672 は数字だけで考えた >>668 B列に =RIGHT(A2,1) でどうでしょう 普通に考えるとそれだろうな 1文字でいいのかという気はするけど 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 https://i.imgur.com/BAJQU34.png 昨日の行動を名前の隣に表示させていのですが、良い方法はありますでしょうか? Vlookupを試そうとしたのですが、こういった表示だと出来ませんでした。 >>678 できました!ありがとうございます。 ただ1行目以降連続して計算するにはどうすればよいでしょうか? >>680 範囲の前半(コロンの前の部分のみ)絶対参照にして、行番号をrow()-1とかにすればよいのでは? もっとよい方法もありそうだけど。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Office365 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 A B C D 1 鈴木 鈴木 2 佐藤 佐藤 3 山田 山田 4 五十嵐 5 乾 6 鈴木部長 ○ ○ 7 佐藤課長 ○ ○ 8 山田主任 ○ ○ 9 五十嵐 ○ 10 乾 ○ こんな感じの表で、関数の組み合わせで○を自動で埋めたいのですが可能でしょうか。 B-D列の1-5行までには、役職なしの名前が入っています。 A6-A10には、役職ありの名前が入っています。 1-5行までの名前がA列に存在すれば、該当する箇所に○を入れたいのです。 役職はあったりなかったりなので、LENやRIGHT等で機械的に文字列を取り出すことが できませんし、名前も1文字から3文字まであるので、最初2文字という取り出し方も できません。 VLOOKPUとかCOUNTIFとかいろいろ考えたのですが、どうにもうまくいきませんでした。 >>682 まず役職のリストを作ればうまくいくような気がする。 >>681 助かりました。 本当にありがとうございます。 >>683 別のセルに役職のリストを作っておいて、if文でネストを作ってVLOOKUPということでしょうか? できれば余計な情報を書いたセルやシートは作りたくないのですが 役職の数次第だけど。 パッと思いつくのは、substitute関数使って役職名を削除する。 リスト作らなくもできるけど。 >>686 なるほど、substituteで役職部分を消した文字列を作ってvlookupするんですね https://goo.gl/xnKHDt この請求書の真中の表みたいに バックをグレーと白の交互にするのは背景色変更すればいいだけなので楽なのですが 数量単価の間の白い表の枠ってどうやってるのでしょうか? >>660 その列のアルファベットの右線をダブルクリック 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 条件付き書式で数値が奇数の場合のみ背景を青にする方法を教えてください。 条件適用の範囲はB2:B101です。よろしくお願いします。 >>682 B6に =IF(COUNTIF(B$1:B$5,"鈴木"),"○","") B7に =IF(COUNTIF(B$1:B$5,"佐藤"),"○","") … と入れていき、B6:B10の範囲を選択してフィルハンドルで右に伸ばせば簡単 >>694 実際はもっと色んな人がいて、役職も色々あるんだろうな・・・と勝手に推測したw >>695 E列かどこかにA列のデータをコピーして置換でまとめて削ればいいんじゃね? >>694 それだと、鈴木や佐藤を手打ちしてるわけだから、少しやりたいことと違うと思う。 ようは鈴木や佐藤を自動(関数を使って)取り出したいということなので(多分)。 別シートにでも役職リスト作って、substitute関数で名前を取り出すのが、一般的な方法かと。 ただし、役職の数だけネストする必要がある。 >>692 mod関数を使って、奇数か偶数か判定する。 >>692 奇数かどうか判定するには、整数かつ1の位が奇数(1,3,5,7,9)かどうかを調べればいいので =AND((B2=INT(B2),OR(B2-INT(B2/10)*10=1,B2-INT(B2/10)*10=3,B2-INT(B2/10)*10=5,B2-INT(B2/10)*10=7,B2-INT(B2/10)*10=9)) 俺の頭ではこれが限界だ 誰か、もっと難しい式をたのむ >>697 そのとおりで、これを何に使っているかと言うと、大型連休の出勤当番を割り当てるのに使います 該当者は毎回変わるし、異動があれば役職も色んな人が入ってくるので、鈴木や佐藤を自動で 取り出してチェックしたいのです 別シートに役職リストを作る、というのは、内容的には式中に役職リストを作るのと変わりません よね? 役職の数が増えたら、式中のネストは手作業で増やす必要がありますよね? 他の人がメンテする可能性を考えたら、式中に直接打ち込むほうがいいのかな >>694 のやり方だと確かにできますが、A列の人の名前が変わるたびにB列の式を変える必要が 出ますし、結果は「○」が出るかどうかだけなので、B列の修正忘れに気づきにくいのを心配して います >>701 自分なら役職リストを作る。 そのリストをもとに面倒だけど、substitute関数で役職の数だけネストする。 スマートではないけど、役職を少し多めに作っておけば、毎回関数を直す必要がない。 そんなに役職数増えたりしないでしょう? 現在ある役職が10なら、13くらいで作っておくとか。 リストを参照することで、役職名の変更には対応しやすい(例えば班長という役職が廃止されて主任になるとか)。 >>682 これでどう? B6:=IF(SUMPRODUCT(COUNTIF($A6,B$1:B$5&"*")*ISTEXT(B$1:B$5)),"○","") >>702 読みながら、たしかにそうだろうな、想定できる役職を一通り書いておいて、さらに将来的な 空白セルの分まで参照して式をつくるべきかな、と考えていたら >>703 これでバッチリできました! どういう仕組で機能しているのかはわからないので、これから詳しく解析してみます ありがとうございます >>704 この式は「前方一致」だから、例えば"久保田部長"で検索するとして、 "大久保"はスルーするけど、"久保"はヒットしちゃうので注意が必要。 >>705 それはもう仕方ないですね 役職を除外して参照するという処理をする以上、役職リスト等を参照しない限りは、参照したい 文字が含まれていればすべてカウントするという処理をするしかないでしょうし 1日目 朝昼夜 2日目 朝昼夜 : こういうデータシートから 朝昼夜朝昼夜…という並びでグラフ化するにはどうしたらよいですか? 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 セルA1に1をセルB1に2を入力して印刷 セルA1に3をセルB1に4を入力して印刷 セルA1に5をセルB1に6を入力して印刷 これをA1が99、B1が100になるまで繰り返してるのですがVBAでできないでしょうか? >>709 簡潔に纏められ、分かりやすい解答だと思います。 いや、悪気はないです。 今PCが手元にないので。スマホでも書けそうだけど。 この場合、もしプリンターが複数あるなら、その辺もマクロで書いておく方がいいと思う。 プリンターの設定間違えてほかのプリンターで処理してしまうと50枚印刷されてしまうことになるので。 プリンターは1台しか接続していない場合だとどういったマクロになりますか? dim i as integer for i = 1 to 50 cells(i,1)=(i * 2)-1 cells(i,2)=(i * 2) activesheet.printout next i こんな感じでは? loop until の方がいいような気もするけど、とりあえず。 >>708 vba使わなくても予め50シート作っておいてまとめて印刷するのはどう? マクロわからない人でも保守できるよ どうでも良いけど印刷関係のマクロ作るなら、既定のプリンタをpdf,xdw,xpsあたりに変えておかないと、満足にデバッグ出来ない気がする エクセルは、モッサリ感が半端ないのに、 50シート作ったら、仕事にならない感じがする。 このスレでそれはなしな いわゆる普通の事務員でAccessを使える香具師はそう多くない accessを少しでも知ってたら、こんな作業をやらせようとは思わんわ Accessは知ってるけど>>708 の作業ごときでAccessはないわ "Excel VBA 連続印刷 差込印刷" あたりでググると、サンプル結構ありそうだ。 一時的にでも50シート作って印刷1回にした方がいいんじゃないの VBAで50回印刷とか酷い時間になる 別に、事務員ならどうせ日中暇なんだからぽちぽちやっときゃええやろ そもそも、>>708 の作業に意味があるように見えないっていう 穴を掘らせて埋めさせる的な刑罰の一種? データと出力を別けてればよくあるパターンだと思うよ。 1人一枚の出力で50人分とか。 VLOOKUPで社員コード引っ掛けて、データ拾って出力。 ほかのセルにはA1とB1を使った数式がいくつも入ってんじゃないの? まあ番号札とかアンケート用紙みたいなのを印刷するだけの簡単なお仕事でも別におかしくはないけど 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 以下の条件に合致する場合、3列目にOKの文字を出力したいです 条件:1列目の数字が同じかつ2列目の数字がひとつ上の2倍 例) 1 1500 1 4000 2 20000 2 22000 ↓(関数結果) 1 1500 1 4000 OK 2 20000 2 22000 どなたか方法を教えてもらえませんでしょうか >>728 C2にこの式を入れて下にコピペ =IF(AND(A1=A2,B2/B1=2),"OK","") でも、その例で4000は1500の2倍じゃないよね 条件が「2倍」じゃなくて「2倍以上」じゃないの? >>729 こんなに早くありがとうございます 2倍以上が正しいです 本当にありがとうございます 早速試してみます >>730 2倍「以上」ならこうね =IF(AND(A1=A2,B2>=B1*2),"OK","") >>731 できました! ありがとうございます!! このご恩は一生忘れません!!! ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる