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
【1 OSの種類 .】 Windows8.1 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ(起動して入力するまではできます) 【4 VBAでの回答の可否】 可 初心者です。説明が下手なので画像付きで質問させていただきます。 Sheet1で図のように入力すると、自動でSheet2に図のように入力されるプログラムを作りたいです。 Sheet1:https://i.imgur.com/jzCfjb5.jpg Sheet2:https://i.imgur.com/ChU3p4G.jpg よろしくお願いします。 >>503 シート1の3行目以降も同じように入力していくのを想定してるの? その場合、そのデータはどこに増えていくの? シート2の11以降に増やすのか、シート3を作ってそこにデータを入れるのか。 >>503 すみません補足です。 Sheet2のA列の数字は既に入力されており、Sheet1で第2行,A〜Dのデータを入力すると、Sheet2の画像のように自動入力されるプログラムを作りたいです。 転記するのはいいとして、どのタイミングで転記するか決めないと。 ボタンを押すのか、あとは例えばE2をダブルクリックしたら2行目を、E3をダブルクリックしたら3行目を転記するとか。 4項目全部入力したら転記するのかとか、消す場合はどうするのかとかも決めておかないと。 >>507 ボタンを押すと転記する形でお願いします。 何度もすみません。 記載行に重複がある場合は下にある行の内容に書き換えても問題ない? それともメッセージで既にデータがあります!とか確認する? >>507 見落としていましたが消す場合は空白を入力しようと思います。 >>509 書き換えで問題ありません。 ボタンを押すとなると、データが複数ある時にどの行のデータを転記するかというのを決めなきゃいけない。 普通は一番下の行だろうけど。 Sub test() Dim i As Long Dim myRow As Long 'myRowは一番下のデータがある行(C列で上から下に検索する) myRow = Cells(1, 3).End(xlDown).Row 'Sheet2をオブジェクト変数Ws2に Dim Ws2 As Worksheet Set Ws2 = Worksheets("Sheet2") '最終行のC列、D列に数値が入っていて、D列の数値>=C列の数値である場合のみ転記をする。 If IsNumeric(Cells(myRow, 3)) = True And IsNumeric(Cells(myRow, 4)) = True And _ Cells(myRow, 3) <= Cells(myRow, 4) Then For i = Cells(myRow, 3) To Cells(myRow, 4) Ws2.Cells(i + 1, 2) = Cells(myRow, 1) Ws2.Cells(i + 1, 3) = Cells(myRow, 2) Next i Else MsgBox "入力値が適正ではありません" End If End Sub >>503 vba使わないで関数で引っ張るのはどうですか? どれくらいの量になるのかによるけど、作業列使って計算すればできますよ >>512 起動しました!ありがとうございました! 対象が最終行だけだと、入力データ多い場合かなりめんどくさそう >>516 その場合、E列をWクリックするとその行のデータをもとに転記するイベントプロシージャにすれば? それか、アクティブセルの行を転記するようにすればいいか。 myRow = ActiveCell.Row に変更すればいい。 3行目をアクティブにした状態でボタンを押せば、3行目のデータをもとに転記される。 >>517 こういう場合は一括処理にするか、難しいけど関数でやるほうがいいよ ドラッグ(矩形選択)した行を一括転記するようにしました。 これ、適正でない行が多いとmsgboxが何回もでるけど、いい方法あります? 変数jをelseの時だけ配列に入れて、それをmsgboxでまとめて1回だけ出すとかできるかな。 「5行目6行目のデータが適正ではありません」みたいに。 Sub test() '矩形選択範囲から行を取得、該当業のデータをもとにsheet2に転記するプロシージャ '例)A2:A8を選択した状態なら、2行目から8行目 ' B3:B10を選択した状態なら、3行目から10行目 Dim i As Long Dim j As Long 'Sheet2をオブジェクト変数Ws2に Dim Ws2 As Worksheet Set Ws2 = Worksheets("Sheet2") 'C列、D列に数値が入っていて、D列の数値>=C列の数値である場合のみ転記をする。 For j = Selection(1).Row To Selection(Selection.Count).Row If IsNumeric(Cells(j, 3)) = True And IsNumeric(Cells(j, 4)) = True And _ Cells(j, 3) <= Cells(j, 4) Then For i = Cells(j, 3) To Cells(j, 4) Ws2.Cells(i + 1, 2) = Cells(j, 1) Ws2.Cells(i + 1, 3) = Cells(j, 2) Next i Else MsgBox j & "行目の入力値が適正ではありません" End If Next j End Sub >>519 Sub 偶数() '1から10の中で偶数一覧を出力する For i = 1 To 10 If i Mod 2 Then 'do nothing. Else 偶数一覧 = 偶数一覧 & i & "," End If Next 'output If 偶数一覧 Then MsgBox "偶数:" & 偶数一覧 Else MsgBox "偶数なし" End If End Sub 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A列に半角英数字10桁の商品コードが並んでいます。 タイプとしては英数字混在のものと数字だけのものです。英字だけのコードはありません。 B列には商品名があり、index(match)で商品コードを入れたら商品名を表示させたいです。 しかし、商品コード入力欄にテキスト入力をすると、商品コードが英数字混在のものしかヒットしません。 matchの検索値をvalue()で指定すると今度は数字だけのコードしかヒットしません。 どちらでもヒットするようにするにはどうすればよいでしょうか? >>522 現在の商品コードを文字列で同一すべき 適当な作業列に「=TEXT(A1,"@")」みたいに書いて、これをコピーして値として貼り付けで文字列に変換できる。 今後の登録のために、商品コード列の書式設定は「文字列」に変える MATCHの第一引数に指定したセルも文字列に変える。 それが無理ならMATCH(TEXT(・・・,"@"),・・・)にすればいい。 powerpivot機能ですが、 エクセルではフォローされている36:00:00みたいな24時間を超える書式[h]:mm:ssが、powerpivotではフォローされていないのか、データ型を日付にするとエラーになってしまい、テキスト型になってしまいます。 何か回避策はありませんでしょうか? 1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 一つのセル内に プリン3個、エアコン2個、ミカン4個、バナナ2個 という風に固有名詞は無秩序、個は規則的なセル内の数字を 合計して出すにはどうすればいいでしょうか 「合計して出す」てどういう意味さ? 3+2+4+2をしろということ?答えはどこに表示させるの? FINDで「個」の位置を順番に把握して MIDで切り出して LOOKUPがらみで数値だけ抜き出して 足す 感じになるのかな。「個」の個数が不定だと修羅の道 あと、10000個とかあると関数では切出すのも大変だ そもそもそんなデータ(1つのセルに文字列と数値が混在、単位まで付いてる)を作らないようにしないと。 項目 数値 単位 の3列でデータ作るようにする。 単位は表示形式で付ける方が良いかも知れない。 >>530 さんの方法でやるか、固有名詞(りんご、バナナ)を全てピックアップできるなら、もう少し簡単にできるけど。 いったんテキストファイルにしたものを開くときに区切り位置、区切り文字を指定してバラす 固有名詞の部分に半角が含まれてないなら簡単 含まれてたら配列使うことになる >>526 その条件だと現実的には出来ないかも知れない 条件を後出しせず全て書いてくれないと >>535 条件は書いてあることで全てだったのですが A1 プリン3個、エアコン2個、ミカン4個、バナナ2個 A2 RIGHTB(LEFT(A1,FIND("個",A1)-1),2)*1 A3 FIND("個",A1) A4 RIGHTB(LEFT(A1,FIND("個",A1,A3+1)-1),2)*1 A5 FIND("個",A1,A3+1) の繰り返しでできましたありがとうございました。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 特定の計算をしたいのですが、前もって最下行までセルに式を入れるとファイルサイズが大きくなりすぎたので、 VBAで計算させる様にしたのですが、問題があります。 1.AC列はZ列から+14の日付にしたい。 2.このマクロだと1行目が書き換わってしまう。 3.シート「保全_集計表」を別のブックに貼り付けしたいのですが、別ブックのサイズが3MBになることがあります。てしまいました。 この3点を解決する方法があればご教授願います、 サンプル http://fast-uploader.com/file/7093705631477/ もし、P2が0(ゼロ)のとき、Q2はO2*(2/3) もし、P2が0(ゼロ)じゃないとき、Q2は(O2-P2)*2/3 真偽の数字を、100のくらいから四捨五入したいのですが、IF関数にROUND関数を組み合わせる方法がわかりません。 IF(P2=0,O2*(2/3),(O2-P2)*2/3と組んではみました。 例えばQ2セルが13,333となった場合は、13,000で表示されるようにしたいのです。 私は看護師で、社員旅行の会計を任されましたが、バカなのでわかりません。教えてください。 O2は月々の旅行積立額、P2は旅行代金、Q2は返金額です。旅行は泊まり、日帰りとあって、日帰りの場合は積立額から、旅行代金を引いた2/3を積み立てた人に返して、旅行に行かなかった人は、積立額の2/3を返すことになっています。泊まりは、積立全額が旅行代金になります。 >>538 i=1をi=2にすれば1行目は書き換わらないけど、何か問題ありますか? >>539 =ROUND(IF(P2=0,O2*(2/3),(O2-P2)*2/3),-3) >>540 問題ありません。i=2で1行目が変わらないのですか。 >>542 cells(i,16)だと、iが1のときは1行目16列目のP1を書き換える。 >>543 サンプルは2行でしたが、2000行位になります。条件付きでループを終了させたいのですが、思いつきませんでした。 >>544 話がかみあってないけど、「For i = 1 to」を、「For i = 2 to 」に変更する。 3行おきになっているのは、そのままでもいいけど、変数jにした方が見やすい。 別ブックに張り付けるのは、どのブックか不明なので(新規ブックなのか既存のブックなのか等)、もっと情報がないとわかりません。 Sub calclation() Dim i As Long Dim j As Long Dim MaxRow As Long MaxRow = Sheets("保全_集計表").Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To MaxRow For j = 16 To 46 Step 3 Cells(i, j).Value = Cells(i, j - 1) + Cells(i, j - 2) Next j Cells(i, 29) = Cells(i, 26) + 14 Next i End Sub >>545 既存のブックになります。 よろしくお願いします。 >>546 既存のブックなら、余計分からない。 そもそも、vbaで計算結果入れるだけで重くなるなら、もともとのブックに問題があるのでは? よろしくお願いしますって、何をしてほしいのか。 >>539 ifはいらない =ROUND((O2-P2)*2/3,-3) ▼━質問テンプレ (出来れば使ってね) ━━━ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい・ 【4 VBAでの回答の可否】 可・ A列 B列 C列 D列 E列以降 ID 品名 型式 残数 日付 E列以降に日付を入れるとD列(残数)が-1するにはどうしたらいいでしょうか? D2が5でE2、F2に日付が入るとD2が3と表示させたいのです。 >>549 A列 B列 C列 D列 E列 F列以降 ID 品名 型式 残数(入力) 残数(計算後) 日付 でいいなら、 E2=D2-COUNTIF(F2:H2,">0") D列をそのまま変更するのはvbaがいる上に結構めんどくさい (コメントに元の数値を逃して、計算するなどの変な処理が必要) >>550 ありがとうございます。こちらの方がよいです。半期の棚卸で”いつ”部品をもちだしたか 不明で数と資産金額が合わなくて大惨事になりました。 1000万は無いって。 すみません、質問させてください。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A1の数値を別のセルに 「.jpg」をつけて表示させたいのですが、どうしたらできますか? セルの書式設定のユーザー定義にもないし、入力件数が多くて困っています。 関数などがまったくわからなくて、ネットでも調べてみたのですが検索の仕方が悪いのか 見当違いのものばかりで…お力を貸してください。お願いします。 >>552 超初心者の俺がお答えしよう。 別のセルに、=a1&".jpg" と入力する >>552 別のセルに =A1&".jpg" と入力 =A1と書いて、書式設定のユーザー定義に0".jpg"と入力 =CONCATENATE(A1,".jpg")と入力 さぁ好きなのを選べ。 あと数値を・・ってことなので桁揃えするなら =TEXT(A1,"0000")&".jpg" としたり =A1と書いて、書式設定のユーザー定義に0000".jpg"と入力 という方法があるゾ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 2010 エクセルの計算効率についてです。 COUNTIFを使う場合 1列10万件のセルをカウントするのと 1列1万件のセルを個別に10列分カウントしてあとで10個の数を足すのとでは どちらが計算結果が早く出ますか? あと、あらかじめ条件外となるものは先に=""で空指定したほうが 計算結果が早く出ますか? >>555 内部的な最適化までは誰もわからん。試したほうが早い 大抵の場合、余計なことをせずに素直な計算式にするのが一番良い あと、罫線や色、フォント、条件付き書式など何も設定しないことの方がよっぽど大事 552です。 おかげさまで作業効率アップしました! お二方ありがとうございました! 求人で「エクセルができるかた」というのはどれくらいができればよいのでしょうか? ・四則演算ができる ・index,match,offsetなどの関数が使える ・条件付き書式のせっていができる くらいで大丈夫ですか? 職場によって求められるスキルは違うと思うけど、vlookupじゃなく、あえてindexやmutchを上げてるレベルなら大丈夫じゃない? あとは、グラフとかピボット使えればいいかなと >>558 四則計算とオートSUMの機能が使えるだけで十分 採用した社員の履歴書にMOUSエキスパートが書いてあり どれくらいできるのかwktkしたら全然実務向きでなかったでござる。 MOSエキスパートは関数とか熟知してなくても取れるしね 試験対策してればとれるし、機能の使用・理解範囲が無駄に広いだけだから、すごく役に立つというよりかは、ある程度どんな職場でも働けるってだけだよね excelで画像加工とかほぼ実務で使わんw 俺の職場でエクセルはPOP製造機。 画像加工のスキルばかり上がる。 >>558 実務で言うと、データの入力規則の設定と 計算式の絶対参照と相対参照の使い分けあたりも欲しいな ▼━質問テンプレ (出来れば使ってね) ━━━ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】否 一つのセルの中に指定の単語がいくつ使われているのか をカウントする場合はどうすればいいですか? >>566 =(LEN (A1)- LEN (SUBSTITUTE (A1,"単語", "") )/ LEN("単語") 1つのセルをウィンドウいっぱいに広げる方法ある? そしてウィンドウのサイズを変えたら、セルのサイズもそれに追従するみたいな >>571 全シート選択したら一括で印刷できるのは知ってるの? あるっちゃあるけどないっちゃない vbaで作ればできるけど、その操作以上の労力がいるから意味ないんだよね〜 >>569 横方向は割とムチャクチャ広がってくれるが 縦方向はすぐ限界になるな そして追従はできんやろ セルに書き込む毎に枠線が自動で付く書式 =or($A1:$F1<>"")って書式組む時に 範囲選択してるんだから 普通に枠を付けるのとたいして変わらないと思いませんか? 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel for Office 365 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 否 ピボットテーブルでの比率の計算について教えて下さい。 元の集計表として、 時間帯, 基準値, 要素1, 要素2, 要素3 0, 200, 80, 50, 20 1, 210, 100, 20, 30 2, 180, 150, 50, 0 ・ 23, 90, 0, 70, 50 という合計を集計したピボットテーブルがあります。 これを元に、基準値に対する比率を求めるピボットテーブル 時間帯, 基準値, 要素1, 要素2, 要素3 0, 100.0%, 40.0%, 25.0%, 10.0% 1, 100.0%, 47.6%, 9.5%, 14.3% 2, 100.0%, 83.3%, 27.8%, 0.0% ・ 23, 100.0%, 0%, 77.8%, 55.6% というピボットテーブルを追加または新規で作りたいのですが、 「親集計に対する比率」で[基準値]を「基準フィールド」に指定してみたところ、 結果は#N/Aエラーになってしまいました。 何かやり方があるのでしょうか? 各行には異なる日付の内訳(行数可変)があるので、 直接セル指定での計算列追加は避けたいです。 1か2か3の値が毎時入手できて、これを積み上げ横棒グラフで同じ数字なら同じ色にして12個積み上げてグラフにする方法ありますか? 左にタイトル 右に内容 みたいな感じでエクセルが使える しかし入力がしずらい エンター押すと次の枠に行っちゃうし(ソートするときは枠結合しないといけないし) ALT+エンター 使えばいいんだけどなんか面倒 メモ帳だと左にタイトルつけれなくソートもないし メモしたものがわからなくなるし 他のいいソフトありますか? もしくはエクセルの使い方。 >>579 何がしたいのかよくわからんが 二行を一つのデータとして取り扱うならalt+エンターしかない >>579 メモしたいならonenoteとか使えば?Wordの表でもいいけどさ >>579 右のセルに長文入れてalt+enterが嫌なら、 入れた後にセルの書式設定で『折り返して全体を表示する』を選べばいい。 自己解決 「計算の種類」の「親集計に対する比率」の使い方は分かりませんでしたが、 目的のことは「集計フィールドの追加」で出来ました。 365だけど最近リボンのデザイン変わった? 古いPCの方となんか違うような気がして >>584 モニター画面の解像度が違うと自動的にボタンやメニューの配列が変わる >>584-585 俺のOffice365 SoloのExcelとOutlookも最近変わった。 なんか縁取りがはっきりして、コミカルなデザインになった。 サイレントupdateだな。 たとえばExcelのA1に0、A4に10と入力して、 A2に3.3333、A3に6.6666と出力させる方法はありますか? 間にあるセルの分だけ等分にして表示させたいのですが 実際使うときは数千等分にしたいのです >>587 入力するセルが任意ならVBA セルが固定でも数千等分なら関数じゃ現実的ではない 図形に指定したサイズ(cm)通りに印刷されません。 それ以上に、縦横比が狂ってしまい困ってます。 プリンターが原因でしょうか? >>585-586 やっぱりね。 フラット?マテリアル? 2019の関連かと思ったけど、 解像度の関係でアプデの有り無しがあるのは知らんかった。 最近のMSには小さな親切大きなお世話って言葉がピッタリだ 初心者やタブレット向けにセキュリティやUIを変えたつもりだろうが 使い慣れた操作を大きく変更されて余計使いづらいっていう 今さらそんなこと言っても、大きなお世話はMSの伝統でしょ。 win10の強制アップデート word、Excelのオートコレクト office2007になった時のリボン導入 IEの強制バンドル コントロールパネルがなくなる 勝手にアップデートして勝手に再起動 >>588 やっぱvbaですか 少し齧っただけだけどやってみます ありがとう win10、リボンはさすがにもう慣れたな 使い方さえわかれば使いやすい >>592 > win10の強制アップデート うん > word、Excelのオートコレクト 設定切れよ > office2007になった時のリボン導入 慣れ。むしろ使いやすい > IEの強制バンドル それ何が困るの?独占禁止法? > コントロールパネルがなくなる グループポリシーの方で設定すりゃ関係ない > 勝手にアップデートして勝手に再起動 WSUSは? > IEの強制バンドル はまだ良いとして、規定のブラウザ変えようとすると警告が出るのがイラッと来る あとこういう警告のせいでIEが根強いと思うと更にイラッと来る で、そんなwindowsを使わなければならない自分にイラッと来る まぁIEの挙動が大分マシになったとはいえ、 めんどくさい事には変わりない 未だにIE前提で作られている管理ツールはやまほどあるからな Excel2019ではPythonは入っていないのでしょうか? このスレレベルが高すぎるんですが エクセルのことに関して初心者でも相談できるスレないでしょうか 5ch内をスレタイ検索してみましたがうまく見つかりません ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる