Excel総合相談所 136
■ このスレッドは過去ログ倉庫に格納されています
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 ▼━関連スレ━━━━━━━━━━━━ 前スレ Excel総合相談所 https://find.5ch.net/search?q=excel Excel VBA 質問スレ https://find.5ch.net/search?q=excel+vba 【質問不可】Excel総合相談所スレの雑談・議論スレ https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80 今までエクセルほとんど使ってなくて、イキナリ経理に移動になりバリバリ使うことになった。自習で使えるテキストでいいのあります? 緑色のFOMとか使ってた人います? オレもいきなり経理に異動したがExcelはあまり使わなかったぞ 金庫の現金を管理するくらいだった 税理士の指定した経理ソフト使ってたから 経理ならExcelより奉行とかMJSとかPCAとか弥生の使い方覚えた方が… 大手なら他のもあるけど突然経理に配置転換する規模の会社なら 経験者かどうかも確認せずに配置転換するぐらいの会社なら、必要な知識は行った先ですべて教えてくれると思って間違いないよ フィルタをかけた時のこの矢印はなんという名称なのでしょうか? https://i.imgur.com/PJ4CZen.png >>590 プルダウンとかドロップダウンとか といっても会社・・・というか人によって好きに呼んでたりする事も多いので、そこは臨機応変に。 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 初心者です、ググっても見つからなかったので教えて下さい。 Excelで複数のパターンの数値を特定の数値にしたいのですが条件の分け方がわかりません。 具体的には、あるセルAの数字が 10以下の時→1.0 11以上15以下の時→0.8 16以上20以下の時→0.6 21以上25以下の時→0.4 26以上30以下の時→0.2 31以上の時→0.1 の6パターンについて、 右側の数値をセルBに表示させたいのですが、If関数の説明などでは2〜3パターンの条件分岐例ばかり出てきます。 このような指定は可能でしょうか? >>585 真っ当な会社なら 会計システムを導入してる 不正行為防止で誰が操作したのかの記録もする 経理でのexcelの用途なんて 会計システムでサポートしていない統計グラフを 作る事ぐらいか ただの収支表ならどの会計システムでも作れるし windows7 2013 いいえ 否 シート1のA1からA10に入力されている10個のデータを、シート2のB列に上から順番にコピーしたいです ただ、コピー先はB1,B3,B10,B14....のように行番号が不規則なため、どうしようか悩んでおります どうすればよいでしょうか >>596 シート2 A1,A3,A10,A14.... ○ B1 =IF($A1="○",INDEX(Sheet1!$A$1:$A$10, COUNTIF($A$1:$A1,"○")),"") >>593 =IF(A1<=10,1.0,IF(A1<=15,0.8,IF(A1<=20,0.6,IF(A1<=25,0.4,IF(A1<=30,0.2,0.1))))) をB1セルに入れる 要するに入れ子構造(ネスト)にする 最初のIF関数で10以下かどうか判断し、yesなら1.0 Noなら次のIF関数で15以下かどうか判断 以下繰り返し ということ 11以上かどうかは10以下ではないという判断が済んでるから不要 A1に入るのが整数ならこれでOK 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 "確認票"というシートと"集計表"というシートがあり "確認票"はマクロ実行中に作るシートで、"集計表"はその"確認票"を参照した関数がたくさん入っているシートで、マクロ実行までは表示せず マクロ実行の途中で表示させたいシートなのですが、"集計表"の各セルの値をVBAで書くのは大変なので、予め作っておきました。 しかし、"集計表"を作って"確認票"を削除してしまうと、"集計表"の関数もエラーになってしまいますので、"確認票"を削除しても記録しておく方法はないでしょうか? >>603 "確認票"はマクロ実行中にできるものなので、予め作った"集計表"はマクロ実行前は 計算前の関数だけ入ったシートです。 >>604 計算したら確認票を削除するんだろう?だから消す前に値貼り付けすればいいんじゃないのか >>603 参照元が消えるのだから#REF!エラーが起こるのは当然かと 参照するのではなくて、集計表に値をコピペするしかない。 マクロ組めるならその作業を自動化すればええねん。 安価ミス >>603じゃんくて >>602 >>604 この確認表というのはどういうの? シートじゃなくてフォームで作るべきじゃね? 返事くれた人達ありがとうございました。うちの経理はまだまだExcelをふんだんに使うみたいです。システムなどはまだまだだと思います。 あとExcelを自己研鑽にもしたいと考えています。事務職だとExcelから逃げる事は出来ないですよね? 自分の武器にしたいと思います。 >>604 Excelでのフォームの作り方はググれば分かる。 単票フォームで「確認票」を作り直すのがオススメ フォームで入力すれば集計表に値として保存される。 >>608 フォームを作るにしても、レポートを作れる点でも Accessの方が遙かに役に立ちます。 実際、自分はAccessでデータベース作って経理の仕事してましたし。 月間集計、年間集計も、予めレポートを設計しておけばフォーム上のボタンをポチッとするだけで 出力できます。 >>610 社内で使うツールを個人で勝手に変えれないだろ… >>608 逆にExcelでないとなという用途は万年カレンダーだけですかね。 >>602 ,604 マクロ実行中に作る”確認表”シートは、最終的に削除してしまう。・・・ここを変えたらどうですか? ”確認表”シートを通常は非表示にしておいて、必要な時に再表示するとか。マクロで制御したら 操作する人にはパッと現れ、パッと消えるように見える。 シート自体は消えないからエラーにもならない。 集計後に参照元を削除するなら数式を残しておくこと自体無意味に思えるが… >>611 そういうならパッケージソフト入れるべき Excelで経理うんぬんならAccessの方が楽という例 示しただけ >>604 は参照と複写の違いを理解してないんだろな クエリとテーブルを同一視するのと同じ >>602 のいう確認票は集計表に保存したいデータを入力するためので、参照の意味を理解してないから 集計表に確認票のセルを参照する式を入れてる 実験としては興味深いが、それ以上に奇妙な作り 何でわざわざ確認票を毎回削除して生成してるのかは不明 ちなみにシートを削除した時点で excelのシステムはそのシートにあったセルを参照する式に #REF!を設定するするから、無意味なんだよね 何にせよかなり奇妙な事してる もうレス無いから放置でええなと DF4とDU4の値のいずれか高い数値が1以下であれば 14行目〜15行目を削除 DF4とDU4の値のいずれか高い数値が2であれば何もしない DF4とDU4の値のいずれか高い数値が3以上であれば、その値の回数を 14行目〜15行目をコピーして、16行目以降に2行づつ貼り付ける というコードを教えてください<(_ _)> >>616 ツールの編集ではなく使用ツール変える権限の話をしとるんだが >>619 実際に試してません、あしからず。 Dim 値 as Integer ' DF4,DU4とも整数という前提です Dim cnt as integer, セル as Range With ActiveSheet ' 処理対象シートの指定 値 = .Range("DF4").Value If 値 < .Range("DU4").Value Then 値 = .Range("DU4").Value Select Case 値 Case Is <= 1 .Rows("14:15").Delete Case Is = 2 ' なにもしない Case Is >= 3 .Rows("14:15").copy Set セル = .Range("A16") ' 貼り付け開始位置 For cnt = 1 to 値 ' 3以上のときはその値回数分貼り付けを繰り返す セル.PasteSpecial Paste:=xlPasteAll ' 貼り付ける種類はお好みで Set セル = セル.Offset(2, 0) ' 貼り付け先を2行下へ Next cnt End Select End With もし、”高い数値”が3のときの貼り付けは1回 ということであれば For cnt = 3 to 値 に変更してください。 >>571-572 ありがとうございます 勉強させてもらってます >>621 ありがとうございます。勉強になりました<(_ _)> >>624 普通に考えてExcelの話してるのにAccessで良いじゃんて話して、いやExcel使ってるんだけどと言われてじゃあパッケージソフト入れれば良いって話通じてなさすぎじゃね 後から来た新入りがAccessに変えましょう!とかパッケージに入れ替えましょう!とか言えないでしょって話だろ >>625 そんな事知らんがな Excelを万能ツールとでも思ってるの? シート"計算"のB1から最下行のCV列までコピーし、シート"累積"の最下行に貼り付ける。 最下行はシート「計算」・「累計」共にB〜CVまでのいずれかの最下行 このコードを教えてください。 >>599 >>601 こういうことです! ありがとうございます! 「今年」シートのE列に「商品名」、G列に「製造日」、J列に「製造工場」が入っていて、 別の「指示書」シートのC列に商品名、E列に製造日、H列に製造工場を入力すると、 I列に「今年」シート商品名・製造工場が一致するなかでG列から今日の日付から最も近い前回製造日が表示される関数を組みたいです。 3つの条件のうち2つ一致する中から1つの近い条件の引っ張り方がこんがらがっています。 MATCHとかDGETとか調べてやっても返ってくるのはエラーばかり… どなたかご教授をおねがいします! >>626 個人がどう思ってようが職場では用意された環境でやるしかないんだぞ 理屈の通じないやつだなぁ >>629 VBAマクロなしだと・・・ピボットテーブルとの組み合わせかなあ。 今年シート対象でピボットテーブルで行方向に商品名、列方向に製造工場、値フィールドに最大値を指定すると、 商品名と製造工場の組み合わせ別に最大値=最新の日付の表が出来上がる。 あとはINDEXlとMATCHを行方向、横方向で組み合わせればなんとかできそうですが。 ところで、指示書シートのE列(製造日)は、今回の質問には関係しませんよね? >>629 商品名と製造工場を文字列連結で繋げて(K2 = E2 & "-" & J2 みたいに)単独のキー列にしてしまえば後の処理が楽なんじゃないかな それで、ソートが許されるなら製造日(G列)で降順でソートしたら、K列をキーにしてVlookupで拾える vlookupだと製造日をK列より右側にコピーしないとならんけど >>629 =MAXIFS(今年!$G$2:$G$10,今年!$E$2:$E$10,C1,今年!$J$2:$J$10,H1,今年!$G$2:$G$10,"<"&now()) 範囲は適当 該当日付が無かったら0になるから必要なら好きにエラー処理して >>631 629です。指示書シートは同一ファイル内にあります。 今年シートのデータベースから探してこの商品が前回いつ作ったかを指示書シートのI列に表示する目的でした。 エクセルのシートをスクロールしたら、途中からワードに変わっちゃうというのはどうでしょう? >>627 今日は調子いいから書いて上げる Sub foo() '前処理 Set 計算シート = Sheets("計算") Set 累積シート = Sheets("累積") With 計算シート.UsedRange 計算シートMaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column End With With 累積シート.UsedRange 累積シートMaxRow = .Find("*", , xlFormulas, , xlByRows, xlPrevious).Row MaxCol = .Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column End With 'コピー 計算シート.Activate Range("B1:CV" & 計算シートMaxRow).Copy '貼り付け 累積シート.Activate Range("B" & 累積シートMaxRow + 1).Select Selection.PasteSpecial End Sub >>633 自分が参考にしているエクセル関数の解説本(2007まで対応)に載ってなかったので調べたら Excel2016からの新機能なんですね。まだ2010、2013を使ってる方も多いかと思うのでみなさんご注意を。 参考サイト ttps://dekiru.net/article/14292/ >>629 がそもそもテンプレ使ってないから 回答者が、最新版前提で回答しても仕方ない まぁみんな最初はバージョンの違いとかわからんもんだしね 多少はね? 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 初歩 【4 VBAでの回答の可否】 否 毎月の売上商品ごとの構成比を積み上げ棒グラフで表したいのですが縦軸に金額を表示させ棒のラベルに構成比(%)の表記ってできますか? (縦軸→金額 横軸→月 棒のラベル→構成比%) 上司からのこの見せ方で作ってくれとの指示で色々いじってみたのですか縦軸が金額だとラベルも金額って感じにしか出来ないっぽくて困っています 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 代金を入れたら佐川急便の代引手数料が出るようにしたいです https://www.sagawa-exp.co.jp/service/e-collect/ 代引金額 代引手数料(税別) 1万円以下 300円 3万円以下 400円 10万円以下 600円 30万円以下 1,000円 50万円以下 2,000円 60万円以下 6,000円 60万円超は10万円増す毎に 1,000円を加算(代引手数料例参照) 難しいのは「60万円超で10万円ごとに1,000円加算」のところです なぜならここでいう「代引金額」には代引手数料自らが含まれるからです =INT(([代金]+99999)/100000)*1100 でそれっぽいのは算出できるのですが、代金が「79万5千円」とかの場合に 9,900円ではなく8,800円となってしまいます 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2019 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 「シート"model2"のDE2に1を足して、"Sub MaCroG07()"を実行」を DE2の値がDS2の値に達するまで繰り返し、DE2の値がDS2の値を超えたら処理を終了する というコードをご教授願います。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 629です。テンプレ無視しての質問失礼しました。 2010なので厳しそうですね >>650 MAXIFS関数が使えなければ、奥の手「配列数式」でなんとかなりそうです。>>633 を参考にしました。 「指示書」シートのH1セルに =MAX((今年!$E$2:$E$10=C1)*(今年!$J$2:$J$10=H1)*今年!$G$2:$G$10) まで入力したら [Shift]キーと[Ctrl]キーを押しながら[Enter]キーを押す。 →{=MAX((今年!$E$2:$E$10=C1)*(今年!$J$2:$J$10=H1)*今年!$G$2:$G$10)} と表示される。 { }で囲まれた状態が配列数式であることを示します。 注意1 >>633 さんの式から 今年!$G$2:$G$10,"<"&now() 相当部分は省略しました。 注意2 H1セルを編集状態にすると { } が消えてしまいます。 その際は必ず [Shift]キーと[Ctrl]キーを押しながら[Enter]キー を入力してください。配列数式の注意事項です。 MAXIFS関数などの”IFS”がらみの新しい関数は、配列数式の取り扱いの難しさを解消するためなのかな? >>648 佐川に問い合わせるのが確実だと思います。 >>649 開始条件がちょっとあやふやなんだけど・・・ こんな感じでしょうか 試してません、あしからず with WorkSheets("model2") .Range("DE2").Value = .Range("DE2").Value + 1 ' 最初に+1を実行する?しない? Do While(.Range("DE2").Value <= .Range("DS2").Value) Call MaCroG07() .Range("DE2").Value = .Range("DE2").Value + 1 Loop End With 最初からDE2とDS2の値が同一からスタートすると、Do While文の直前にDE2に+1してるので MaCroG07()を一度も実行せずに終了します。 計算できる範囲を超える高額取引なら「ask me」等でいいだろが >>648 =ROUNDUP(A1,-5)/100 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可 PasteSpecial xlPasteAll で貼り付けていますが、罫線が所々切れます。 解決策を教えてください。 >>647 セルを方眼紙みたいにするか、図形でグラフっぽいものを作ればいい。 無理にグラフ機能を使う必要はない。 そんなことを言ってくるような上司じゃ、どうせ違いなんかわかりゃしないから。 >>656 たとえば列10セル、行10セルに罫線を引いたとして、中心の数か所と、一番下の罫線が消えてしまいます。 >>658 セルの書式設定で罫線の設定見ても線消えてる? セルに入ってる内容がセルからはみ出て線が見えなくなってるってことは? 一番下の罫線は11行目のセルの上罫線だからじゃないかな 中心はなんでだろうね 罫線込でコピペすると予期しない結果になることあるからフォーマット用意しておいて値だけハメ込むか、後から罫線引く方が確実だし楽 >>655 複写元がひとつのセルと仮定します。そのセルには上下左右に線があるように見えます。 しかし、そのセルに属する罫線とは限りません。なぜかと言うと・・・ 当該セルの左隣の右縦線 当該セルの上隣の下罫線 当該セルの右隣の左罫線 当該セルの下隣の上罫線 かもしれないからです。 なので、当該セルだけを普通にコピペしても複写先には罫線が引かれないということもありえます。 >>659 さんが書いてるように、複写元と複写先のセルの書式設定の罫線の設定を見比べるのが大事です。 >>655 まさかとは思うけど、Excel2016の制限に引っかかってるかも? ttps://www.helpforest.com/excel/ex_list/ex110006.htm ヘルプの森 というサイトの Excel2013,2016制限・仕様 一覧 のページの中に セルの固有の書式設定/セルのスタイル 64,000 というのがありました。参考まで。 >>654 それだと「79万5千円」が8,000円になる 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2019 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 売上データをマクロで処理しています。シートの名前についてご質問です 元データをフィルタして シート1にコピー(営業1部)、 さらにシート1をフィルタしてシート2にコピー(地域でフィルタ)、 という処理を行っています この時シート1のシート名は ・営業一部 ・営業一部_地域別 どちらが良いでしょうか? >>664 なります、だろ。 大筋の答えは出してもらってんだから a1に+1なり,最後-1000なり、自分で調整しろや 馬鹿が >>655 御回答ありがとうございます!やってみますね! >>665 地域別はシート2じゃないのか? >>664 8000円じゃないのか その数式から自分で応用できないなら、正しい結果になる計算方法を書いてくれ >>670 シート1のフィルタ後と、シート2のフィルタ無しは同じ地域別になりますが どちらの名称がいいかなと思いまして >>671 地域別で見られるようにしたのがシート2なら俺にはそれが地域別だと思えるが別に好きにすりゃいいんじゃね P列でセル中に"標準価格"という文字列が含まれていない行を削除 をVBAでおしえてください >>673 AutoFilterで "<>*標準価格}*" の条件で絞って一括削除とか、 if not セル文字列 like "*標準価格*" then 行削除 を削除したい範囲分回すとか 行数大量なら前者 E列〜Z列で1行目以外(2行目以降)で空白セルしかない列を削除するコードを教えてくださいm(_ _)m >>676 For i = Columns("E").Column to Columns("Z").Column If WorksheetFunction.CountA(Range(Cells(2, i), Cells(10, i))) = 0 then Columns(i).Delete Next >>677 1行目は必ず入っています。 >>678 ありがとうございますm(_ _)m マクロで、例えば 「Z55に"X"が入っていたらF55とG55のセルを黄色く塗りつぶす」 とか 「AD6に"X"が入っていたらY6を黄色く塗りつぶす」 をする書き方をお教えください >>679 うっかりしてた、Forのとこ逆だな >>680 For i = Columns("Z").Column to Columns("E").Column Step -1 Columns("Z").ColumnはCells(,"Z").Columnとも書ける 1文字しか減らないけど、よく似た単語の連続よりは読みやすいと個人的に思って愛用してる ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる