X



Excel総合相談所 130
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2017/12/24(日) 09:11:43.15
▼━質問テンプレ (出来れば使ってね) ━━━
【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
0682名無しさん@そうだ選挙にいこう
垢版 |
2018/03/29(木) 18:45:50.19
【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とかいろいろ考えたのですが、どうにもうまくいきませんでした。
0685682
垢版 |
2018/03/29(木) 19:22:51.34
>>683
別のセルに役職のリストを作っておいて、if文でネストを作ってVLOOKUPということでしょうか?
できれば余計な情報を書いたセルやシートは作りたくないのですが
0687682
垢版 |
2018/03/29(木) 21:50:30.83
>>686
なるほど、substituteで役職部分を消した文字列を作ってvlookupするんですね
0688682
垢版 |
2018/03/29(木) 21:51:10.04
役職の数が多くなければ、それが一番わかり易いかな
0690名無しさん@そうだ選挙にいこう
垢版 |
2018/03/29(木) 23:23:00.06
>>660
その列のアルファベットの右線をダブルクリック
0692名無しさん@そうだ選挙にいこう
垢版 |
2018/03/29(木) 23:42:55.95
【1 OSの種類         .】 Windows10
【2 Excelのバージョン   】 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

条件付き書式で数値が奇数の場合のみ背景を青にする方法を教えてください。
条件適用の範囲はB2:B101です。よろしくお願いします。
0694名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 00:25:37.16
>>682
B6に
=IF(COUNTIF(B$1:B$5,"鈴木"),"○","")
B7に
=IF(COUNTIF(B$1:B$5,"佐藤"),"○","")

と入れていき、B6:B10の範囲を選択してフィルハンドルで右に伸ばせば簡単
0697名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 01:44:05.09
>>694
それだと、鈴木や佐藤を手打ちしてるわけだから、少しやりたいことと違うと思う。
ようは鈴木や佐藤を自動(関数を使って)取り出したいということなので(多分)。
別シートにでも役職リスト作って、substitute関数で名前を取り出すのが、一般的な方法かと。
ただし、役職の数だけネストする必要がある。
0700名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 03:33:54.08
>>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))

俺の頭ではこれが限界だ
誰か、もっと難しい式をたのむ
0701682
垢版 |
2018/03/30(金) 05:08:56.43
>>697
そのとおりで、これを何に使っているかと言うと、大型連休の出勤当番を割り当てるのに使います
該当者は毎回変わるし、異動があれば役職も色んな人が入ってくるので、鈴木や佐藤を自動で
取り出してチェックしたいのです

別シートに役職リストを作る、というのは、内容的には式中に役職リストを作るのと変わりません
よね? 役職の数が増えたら、式中のネストは手作業で増やす必要がありますよね?
他の人がメンテする可能性を考えたら、式中に直接打ち込むほうがいいのかな

>>694のやり方だと確かにできますが、A列の人の名前が変わるたびにB列の式を変える必要が
出ますし、結果は「○」が出るかどうかだけなので、B列の修正忘れに気づきにくいのを心配して
います
0702697
垢版 |
2018/03/30(金) 05:35:18.31
>>701
自分なら役職リストを作る。
そのリストをもとに面倒だけど、substitute関数で役職の数だけネストする。
スマートではないけど、役職を少し多めに作っておけば、毎回関数を直す必要がない。
そんなに役職数増えたりしないでしょう?
現在ある役職が10なら、13くらいで作っておくとか。

リストを参照することで、役職名の変更には対応しやすい(例えば班長という役職が廃止されて主任になるとか)。
0704名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 06:22:40.19
>>702
読みながら、たしかにそうだろうな、想定できる役職を一通り書いておいて、さらに将来的な
空白セルの分まで参照して式をつくるべきかな、と考えていたら

>>703
これでバッチリできました!
どういう仕組で機能しているのかはわからないので、これから詳しく解析してみます
ありがとうございます
0705703
垢版 |
2018/03/30(金) 06:47:11.36
>>704
この式は「前方一致」だから、例えば"久保田部長"で検索するとして、
"大久保"はスルーするけど、"久保"はヒットしちゃうので注意が必要。
0706名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 07:05:11.09
>>705
それはもう仕方ないですね
役職を除外して参照するという処理をする以上、役職リスト等を参照しない限りは、参照したい
文字が含まれていればすべてカウントするという処理をするしかないでしょうし
0707名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 08:12:02.11
1日目 朝昼夜
2日目 朝昼夜


こういうデータシートから
朝昼夜朝昼夜…という並びでグラフ化するにはどうしたらよいですか?
0708名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 11:26:04.43
【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でできないでしょうか?
0710名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 16:58:52.86
>>709
簡潔に纏められ、分かりやすい解答だと思います。
0711名無しさん@そうだ選挙にいこう
垢版 |
2018/03/30(金) 17:07:23.58
>>700
それ本気?冗談?
0712709
垢版 |
2018/03/30(金) 17:53:26.88
いや、悪気はないです。
今PCが手元にないので。スマホでも書けそうだけど。

この場合、もしプリンターが複数あるなら、その辺もマクロで書いておく方がいいと思う。
プリンターの設定間違えてほかのプリンターで処理してしまうと50枚印刷されてしまうことになるので。
0714709
垢版 |
2018/03/30(金) 19:30:11.24
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 の方がいいような気もするけど、とりあえず。
0716名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 03:19:03.12
どうでも良いけど印刷関係のマクロ作るなら、既定のプリンタをpdf,xdw,xpsあたりに変えておかないと、満足にデバッグ出来ない気がする
0717名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 12:11:04.45
エクセルは、モッサリ感が半端ないのに、
50シート作ったら、仕事にならない感じがする。
0726名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 19:08:51.25
データと出力を別けてればよくあるパターンだと思うよ。
1人一枚の出力で50人分とか。
VLOOKUPで社員コード引っ掛けて、データ拾って出力。
0727名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 19:28:25.05
ほかのセルにはA1とB1を使った数式がいくつも入ってんじゃないの?
まあ番号札とかアンケート用紙みたいなのを印刷するだけの簡単なお仕事でも別におかしくはないけど
0728名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 20:38:49.59
【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

どなたか方法を教えてもらえませんでしょうか
0729名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 20:46:12.70
>>728
C2にこの式を入れて下にコピペ
=IF(AND(A1=A2,B2/B1=2),"OK","")

でも、その例で4000は1500の2倍じゃないよね
条件が「2倍」じゃなくて「2倍以上」じゃないの?
0736名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 23:17:51.90
Accessがドストライクな案件だけに惜しいな
テーブルに番号の組み合わせを入れて(扱う番号の拡張性も高い)
レポートに欄を作って印刷するだけ
0737名無しさん@そうだ選挙にいこう
垢版 |
2018/03/31(土) 23:25:26.00
俺もシリアル番号の印刷とか片手間仕事でたまにやるわ
エーワンのラベル用紙に末尾を1から30まで変えながら印刷とか
以前はサインペンでせっせと書いてたらしい
0739名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 02:10:51.95
シート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()
0740名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 02:11:35.92
このまま実行すれば行けるはず
0745714
垢版 |
2018/04/01(日) 11:03:26.32
>>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
0746739
垢版 |
2018/04/01(日) 12:52:34.06
>>741
VBAスレッドじゃなくExcelスレッドなんでVBA関係なく参考になるから
(VBA使わないのはシートとプログラムは完全分離したい、中に埋め込みたく
 ないという思考あるもので)。

>>742
あたまに0入れたいとかあるかな〜と思って
left,right は質問のかたが何やってるかわかりやすいかなと思った次第。
0747739
垢版 |
2018/04/01(日) 12:56:50.11
>>742
考えてみたら、
あたまの0、これは計算時に省かれちゃうな。
ってことは、私のこの部分意味なかったってことやな。あちゃ。
0748745
垢版 |
2018/04/01(日) 14:00:26.09
まだ間違ってるわ。
do loop until i > FINISH_NUM \ 2
に直してください。
細かいこと言えばまだいろいろあると思うけど。
0749名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 17:00:32.36
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
pngファイルをwindowsフォトビューアーで開いた後、エクセルにコピーアンドペーストで貼り付けたいのですが、貼り付けることができません。
PowerPointには貼り付けれるのですが…
excelでは挿入機能を使うしかないのでしょうか。
いい方法があれば教えていただきたいです。よろしくお願いします。
0752名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 17:44:58.03
フォトビューアーのメニューにわざわざペイントあるんだから
それ使うんじゃまずい?
それ以外ならSnipping Toolではいかが?
0753名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 17:50:53.13
 >>749
前提を覆して申し訳ないが、
フォトビューワーは使わない。何故なら、同じ用な点でめんどくさいから
常にペイントで開くようにしてみては・
0754名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 19:09:15.96
>>753
フォトビューワーのメニューにペイントがあるから
直接でもフォトビューワー経由でもそれほど変わら
ないはずなんだけどね。
0755名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 20:07:50.24
>>750-754
ありがとうございます。ペイントを経由して貼り付けようと思います。
0757名無しさん@そうだ選挙にいこう
垢版 |
2018/04/01(日) 21:36:52.21
順番が逆のような気がしないでもない
たぶん画像にデータを付加、またはデータに画像を添付したい
ってのが本来の目的な気がする  回り道して余計な仕事増やしているだけのような いや、ひとりごと
0758名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 01:51:37.01
【1 OSの種類         .】 職場環境:Windows7 自宅環境:Windows10
【2 Excelのバージョン   】 職場環境:Excel2016 自宅環境:Excel2010
※質問用のエクセルファイルは自宅環境で作成しましたが、実際に使用するのは職場環境です
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

https://dotup.org/uploda/dotup.org1500173.xlsx
上記のように、エクセルにてパレード図を作成しようとしています。
ピボットテーブルにて件数ごと降順で並び替え、かつ件数が1件のものはグループ化しその他として一番下にしたいです。
しかし、降順でソートしたあと、その他を一番下に持っていこうとすると、
降順ソートが解除され、その他以外順番がばらばらになってしまいます。
全部手動で並び替えるのはかなり手間なので、ピボットテーブルの機能で並び替える方法があったら教えてください。
ピボットテーブルを値として貼り付け、普通の表にすれば並び替えられますが、
ブックがごちゃつくし、あとでデータを追記する際煩雑になるので、可能ならピボットテーブルのまま並び替えたいです。
0759名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 04:19:37.56
みなさんフォントって何使ってますか?
最近だと遊ゴシック?
でも古い資料とかとの整合性とか考えると…セルの幅とか勝手に変わっちゃうし
でもMSPゴシックもなぁ…
0760名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 07:25:01.21
>>758
excel 2016
グループ化した後、列ラベル欄で手動並び替えにして自動並び替えを外す
件数の欄で降順に並び替え
その他ラベルで移動を選択して末尾へ移動
0762名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 07:38:09.60
>>759
游ゴシックは全く使わないようにしてるな
文字の高さがずれるのか見ててイライラする
エクセルだとひとつ前のメイリオUIにしてる
整合性は全く考えていないのでMS Pゴシックにはしていない
0763名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 14:33:21.85
>>762
メイリオの方が行間広くないです?
もうちょいまともな標準フォント用意して欲しい。

>>700
「もっと難しいのを」って書いてるから、多分冗談なんだろうけど。
この式、エラー出るよ。
0764名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 15:02:20.82
>>763
 
なんで >>700 はわざわざあんなに難しくしたのかが
これが意味不明なんだわ〜〜〜

真面目に書けば
奇数の判断なんて mod(n,2) が1なら奇数0なら偶数ってだけの話なのに。
わざとなんだろな
0765名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 15:52:45.53
>>761
>>762
ありがとう
フォントだけ変わってくれればいいのに行間が変わるからめんどくさい
この辺の対策しないところをみると、メイリオ以降の行間が正常で旧フォントが行間が妙に狭いという形にしたいのかな
meiryoKeConsoleだとセル幅も変わらずフォントだけ変更できるんだけど他人に渡すとバグっちゃうのかな?
あと、明朝は遊明朝にするとセル内の表示高さがバグるというか逆になっちゃうんですね
何かとややこしいなぁ…
0766名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 19:01:19.14
英語と日本語と混在だから、MeiryoUIくらいしか選択肢が無いんだよな
かなが正方形でなくなって、英字がちょっと広くなっちゃうけど

自分しか使わないファイルは、meiryoKeGothicにしてる
0767名無しさん@そうだ選挙にいこう
垢版 |
2018/04/02(月) 20:04:50.19
>>766
meiryoKeGothicなんて今知った
0769名無しさん@そうだ選挙にいこう
垢版 |
2018/04/03(火) 07:39:32.78
>>760
できました
ありがとうございます
0770名無しさん@そうだ選挙にいこう
垢版 |
2018/04/03(火) 10:04:11.98
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelて各セル(行)の高さを表示する機能や関数はありますでしょうか?
表形式の文書を作っていて、各行の高さをセル内の行数にあわせて調整するものの、それを一目で見たいのです
例えば、A1セルには1行目の高さ、A2セルには2行目の高さ(以下繰り返し)のような感じで。
0772名無しさん@そうだ選挙にいこう
垢版 |
2018/04/03(火) 20:17:28.86
セルの表示形式で、例えば文字列の場合に赤字で表示するとき、
[赤]@
で出来るけど、この「赤」を英語にすることってできます?
要は、英語版のExcelだとどう設定すれば良いのか知りたいです。
0780名無しさん@そうだ選挙にいこう
垢版 |
2018/04/04(水) 06:37:40.97
>>766
meiryoUIに1票
ke知らないから見てみるわ
でもたぶん使い分けめんどいから結局UIな気がする

>>775
MS Pゴシック
なんであんな汚いフォント使うのか、まったく理解に苦しむ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況