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 【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 できました! ありがとうございます!! このご恩は一生忘れません!!! >>725 出荷する荷物に貼る用紙を作成するためです 入力する番号は荷物の通し番号になります Accessがドストライクな案件だけに惜しいな テーブルに番号の組み合わせを入れて(扱う番号の拡張性も高い) レポートに欄を作って印刷するだけ 俺もシリアル番号の印刷とか片手間仕事でたまにやるわ エーワンのラベル用紙に末尾を1から30まで変えながら印刷とか 以前はサインペンでせっせと書いてたらしい しょーもない仕事はクレバーに一瞬で解決できるのに、 しょーもない仕事が発生する場所にクレバーな人材はいない シート50枚作って、プリントは手作業で一括というのを 批判覚悟でPowerShellで書いてみたVBAよく知らないもので。 $excel=new-object -ComObject Excel.Application $excel.Visible=$true $wb=$excel.workbooks.add() $ws=$wb.ActiveSheet(); for($i=0;$i -lt 50;$i++){ $n=$i*2+1 $left=$ws.Cells.Item(1,1)="$n" $right=$ws.Cells.Item(1,2)="$($n+1)" $ws=$wb.Sheets.Add() } $ws.Delete() その程度の処理をpowershellで書けてVBAで書けない上にVBAスレを見ていると言う謎 >>739 $left, $rightが意味不明 セルへの代入で文字列化する必要もないし foreach($i in 0..49){ $ws.Cells.Item(1,1).value()=2*$i+1 $ws.Cells.Item(1,2).value()=2*$i+2 } perlが変数にいちいち$付けるの嫌だああってrubyでは無くしたのに、 また同じようなことしとる 中学生が頑張って書いてる姿を想像するとキュンと来る >>708 ごめん間違ってた。直しました。 activeprinterのところはプリンター名直すか、削ってもオーケーです。 最大値100じゃなくて4にしてます。 Sub test() Const START_NUM As Integer = 1 '数値の開始値 Const FINISH_NUM As Integer = 4 '数値の終了値 Const PRINTER_NAME As String = "Microsoft Print to PDF" 'プリンター Dim i As Integer i = START_NUM Do Until i = FINISH_NUM - 1 Cells(1, 1) = (i * 2) - 1 Cells(1, 2) = Cells(1, 1) + 1 ActiveSheet.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False, ActivePrinter:=PRINTER_NAME i = i + 1 Loop End Sub >>741 VBAスレッドじゃなくExcelスレッドなんでVBA関係なく参考になるから (VBA使わないのはシートとプログラムは完全分離したい、中に埋め込みたく ないという思考あるもので)。 >>742 あたまに0入れたいとかあるかな〜と思って left,right は質問のかたが何やってるかわかりやすいかなと思った次第。 >>742 考えてみたら、 あたまの0、これは計算時に省かれちゃうな。 ってことは、私のこの部分意味なかったってことやな。あちゃ。 まだ間違ってるわ。 do loop until i > FINISH_NUM \ 2 に直してください。 細かいこと言えばまだいろいろあると思うけど。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 pngファイルをwindowsフォトビューアーで開いた後、エクセルにコピーアンドペーストで貼り付けたいのですが、貼り付けることができません。 PowerPointには貼り付けれるのですが… excelでは挿入機能を使うしかないのでしょうか。 いい方法があれば教えていただきたいです。よろしくお願いします。 Wordやパワポと違ってExcelは挿入からしかできませんね。 フォトビューアーのメニューにわざわざペイントあるんだから それ使うんじゃまずい? それ以外ならSnipping Toolではいかが? >>749 前提を覆して申し訳ないが、 フォトビューワーは使わない。何故なら、同じ用な点でめんどくさいから 常にペイントで開くようにしてみては・ >>753 フォトビューワーのメニューにペイントがあるから 直接でもフォトビューワー経由でもそれほど変わら ないはずなんだけどね。 >>750-754 ありがとうございます。ペイントを経由して貼り付けようと思います。 順番が逆のような気がしないでもない たぶん画像にデータを付加、またはデータに画像を添付したい ってのが本来の目的な気がする 回り道して余計な仕事増やしているだけのような いや、ひとりごと 【1 OSの種類 .】 職場環境:Windows7 自宅環境:Windows10 【2 Excelのバージョン 】 職場環境:Excel2016 自宅環境:Excel2010 ※質問用のエクセルファイルは自宅環境で作成しましたが、実際に使用するのは職場環境です 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 https://dotup.org/uploda/dotup.org1500173.xlsx 上記のように、エクセルにてパレード図を作成しようとしています。 ピボットテーブルにて件数ごと降順で並び替え、かつ件数が1件のものはグループ化しその他として一番下にしたいです。 しかし、降順でソートしたあと、その他を一番下に持っていこうとすると、 降順ソートが解除され、その他以外順番がばらばらになってしまいます。 全部手動で並び替えるのはかなり手間なので、ピボットテーブルの機能で並び替える方法があったら教えてください。 ピボットテーブルを値として貼り付け、普通の表にすれば並び替えられますが、 ブックがごちゃつくし、あとでデータを追記する際煩雑になるので、可能ならピボットテーブルのまま並び替えたいです。 みなさんフォントって何使ってますか? 最近だと遊ゴシック? でも古い資料とかとの整合性とか考えると…セルの幅とか勝手に変わっちゃうし でもMSPゴシックもなぁ… >>758 excel 2016 グループ化した後、列ラベル欄で手動並び替えにして自動並び替えを外す 件数の欄で降順に並び替え その他ラベルで移動を選択して末尾へ移動 >>759 そのまま 古いファイル開いてコロコロ変わるのが一番ウザい >>759 游ゴシックは全く使わないようにしてるな 文字の高さがずれるのか見ててイライラする エクセルだとひとつ前のメイリオUIにしてる 整合性は全く考えていないのでMS Pゴシックにはしていない >>762 メイリオの方が行間広くないです? もうちょいまともな標準フォント用意して欲しい。 >>700 「もっと難しいのを」って書いてるから、多分冗談なんだろうけど。 この式、エラー出るよ。 >>763 なんで >>700 はわざわざあんなに難しくしたのかが これが意味不明なんだわ〜〜〜 真面目に書けば 奇数の判断なんて mod(n,2) が1なら奇数0なら偶数ってだけの話なのに。 わざとなんだろな >>761 >>762 ありがとう フォントだけ変わってくれればいいのに行間が変わるからめんどくさい この辺の対策しないところをみると、メイリオ以降の行間が正常で旧フォントが行間が妙に狭いという形にしたいのかな meiryoKeConsoleだとセル幅も変わらずフォントだけ変更できるんだけど他人に渡すとバグっちゃうのかな? あと、明朝は遊明朝にするとセル内の表示高さがバグるというか逆になっちゃうんですね 何かとややこしいなぁ… 英語と日本語と混在だから、MeiryoUIくらいしか選択肢が無いんだよな かなが正方形でなくなって、英字がちょっと広くなっちゃうけど 自分しか使わないファイルは、meiryoKeGothicにしてる >>766 meiryoKeGothicなんて今知った 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 Excelて各セル(行)の高さを表示する機能や関数はありますでしょうか? 表形式の文書を作っていて、各行の高さをセル内の行数にあわせて調整するものの、それを一目で見たいのです 例えば、A1セルには1行目の高さ、A2セルには2行目の高さ(以下繰り返し)のような感じで。 セルの表示形式で、例えば文字列の場合に赤字で表示するとき、 [赤]@ で出来るけど、この「赤」を英語にすることってできます? 要は、英語版のExcelだとどう設定すれば良いのか知りたいです。 >>773 ありがとうございます。 日本語版ではRedが使えないということは、英語版からカスタマイズされてて、Redは省かれてるですね。 フォントをms pごしっくにしない理由ってなんかあんの?デフォルトでよくね? 見苦しいのか 理系で論文書いてたら当たり前のフォントだから何の違和感もないけど >>775 非常識だからだよ 書体以外でも変なことしてるんじゃ? >>766 meiryoUIに1票 ke知らないから見てみるわ でもたぶん使い分けめんどいから結局UIな気がする >>775 MS Pゴシック なんであんな汚いフォント使うのか、まったく理解に苦しむ meiryoUI >= MS P(UI) >>> 游UI 現行デフォルトの游ゴシックは、文字がかすれたり上下余白がおかしくなるからダメ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる