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 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 既存コードを微修正する程度(行列範囲等) 【4 VBAでの回答の可否】 極力不可 https://imgur.com/o9jyjCw 上記左の表の様なデータを元に、右の表の様な一覧表を作りたい。 県・種類の値は元データにより変わる為、各項目は自動抽出したい。 県+種類の値が重複したデータがある場合は、どちらか一方の表示でも可。 ピボットテーブルを試してみたのですが、特定列の値そのものを 表示させる事が出来なくて困っています。 お知恵をお借りできませんでしょうか。 >>553 ピボットの値フィールドは集計したりカウント等するところだからそこにコード(文字列) を表示は無理な気がする VBAならできる >>553 Access2010のピボットで出来るがAccess2013ではその機能がなくなった そのため俺はいまだにAccess2010を使い続けている 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 タイトル行内に画像データを張り付けて、その画像データを 1ページ目にだけ印刷させたいのですが、何か方法ありそうでしょうか。 例:横の印刷セル範囲がHまでとして、タイトル行に$1:$6を設定。 H4ぐらいに画像あり。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 or Excel2010 【3 VBAが使えるか .】 使えない 【4 VBAでの回答の可否】 不可 Excel2007かExcel2010が欲しいです 中古でいいのですがどうやって手に入れたらいいでしょうか ヤフオクなどで3000円以下で売っていますが、信頼できないため、出来れば店舗のあるお店で購入したいです よろしくお願いします。 B列 1行目=北海道 2行目=青森 3行目=秋田 4行目=秋田 5行目=岩手 6行目=宮城 7行目=山形 8行目=山形 9行目=山形 10行目=新潟 11行目=福島 12行目=福島 この時にA列に、隣のB列の値が「上から何種類目」にあたる値なのかを返す式を教えてください A列 / B列 1行目=1 / 1行目=北海道 2行目=2 / 2行目=青森 3行目=3 / 3行目=秋田 4行目=3 / 4行目=秋田 5行目=4 / 5行目=岩手 6行目=5 / 6行目=宮城 7行目=6 / 7行目=山形 8行目=6 / 8行目=山形 9行目=6 / 9行目=山形 10行目=7 / 10行目=新潟 11行目=8 / 11行目=福島 12行目=8 / 12行目=福島 >>558 ん? 都道府県コードを振りたいの? 47しかなから、 総務省あたりのコード順で、重複なしリスト表を別に用意して VLOOKUPあたりで参照するのじゃだめ? >>558 作業列を使っていいなら割と簡単です。C列を作業列に割り当てる場合・・・ C1セル なし C2セル =(B2<>B1)*1 を入力して、下へフィルコピー A1セル 1 を入力 A2セル =A1+C2 を入力して、下へフィルコピー ただし、これが成立するためには、B列のデータは並べ替えが済んでいること。 離れたところに同一データが存在する場合はうまくいきません。C列の計算式は直上セルの値との比較だけなので。 >>558 元データをテーブルにしておいて(参照範囲が自動的に拡張される) その範囲を参照するクエリーで、 重複削除とインデックス列追加で番号振って、 それを参照表にしたら? 元データに追加・削除があっても、 クエリーの更新ボタン一つで あとはA列に入れたVLOOKUPかINDEX(MATCH())参照で 番号が振り直されるけど? >>556 1ページ目だけ印刷して画像非表示にして2ページ目から印刷するマクロを作る >>555 クロス集計、という機能ですね。これがやりたい事でした、ありがとうございます。 ACCESSか...会社で聞いてみようかなぁ。 >>561 自己レス 見直したら作業列いらなかった。C列の計算式をA列の計算式にくっつけるだけ。 >>553 「県」のセルをA1とする {=IFNA(MATCH($G2&H$1,$A$2:$A$5&$B$2:$B$5,0),"")} >>553 肝心の抽出を忘れてましたわ {=IFNA(INDEX($C$2:$C$5,MATCH($G2&H$1,$A$2:$A$5&$B$2:$B$5,0)),"")} 熟練者の方々はOnkeyメソッドって使われてますか? 便利なのは間違いないとは思うのですが… パワーピボットに関する日本語の解説書が ぼちぼち出てきた模様。 どれを読もうかな? パワーピボットは弄りながら何となく使えたんだけど(かなり便利)パワークエリは分からなすぎた 本買わなきゃ 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 関数について教えてください A B C 100 500 AかBのどちらかが空欄だったらCも空欄 AとBの両方に数値が入っていたら、CにB-Aの値を表示させるには どういう数式を組み立てたらいいでしょうか? ↓みたにさせたいです A B C 100 500 400 100 空欄 500 空欄 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Office 365 Education 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】否 私は学生でmosの2016年版の資格が取りたいと思っています 学生版無料Officeのexcelを最新から2016年にダウングレードすることはできますか? もう2016年mosの本を買ってしまったのですが、最新版excelである程度やっていくというのはあまりよくないでしょうか? 最悪の場合2016年のexcelを今から買うしかないですよね >>579 大差ないからそのまま受ければok ってか、あれ超簡単だからそんなに深く悩まなくてもいいよ 2010とか古いバージョンだとキツイけど >>579 FOM出版のCD‐ROMインストールする模擬試験だと、どうしても(ver.の違いが原因で、合っていても)不正解になってしまう問題もあるので、それだけ本の解答で確認すれば大丈夫かな。 >>580 >>581 >>582 ありがとうございます 現状あるもので勉強を始めたいと思います! 新規イオンカード発行で20%キャッシュバック祭り始まるぞ!増税前に大きい買い物するチャンス! イオンカード決済で10%、イオン口座引き落とし設定で更に+10% 計20%最大10万円まで還元 https://i.imgur.com/0HjY856.jpg 入会時紹介コード1500P https://i.imgur.com/TaIwhhO.jpg ※イオンカードセレクト(イオン銀行と一体型したクレカ)がオススメ 今までエクセルほとんど使ってなくて、イキナリ経理に移動になりバリバリ使うことになった。自習で使えるテキストでいいのあります? 緑色の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()を一度も実行せずに終了します。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる