Excel総合相談所 132
■ このスレッドは過去ログ倉庫に格納されています
▼━質問テンプレ (出来れば使ってね) ━━━ 【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 MIN関数で返されたセルの1つ上のセルを参照したい。 どうすればいい? MIN(A2,A4)の結果 A2を返す場合はA1を、A4を返す場合はA3を B1に参照したい って感じです。 >>389 値の重複がないならmatchとindirectでいけそうだけど >>388 =index(表示させたいデータがある範囲,match(min(a2:a4),a:a,0)-1) 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel97 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ・関数のコピーについて 2か月くらい前までは関数の入ったセルの右下の+を縦にドラッグする事によってコピーできていたのですが、 なぜかできなくなりました。 というか、関数はコピーできているのですが、セルの表示が反映されなくなりました。 コピー元の表示がそのままズラッと並んでしまいます。 どうしたらいいか教えてもらえないでしょうか? >>395 ありがとうございます。 これに乗っている修正パッチは古すぎてもうダウンロードできないようです。 つまり、もう改善できないという事でしょうか? Excel97なんで最新のExcelを買うべきなんでしょうか・・・ >>391 IF関数でできました。 ありがとうございました。 >>396 スレ違いになるかもしれませんが、マクロなどExcel固有の機能を使ってないのであれば、 無料で使えるLibreOfficeのCalcやGoogleスプレッドシートなど、いかがでしょうか? pic.twitter.com/a05wFJpatH https://twitter.com/5chan_nel (5ch newer account) ttps://i.imgur.com/AtBjJNC.png 同じ「1」なのですが若干見え方が違います 表示形式は同じ「標準」なのですけど すごく初歩的な質問で済みませんがよろしくお願いします >>403 上のセルの書式が「折り返し」になっているとか。 >>404 ありがとうございます 折り返しってどこで設定するんだろうといじっていたら 文字サイズが違っていました、まぬけな間違えでした ttps://i.imgur.com/EEHnL5D.png 左側三つの文字サイズが9、右二つが11 右から二つ目に数字を入れると 左三つの文字サイズが9へ変更 & 範囲選択していないはずの条件式書式(色付け)が横にずれて反映されてしまいます どういうことでしょうか?お願いします >>406 行や列を挿入またはコピーして、 左or上隣りを引きずったのでは? 規則性がなく部分的におかしくなっているなら、 もうゴチャゴチャだと諦めて、 書式は最初から設定し直す。 >>407 ありがとうございます 検証が不十分なのですが おかしくなるセルに上から順に数字を入れていくと該当のセルがおかしくなる 上のセルが空白だと正常 のようです すんません!! 前回はWordでしたが 今度はPowrPointに詳しい方はこのスレにおられませんか! 白黒印刷の時の背景の白文字的なやつなんだけど・・・ やっぱり向こうのスレ過疎ってて誰からも返事なくて・・・・・ 誰かボスケテ!! https://mevius.5ch.net/test/read.cgi/bsoft/1172850945/420 ヘルプを表示させようとすると 「ヘルプビューアーに原因不明の問題が発生しました。続行できません。」 と出て表示できません。解決策ご存知の方おれらますか? EXCEL2010、Windows7sp1(64bit)です。 >>409 多分、パーポって略し方がスレ住民の反感買ったんだと思われる 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可・ ▼━関連スレ━━━━━━━━━━━━ 「管理台帳」から作成されたブック「要求票」に必要事項を入力後、 管理台帳の2列目以降に貼り付けを行いたいと思います。 >376 379様のおかげでは管理台帳のハイパーリンクで要求票を 管理できたのですが、一覧がほしいとのことです。コピペでは間違いが あったので避けてほしいと言われました。 連番もまともに発行できない 次第です。どうかよろしくお願いします。 http://fast-uploader.com/file/7091536737390/ >>414 「A3は数値のみ」とあるけど、B2の間違い? 仮にB2に数値をもってきたいとして、どこからどうもってきたいのかが分からないと無理でしょう。 >>415 申し訳ありません。要求票のセルB2からM2までを、管理台帳のb列に貼り付けたいのです。 ボタン2で作成されたブック「11」でしたらブック「11」のセルB2からM2までを 管理台帳のセルA12(番号”11”)右、B12に貼り付けを実施したく。 よろしくお願いします。 つまり、管理台帳のB12からM12に、11.xlsxのデータを転記したいということですか? 1つはindirect関数を使う方法があるけど、参照先のブックが開いてなきゃダメ。 マクロでするとしたら、どこ時点のデータを転記するかを考えないと。 例えばボタンを押して管理台帳のA列に11が入力されました。 その時点で11.xlsxにデータが入っているのか、それともその時点では空で、それから入力をするのか? (1)要求票のハイパーリンクをクリックして、11.xlsmを開きました。 (2)11.xlsmのB2からM2に関数や手入力でデータを入力します。 (3)入力し終わったら、11.xlsmにマクロボタンがあるとして、それをクリックしたら11.xlsmから管理台帳の12列目に転記されて、11.xlsmが閉じます。 みたいな流れかな? >>414 ttp://fast-uploader.com/file/7091551933613/ 誰かアップロードセンターをオフにする方法わかりませんか? >>415 ありがとうございます。おかげで助かりました。 M2どころかABまで項目が増えましたが、なんとか解決できました。 VLLKUPでこれだけ参照するとブックも1MBにもなるのがわかりました。 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 マクロコピペで手順など教えていただければ 【4 VBAでの回答の可否】 できれば否 ロックされていないセルだけ全部選択することは可能でしょうか? 全部選択して何するの? したい事が出来れば良いんじゃないの? 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい・ 【4 VBAでの回答の可否】 可・ サーバに保存しているブックをpdf形式でローカルのマイドキュメントに保存したい。 ¥¥gv9999¥本社¥総務部¥苦情にあるブックをpdf形式で<ユーザー名>¥マイドキュメントに保存したいですが、ユーザー名が不特定多数です。ユーザー名は数字6桁です。よろしくお願いします。 >>424 環境変数 %USERNAME% から取得するんじゃダメなの? >>424 ダイアログで保存先のフォルダをユーザーに指定してもらう方法は? ユーザーの意図しない結果にならない事は防げると思うし、どんな処理をしてるかわかりやすいと思う >>424 おそらくVBAで自動化したいという意味なんだろうけど、どこまでやりたいかが不明。 一気にやりたいのか、それとも各ユーザーがファイルごとに各PCからできればいいのか。 医薬品のgs1コードをバーコードにして印刷してスキャンできるようにしたいのです >>425 、426、427、428 ありがとうございます。 当初は<苦情ブック>という入力フォームから<集計ブック>というブックに転記するだけ でしたが、苦情の2重報告、マネージャーを通していない、集計ブックの非公開(公開して 前に改ざん、削除されました。)、<集計ブック>入力の誤記などがあり、ローカルに保存 してマネージャーがメールで424のマネージャーに報告する方法を思いついたのですが、質 問した通り、「てローカルに保存」する方法がわからず、行き詰っておりました。 PDFですが<苦情ブック>はプルダウンとindirect、30か所のVLOOKUPで1MBあるため、 単にローカルに保存してメールに添付する方法は却下されました。そこでPDF形式でファイル サイズを小さくすることにしたのですが、「PDF形式でローカルに保存する」方法がわかりません でした。 >>427 のおっしゃる通り、ユーザーに指定する方法もありましたが、ディレクトリの概念が 乏しいようで、どこに何を保存したかわからないとの苦情を受けました。ファイル名の統一 もありますが。 >>428 「各ユーザーがサーバの<苦情ブック>を使って処理の自動化」と思います。 自分も末端なので上司の意向、というか仕様を理解できていません。 >>430 ローカルと言うけど、windowsのバージョンによって、マイドキュメントだったり、ドキュメントだったりするとら思うけど、全て7? サーバーというのは、会社のファイルサーバー?NAS? そちらにフォルダ分けして保管する方法もありそうだけど。 >>431 OSはwindows7に統一されています。 近々10に、EXCELも2016にになるそうですが。 サーバはファイルサーバのみ。NASではありません。 マネージャーや同僚も明確な仕様を提示できていない事が原因なのです。 Accessならもっとスムーズかもしれませんが当方にスキルがありません。 ヘルプデスクかコールセンター業務っぽいのに、ユーザーがIT知識が低すぎる感じ。 PDFにしたところでExcelで開けない、検索性が悪いなど期待した効果は得られないだろう ユーザー毎にアクセス制御可能なCLIパッケージの導入検討をするべきだろう >>424 ブックをマクロブックにすれば、できると思うけど。 ただ、色々ハードルがあると思いますよ。 何台あるのか知らないけど、各PCでセリュリティの設定したりできるのかとか。 win10に変わったら保存先のパスも変わってくるだろうし。 マイドキュメントに保存するときも、pdfのファイル名をどうするのかとか。 そもそも、仕様の理解できてない人の説明では、なんとも。 PDFで保存するだけなら、これでできそうかな。 7のマイドキュメントでも10のドキュメントでも同じっぽい。 7の環境がないから試せないけど。 PDFのファイル名をどうするかとか、すでにそのファイルがある場合にどうするかとか、 いろいろあるけど。 Sub make_pdf() Dim Path As String Dim WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("MyDocuments") & "\" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=Path & "aaaa.pdf" Set WSH = Nothing End Sub 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 日付にaaaを加えて曜日を追加したんですが 日曜日の横列のみ削除したいのですが、どうすれば良いのでしょう? 縦が日付で横がデータです 日と付いてる列だけ消したいんです お願いします >>437 オートフィルターで日曜日だけ抽出して、そのデータを手動で一気に消す 行そのものを削除したい時は作業列に通し番号を入れて、作業列ごと削除したあとでソートしなおす やっぱ手動じゃないと無理っすか・・・ ありがとうございました >>441 検索(Ctrl+F)→検索文字列「日」、セルが完全に同一〜をチェック →「すべて検索」をクリック →「検索と置換」ウィンドウがアクティブな状態でCtrl+Aで、検索結果をすべて選択 →ホームタブのセルグループから「シートの列を削除」を選択 excel2016ならこれでできると思うけど、2010は環境がないので試せない。 >>441 ちょっと説明が難しいんだけど、ワークシート上の関数だけだと、見えなくすることは出来るけど削除することはできないんだよ セルに入ってるデータや数式の削除は手作業かVBAを使わないとできない ちょい訂正。 (1)検索(Ctrl+F)→検索文字列「日」、セルが完全に同一〜をチェック、検索対象を「値」に変更 (2)「すべて検索」をクリック (3)「検索と置換」ウィンドウがアクティブな状態でCtrl+Aを押して、検索結果をすべて選択 (4)ホームタブのセルグループから「シートの列を削除」を選択 (ショートカットならCtrlと-(マイナス)で、行全体を選ぶ) ※必要に応じて(1)で特定の列を選択する等しておく。 >>443 そういう意味では、自動で削除は無理ですね。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい(少し) 【4 VBAでの回答の可否】 可 数字が3つ以上連続している場合は"〜"や"-"で途中の数字を省略して 表示する方法はありますでしょうか 具体的には作業が1〜10,000程度まであり、担当者が2人いたとして、それぞれが 担当者A 1,2,5,6,7〜 担当者B 3,4,8,9,10〜 というように担当する場合で、エクセル上では作業の番号の隣の列に 担当者が入力されています(作業の振り分けに規則性はありません) 作業の内容はシート1枚が1ページとして印刷されており、ページ番号が 作業の番号に対応しています。何番の作業がどちらの担当かの一覧を 印刷して、それを見ながら作業内容の書かれたの紙を担当者毎に2つに わけたいのですが、全ての数字を記載してしまうと確認が大変なので 担当者A 1,2,5〜7(または5-7) 担当者B 3,4,8〜10(または8-10) というように連続している場合は省略したいのですが、なにかいい方法は ありますでしょうか よろしくお願いいたします >>445 1つのセルに、複数の数値がカンマ区切りで入力されてるんですか? 数値とカンマは必ず半角? >>445 A列に番号、B列に担当者名が入ってるのを集計するイメージかな? その場合ならC列に担当者@用の作業列、D列に担当者A用の作業列を作って集計すれば良いと思う C列はB列が担当者@ならA列の番号を、違うなら空白みたいなイメージで、かつ1行上に番号が入ってる場合は「〜」にするとかそんな感じの処理 ああ、そういうことですね。失礼。 >>446 は無視してください。 >>445 全ての数字を記載して、条件付き書式で連番だったら色を塗る、じゃ駄目? ( ´ー`) .。oO(ある意味、頭の体操パズル・・・) VBA使う方法しか思い付かん ワークシート関数でやろうとすると、ものすごく数式が長くなりそうで、とても考えたくない 445です。 「数字が3つ以上連続している」という条件はあきらめ、「5〜6,8」とかなってしまっても OKということにしてなんとかなりました。みなさんありがとうございました。 最大で1100件くらい連続しているところもあったので、なんとかなってよかったです。 すみません 15個の好きな数字があって、その中から1つの数字を選んだ後 違うセルにその1つの数字以外の14個の数字の中から更に好きな数字を選ぶことってできる? 例えば 1,3,7,12,15の中から7を隣かどこかのセルに選んだ後 更に違うセルに7以外のどれか4つの数字の内1つの数字を返す方法ってありますか? >>453 例えば縦に連続した15個のセルに数値が入ってるとして、index関数で1〜15までの乱数番目の数を引っ張るとする もしそれが選んだ数だった場合は乱数に1足した数をmod関数で1〜15の範囲に直した物をもってくる これでどうかな? 選んだ数以外が全て同じ確率じゃなくても良いなら 【1 OSの種類 】 Windows10 【2 Excelのバージョン 】 Excel2016 CTRL+SHIFT+ Lでのオートフィルタのショートカットができません。 キーシーケンスの設定も変更してみましたが、直せませんでした。 どこか他に設定を確認した方がよい箇所はありますか? >>455 直接的な回答ができなくて申し訳ないけど ・特定のブックだけの現象なのか ・他のエクセルのショートカットは動くのか ・他のオフィスソフトのショートカットは動くのか ・各キーの故障の可能性無いのか など、原因をもう少し追求してみると何かわかるかもしれません >>456 ありがとうございます 一応試したこととしては Excel2010でショートカットキー使えるか→使える 他のショートカットキー→CTRL+SHIFT+P でフォント変更は呼び出せた キーボードのチェック→文字は問題なく打てた ブックはExcel立ち上げてすぐの新規のブックで、念のためPCの再起動をしても解消しませんでした 他のオフィスのショートカットは試してないので、試してみようと思います 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 否 Sheet1のA列に期限日、B列に作業内容、C列に「未」か「済」のどちらか の表があります。 ここからC列が未になっているものだけをSheet2に期限日と作業内容をリスト化したいのですがどうすればよいでしょうか Sheet1を編集したらSheet2も連動するようにしたいです。 ちなみにSheet1は加工が許されていないので補助列の追加などはできません。 Sheet2だけで何とかする方法を教えてください。 【例】 Sheet1 A B C 2018/10/01 資料作成 済 2018/10/02 報告書作成 未 2018/10/03 給与査定 未 2018/10/04 見積もり作成 済 Sheet2 A B 2018/10/02 報告書作成 2018/10/03 給与査定 >>458 excel オートフィルタ 関数 で検索すると出てきます。 要は、オートフィルタでできることを、関数でやってしまおうということですよね。 >>459 それだとSUBTOTAL関数でオートフィルタの表示に連動させた計算結果をだすサイトが出てきます。 関数の式で教えてください。 >>458 Sheet1は弄れないならSheet2にリンクを貼ってから処理するだけ作業列も使い放題 >>458 期限順に並べ替える訳ではなく、単純に上から順番に抽出するだけなら、作業シートを作って、元シートの内容をリンクさせる、countifで上から何番目の未完了なのか数えて、抽出シートにvlookupかindexとmatchてひっぱってくるのはどうでしょう? こうやってやりかた教えてるのにとにかく式は?って聞いてこられるのはつれぇな >>467 提案した全部の内容に関して全ての数式を書く気にはならないので、説明した内容で「この部分の意味がわからない」「この部分の意味はわかるけど、実装する数式がわからない」とか個別に聞いてくれたら(程度によっては)回答します そもそも、仕事の依頼であればきちんとエクセルのブックで納品しますけど、軽い相談であれば、やり方の提案はしますが、最後は自分で頑張ってくださいね、って思ってます >>468 文章はどうでもいいので関数式だけ書いてね >>464 初心者なんで優しくしてくださいよ どこかのサイトに全く同じのが載っているのなら アバウトに検索方法じゃなくて具体的にURLで頼みます >>471 ここは初心者に優しくするスレじゃなくてドヤ顔するスレ windows7 excel2010 現在データ入力作業中なのですが、質問させていただきたいです。 ブックが100個あり、すべて同じセルにデータが入力されています。 このデータを別ブックのシート1にまとめたいと思います。 そこで、ブック1のデータを集計ブックのセル1に、ブック2のデータをセル2に…といったVBAプログラムが知りたいです。 できるだけ短いコードが知りたいのですが、どなたかご教示頂けませんでしょうか? よろしくお願い致します。 >>473 ブックの名前は? 全て同じフォルダにある? >>475 名前は(1)〜(100) 全て同じフォルダ内にあります。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい・ 【4 VBAでの回答の可否】 可・ セルA1が空白なら「社員番号がありません」とウィンドウでキャンセル、 セルB2が空白なら「日付がありません」とウィンドウでキャンセル、 セルC3が空白なら「時刻がありません」とウィンドウでキャンセルする方法がわかりません。 御指導、ご鞭撻をお願いします。 if range("a1").value="" then mes1="社員番号" if range("b1").value="" then mes1=mes1 & " 日付" if range("c1").value="" then mes1=mes1&" 時刻" if mes1 <> "" then msgbox mes1&"がありません",vbokonly exit sub end if >>473 ファイル名に規則性があるなら、indirect関数でファイル名の部分を変化させて参照するのはどうでしょう? ブック開かないと重いのであれば、自分ならvbaで全部のブックを結合して参照します >>480 ありがとうございます 後出しで申し訳ないのですが、参照ブックの特定の1列のみを抽出したいのです。 また、参照ブックはコピー及び結合などの手を加えることが禁止されています。 INDIRECTも考えましたが、ブックの数が数なので、すべてを開いておく事は難しいです。 回答頂き大変有り難いのですが、別の方法はありませんでしょうか? >>478 コンパイルエラー 変数が定義されていません。 と出ました。 >>478 自己解決しました。option Ecplicitを削除したら機能しました。 ありがとうございました。 >>481 10年位前に作った同じフォルダ内のエクセルブックの一番左側のシートを結合してシート名をファイル名の頭4文字にするコードです 元のシートをそのまま残せば、結合しても問題無いのでは? Private Sub CommandButton1_Click() Dim fn As String Dim wk As Workbook Dim wh As Worksheet fn = Dir(ThisWorkbook.Path & "\*.xls", vbNormal) Do While fn <> "" If fn <> ThisWorkbook.Name Then Set wk = Workbooks.Open(ThisWorkbook.Path & "\" & fn) Set wh = wk.Sheets(1) wh.Name = Left(fn, 4) Call wh.Copy(, ThisWorkbook.Sheets(1)) Call wk.Close(False) End If fn = Dir() Loop End Sub >>485 ありがとうございます 少し改変し使わせて頂きました 無事作業も終了しました。 >>483 なんで悪化させてんの そのくらいなら無視しても良いレベルだけどさ、、 >>487 余裕がなかったのです。 >>484 200以上になるので無理でした。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる